⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit_rubb_main.~pas

📁 此代码为企业原料管理代码
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
    sql.Clear;
    sql.Add('select * from 炼胶用料单 where 主表标识号 = :v_mid  ');
    parambyname('v_mid').asinteger:=Form_Rubb_QryProcCard.Qry_QryProcCard.fieldbyname('标识号').asinteger;
    open;
  end;// with

  Form_Rubb_MaterCard.Tab_MaterCard.open;
  Form_Rubb_MaterCard.n_mid:=Form_Rubb_QryProcCard.Qry_QryProcCard.fieldbyname('标识号').asinteger;
  Form_Rubb_MaterCard.showmodal;

end;

procedure TForm_Rubb_Main.N_ExitClick(Sender: TObject);
begin
  close;
end;

procedure TForm_Rubb_Main.N_NewIgdClick(Sender: TObject);
begin
  Form_Rubb_MixCard1.showmodal;
end;

procedure TForm_Rubb_Main.N_TakeClick(Sender: TObject);
begin

  Form_Rubb_TakeCard.showmodal;
end;

procedure TForm_Rubb_Main.N_RepClick(Sender: TObject);
begin
  Tab_RepCard.Close;
  Form_Rubb_PrtRepCard.QRLabel48.Caption:='';
  Form_Rubb_PrtRepCard.QRLabel49.Caption:='';
  Form_Rubb_PrtRepCard.QRLabel90.Caption:='';
  Form_Rubb_PrtRepCard.QRLabel96.Caption:='';
  Form_Rubb_PrtRepCard.QRLabel97.Caption:='';
  Form_Rubb_PrtRepCard.QRLabel98.Caption:='';
  Form_Rubb_PrtRepCard.QRLabel99.Caption:='';

  Form_Rubb_PrtRepCard.QuickRep1.Preview;
  Tab_RepCard.open;
end;

procedure TForm_Rubb_Main.N_BlankProcClick(Sender: TObject);
begin
  Form_Rubb_PrtBlankProcCard.QuickRep1.Preview;
end;

procedure TForm_Rubb_Main.N_ModProcCardClick(Sender: TObject);
begin
  if not Form_Rubb_QryProcCard.Qry_QryProcCard.Active then
  begin
    showmessage('请先查询并调出工艺卡!');
    exit;
  end; // if

  Form_Rubb_ProcCard.Tab_ProcCard.open;

//找到该记录
  Form_Rubb_ProcCard.Tab_ProcCard.SetKey;
  Form_Rubb_ProcCard.Tab_ProcCard.FindKey([Form_Rubb_QryProcCard.Qry_QryProcCard.fieldbyname('标识号').asinteger]);
  Form_Rubb_ProcCard.Tab_ProcCard.edit;
  Form_Rubb_ProcCard.Panel7.Caption:='修 改 混 炼 工 艺 卡 ';

  Form_Rubb_ProcCard.ComboBox1.Items.Clear;
  Form_Rubb_ProcCard.ComboBox1.items.add(Form_Rubb_ProcCard.DBEdit_IgdCode.text);
  Form_Rubb_ProcCard.ComboBox1.ItemIndex:=0;
  Form_Rubb_ProcCard.showmodal;
end;

procedure TForm_Rubb_Main.N_DelProcCardClick(Sender: TObject);
var
  n_id:integer;
  s_mater, s_OutCardNum :string;
  f_per:real;
begin
  if not Form_Rubb_QryProcCard.Qry_QryProcCard.Active then
  begin
    showmessage('请先查询并调出工艺卡!');
    exit;
  end; // if

  if messagedlg('确要删除当前的工艺卡及相关的技术报告单和用料单吗?',mtwarning,[mbyes,mbno],0) = mrno then
    exit;

  if messagedlg('是否同时要从原材料仓库中删除'+#13+#13'该工艺卡对应的出库记录?',mtWarning,[mbYes,mbNo],0) = mrYes then
    begin
     with Query2 do
  begin
    close;
    sql.Clear;
    sql.add('select * from 炼胶用料单 where 主表标识号 = :v_id');
    parambyname('v_id').asinteger:=Form_Rubb_QryProcCard.Qry_QryProcCard.fieldbyname('标识号').asinteger;
    open;
     if recordcount=0 then
     begin
      with Qry_Exe do
  begin
    close;
    sql.Clear;
    sql.Add('delete from 炼胶工艺卡 where 标识号 = :v_id ');
    parambyname('v_id').asinteger:=Form_Rubb_QryProcCard.Qry_QryProcCard.fieldbyname('标识号').asinteger;
    execsql;

    close;
    sql.Clear;
    sql.Add('delete from 炼胶用料单 where 主表标识号 = :v_id ');
    parambyname('v_id').asinteger:=Form_Rubb_QryProcCard.Qry_QryProcCard.fieldbyname('标识号').asinteger;
    execsql;

    close;
    sql.Clear;
    sql.Add('delete from 炼胶指标报告单 where 标识号 = :v_id ');
    parambyname('v_id').asinteger:=Form_Rubb_QryProcCard.Qry_QryProcCard.fieldbyname('标识号').asinteger;
    execsql;
  end; //with

  Form_Rubb_QryProcCard.Qry_QryProcCard.close;
  Qry_MaterCard.close;

  showmessage('已删除当前工艺卡!');
    // showmessage('无记录可删除!');
     exit;
     end;
     //判断日期是否小于等于结账日期
  if fieldbyname('riqi').asdatetime <=dm.zdyGetmaterCheckDate then //d_LimDate then
  begin
    showmessage('不允许删除结账日期之前的记录!'+#13+#13+'上次结帐日期是:'+datetostr(dm.zdyGetmaterCheckDate));
    perform(WM_NEXTDLGCTL,0,0);
    exit;
  end;
     first;
    while not eof do
    begin

     Query3.close;
     Query3.sql.Clear;
    Query3.sql.add('select * from 原材料台帐 where 日期 = :vd and 出库数量=:nu and 单价=:v_Per and 领料单号=:v_out and 材料名称=:v_mater');
    Query3.parambyname('vd').asdatetime:=Query2.fieldbyname('riqi').asdatetime;
    Query3.parambyname('v_mater').asstring:=Query2.fieldbyname('材料名称').asstring;
    Query3.parambyname('v_Out').asstring:=Query2.fieldbyname('领料单号').asstring;
    Query3.parambyname('nu').asfloat:=Query2.fieldbyname('用料数量').asfloat;
    Query3.parambyname('v_Per').asfloat:=Query2.fieldbyname('单价').asfloat;
    Query3.open;
   // showmessage(Query3.fieldbyname('材料名称').asstring);
//为刷新表格记录数据
  s_mater:=Query3.fieldbyname('材料名称').asstring;
  s_OutCardNum:=Query3.fieldbyname('领料单号').asstring;
  f_per:=Query3.fieldbyname('单价').asfloat;
 // showmessage(datetostr(Query2.fieldbyname('riqi').asdatetime));

//修改该记录日期以后的相关记录库存
  with Qry_exe do
  begin
    close;
    sql.Clear;
    sql.Add('update 原材料台帐 set 库存 = (库存*1000 + :v_Rewt)/1000 ');
    sql.Add('where 库存 < :v_stock and 材料名称 = :v_mater and 领料单号 = :v_outCardNum and 单价 = :v_Per ');
    parambyname('v_stock').asfloat:=Query3.fieldbyname('库存').asfloat;
    parambyname('v_mater').asstring:=Query3.fieldbyname('材料名称').asstring;
    parambyname('v_OutCardNum').asstring:=Query3.fieldbyname('领料单号').asstring;
    parambyname('v_Rewt').asfloat:=Query3.fieldbyname('出库数量').asfloat*1000;
    parambyname('v_Per').asfloat:=Query3.fieldbyname('单价').asfloat;
    execsql;
  end; //with

//修改相关入库记录  剩余库存
  with Qry_exe do
  begin
    close;
    sql.Clear;
    sql.Add('update 原材料台帐 set 剩余库存 = (剩余库存*1000 + :v_Rewt)/1000 ');
    sql.Add('where 出入标识 = :v_IfOut and 材料名称 = :v_mater and 领料单号 = :v_outCardNum and 单价 = :v_Per');
    parambyname('v_Rewt').asfloat:=Query3.fieldbyname('出库数量').asfloat*1000;
    parambyname('v_IfOut').asboolean:=false;
    parambyname('v_mater').asstring:=Query3.fieldbyname('材料名称').asstring;
    parambyname('v_OutCardNum').asstring:=Query3.fieldbyname('领料单号').asstring;
    parambyname('v_Per').asfloat:=Query3.fieldbyname('单价').asfloat;
    execsql;
  end; //with

//删除该记录
  with Qry_exe do
  begin
    close;
    sql.Clear;
    sql.Add('delete from 原材料台帐 where 标识号 = :v_id ');
    parambyname('v_id').asinteger:=Query3.fieldbyname('标识号').asinteger;
    execsql;
  end; //with



//修改最后领料标识的位置 先全部False 在最后一个True
  with Qry_exe do
  begin
    close;
    sql.Clear;
    sql.Add('update 原材料台帐 set 最后领料标识 = :v_LastOutCardFlag');
    sql.Add('where 材料名称 = :v_mater and  领料单号 = :v_outCardNum  and 单价 = :v_per  ');
    parambyname('v_LastOutCardFlag').asboolean:=false;
    parambyname('v_mater').asstring:=Query3.fieldbyname('材料名称').asstring;
    parambyname('v_OutCardNum').asstring:=Query3.fieldbyname('领料单号').asstring;
    parambyname('v_Per').asfloat:=Query3.fieldbyname('单价').asfloat;
    execsql;

    close;
    sql.Clear;
    sql.Add('select * from 原材料台帐 ');
    sql.Add('where 材料名称 = :v_mater and  领料单号 = :v_outCardNum  and 单价 = :v_per  ');
    sql.Add('order by 库存  ');
    parambyname('v_mater').asstring:=Query3.fieldbyname('材料名称').asstring;
    parambyname('v_OutCardNum').asstring:=Query3.fieldbyname('领料单号').asstring;
    parambyname('v_Per').asfloat:=Query3.fieldbyname('单价').asfloat;
    open;
    n_id:=fieldbyname('标识号').asinteger;

    close;
    sql.Clear;
    sql.Add('update 原材料台帐 set 最后领料标识 = :v_LastOutCardFlag ');
    sql.Add('where  标识号 = :v_id');
    parambyname('v_LastOutCardFlag').asboolean:=true;
    parambyname('v_id').asinteger:=n_id;
    execsql;
  end; //with
     next;
    end;
    end;
    end;

  with Qry_Exe do
  begin
    close;
    sql.Clear;
    sql.Add('delete from 炼胶工艺卡 where 标识号 = :v_id ');
    parambyname('v_id').asinteger:=Form_Rubb_QryProcCard.Qry_QryProcCard.fieldbyname('标识号').asinteger;
    execsql;

    close;
    sql.Clear;
    sql.Add('delete from 炼胶用料单 where 主表标识号 = :v_id ');
    parambyname('v_id').asinteger:=Form_Rubb_QryProcCard.Qry_QryProcCard.fieldbyname('标识号').asinteger;
    execsql;

    close;
    sql.Clear;
    sql.Add('delete from 炼胶指标报告单 where 标识号 = :v_id ');
    parambyname('v_id').asinteger:=Form_Rubb_QryProcCard.Qry_QryProcCard.fieldbyname('标识号').asinteger;
    execsql;
  end; //with

  Form_Rubb_QryProcCard.Qry_QryProcCard.close;
  Qry_MaterCard.close;

  showmessage('已删除当前工艺卡!');


end;

procedure TForm_Rubb_Main.N_SumClick(Sender: TObject);
begin
  Form_Rubb_SumProcCard.showmodal;
end;

procedure TForm_Rubb_Main.Image1Click(Sender: TObject);
begin
  If_ShowPic:= not If_ShowPic;

  if If_ShowPic then
  begin
    Panel1.Visible:=false;
    PageControl1.Visible:=false;
    Panel104.Visible:=false;
    DBNavigator1.Visible:=false;
    BitBtn1.Visible:=false;
  end
  else
  begin
    Panel1.Visible:=true;
    PageControl1.Visible:=true;
    Panel104.Visible:=true;
    DBNavigator1.Visible:=true;
    BitBtn1.Visible:=true;
  end;//if


end;

procedure TForm_Rubb_Main.BitBtn1Click(Sender: TObject);
begin
    If_ShowPic:=true;
    Panel1.Visible:=false;
    PageControl1.Visible:=false;
    Panel104.Visible:=false;
    DBNavigator1.Visible:=false;
    BitBtn1.Visible:=false;
   // Tab_RepCard.Active:=false;
end;

procedure TForm_Rubb_Main.N7Click(Sender: TObject);
begin
  if dbePrice.text <> '' then
{ Form_Rubb_ProcCard.Tab_ProcCard.open;
 with Qry_MaterCard do
  begin
    close;
    sql.Clear;
    sql.Add('select * from 炼胶用料单 where 主表标识号 = :v_mid  ');
    parambyname('v_mid').asinteger:=strtoint(Form_Rubb_ProcCard.Tab_ProcCard.fieldbyname('标识号').asstring);
    open;
  end;// with
    if Qry_MaterCard.RecordCount<>0 then }
  begin
    showmessage('这张工艺卡已经领过料了!');
    exit;
  end; //if

  Form_Mater_Main.N_AutoClick(sender);
end;



procedure TForm_Rubb_Main.Button1Click(Sender: TObject);
begin
  close;
end;

procedure TForm_Rubb_Main.N10Click(Sender: TObject);
begin
  Form_Rubb_InCard.DBGrid1.Align:=alBottom;
  Form_Rubb_InCard.zdyshowRubbName;
  Form_Rubb_InCard.showmodal;

end;

procedure TForm_Rubb_Main.N11Click(Sender: TObject);
  begin
    Form_Rubb_sqljiaoliao.showmodal ;
end;

procedure TForm_Rubb_Main.N13Click(Sender: TObject);
var
  dfrom,dto:Tdate;
begin

    Form_Rubb_SumCfg.showmodal ;


end;

procedure TForm_Rubb_Main.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    try
   if ((Key>57) and (Key<48)) or ((Key<96) and (Key>110)) then
 // exit;
 // if Key=190 then
  exit;
  except
  end;

end;

end.



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -