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

📄 unit_jihua.~pas

📁 此代码为企业原料管理代码
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
unit Unit_jihua;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  DBTables, Db, ComCtrls, ExtCtrls, Buttons, StdCtrls, Grids, DBGrids;

type
  TForm_jihua = class(TForm)
    Button1: TButton;
    DBGrid1: TDBGrid;
    Panel6: TPanel;
    BitBtn2: TBitBtn;
    Button2: TButton;
    DS_TakeCard: TDataSource;
    Qry_exe: TQuery;
    TabIO: TTable;
    Q1: TQuery;
    TabMater: TTable;
    Query1: TQuery;
    Query2: TQuery;
    Query3: TQuery;
    Panel2: TPanel;
    Panel4: TPanel;
    edit_p: TEdit;
    Panel7: TPanel;
    Panel8: TPanel;
    Edit_dep: TEdit;
    Panel11: TPanel;
    Edit_dinghao: TEdit;
    Panel12: TPanel;
    Label1: TLabel;
    Edit1_riqi: TEdit;
    Panel13: TPanel;
    Edit2_shuli: TEdit;
    Panel1: TPanel;
    Edit_MixCardNum: TEdit;
    Edit_Rubbmi: TEdit;
    Edit_Per: TEdit;
    Panel3: TPanel;
    Panel_Hint: TPanel;
    Panel5: TPanel;
    Panel9: TPanel;
    edit_tanhu: TEdit;
    Panel10: TPanel;
    Panel14: TPanel;
    eTotal: TEdit;
    Label2: TLabel;
    Edit4: TEdit;
    Panel15: TPanel;
    edit_gujia: TEdit;
    Panel16: TPanel;
    Panel17: TPanel;
    Edit6: TEdit;
    DateTimePicker1: TDateTimePicker;
    Panel18: TPanel;
    Panel19: TPanel;
    Edit1_shehao: TEdit;
    Edit_tuhao: TEdit;
    Qry_TakeCard: TQuery;
    Edit1: TEdit;
    Label3: TLabel;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Edit_MixCardNumChange(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Edit4Change(Sender: TObject);
    procedure Edit_PerChange(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure Edit1_shehaoExit(Sender: TObject);
    procedure Edit1_shehaoEnter(Sender: TObject);
    procedure Edit_dinghaoExit(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Edit1Enter(Sender: TObject);
   // procedure BitBtn2Click(Sender: TObject);

  private
    { Private declarations }
  public

    { Public declarations }
  end;

var
  Form_jihua: TForm_jihua;
  b_state:integer;
implementation

uses Unit_Rubb_QryProcCard, Unit_Rubb_Main, Unit_dinginput, Unit_prjihua,
  UnitQueryID;//, Unit_Rubb_piliang;

{$R *.DFM}

procedure TForm_jihua.Button1Click(Sender: TObject);
 var
  t_SelfStock,fWeight,fPrice,fTotalWeight:real;  //最后的步骤弥补
  sTakename,sProcBat,sStaff:string;
  jinzhong,temWT, zongfen, meifenzho, temPer:real;
  temNAME,temDrawCard:string;
  tanhuangshu,gujiashu,n_id,iID:integer;
  bDrawFlag, bLogic:Boolean;
  bmRubbQry:TBookMark;
begin


// 必须填写某些栏目
  if (Edit_dinghao.text = '') or (Edit1_shehao.text = '')  then
  begin
    showmessage('必须填写“订单编号”和“胶损耗率”!');
    exit;
  end;//if

  //清jihuadan附表
    with Query1 do
     begin
      close;
      sql.Clear;
      sql.Add('delete from jihuadan2  ');
      execsql;
      end;//if

   with Query3 do
  begin
    close;
    sql.Clear;
    sql.Add('select * from dinghuodan.db ');
    sql.Add('where  xuhao =:xu');
    parambyname('xu').asstring:=Edit_dinghao.text;
    open;
    if recordcount = 0 then
     begin
      showmessage('无此订单!');
      exit;
     end;
      if  fieldbyname('flag').asstring='t' then
       begin
      showmessage('此订单已编制了生产计划!');
      exit;
     end;
    Edit_tuhao.text:=query3.fieldbyname('tuhao').asstring;
    edit_p.text:=query3.fieldbyname('chpimi').asstring;
    Edit_dep.text:=query3.fieldbyname('kehumi').asstring;
    Edit2_shuli.text:=inttostr(query3.fieldbyname('shuli').asinteger);
    Edit1_riqi.text:=datetimetostr(query3.fieldbyname('diqi').asdatetime);

  end; //with
     with Qry_exe do //查胶料名
      begin
        close;
        sql.clear;
        sql.add('select *  from ProdDictionary.DB where prodname = :v_MixCardNum and FigID=:tu');
        parambyname('v_MixCardNum').asstring:=query3.fieldbyname('chpimi').asstring;
        parambyname('tu').asstring:=query3.fieldbyname('tuhao').asstring;
        open;
         if recordcount = 0 then
           begin
            showmessage('此产品没有登记!');
            exit;
           end;
          Edit_Rubbmi.text:=fieldbyname('RubbName').asstring;
          jinzhong:=fieldbyname('Weight').asfloat;
          tanhuangshu:=fieldbyname('tanhuang').asinteger;
          gujiashu:=fieldbyname('gujia').asinteger;
        end; //with
          jinzhong:=(jinzhong*query3.fieldbyname('shuli').asinteger)*(1+strtofloat(Edit1_shehao.text)/100);
          jinzhong:=strtofloat(formatfloat('0.00',jinzhong/1000));
          eTotal.text:=floattostr(jinzhong);
          edit_tanhu.text:=inttostr(tanhuangshu*query3.fieldbyname('shuli').asinteger);
          edit_gujia.text:=inttostr(gujiashu*query3.fieldbyname('shuli').asinteger);

   with Qry_exe do //查配方编号
      begin
        close;
        sql.clear;
        sql.add('select *  from 炼胶配方表.DB where 制成品名称= :v_MixCardNum ');
        parambyname('v_MixCardNum').asstring:=Edit_Rubbmi.text;
        open;
         if recordcount = 0 then
           begin
            showmessage('此配方没有登记!');
            exit;
           end;
          Edit_MixCardNum.text:=inttostr(fieldbyname('配方编号').asinteger);
        end; //with

 // fTotalWeight:=strtofloat(eChe.text)*strtofloat(Edit_Per.text); //百分比配方
 // fTotalWeight:=strtofloat(formatfloat('0.000',fTotalWeight));

  case b_state of //是百分比配方
  1:
  begin
    fTotalWeight:=strtofloat(eTotal.text); //总重
      with Qry_TakeCard do
      begin
        close;
        sql.clear;
        sql.add(format('select 配方编号,制成品名称,材料名称,百分比/100*'+'"%s"'+' as 重量 from 炼胶配方表 where 配方编号 = :v_MixCardNum ',[floattostr(fTotalWeight)]));
        parambyname('v_MixCardNum').asinteger:=strtoint(Edit_MixCardNum.text);
        open;
         first;
      //  messagedlg('计划已做好!', mtinformation, [mbok],0);
      end; //with
    end; //if
  0:
  begin
    with Q1 do
    begin //求总份数
      close;
      sql.Clear;
      sql.Add('select sum(份数) as zofen from 炼胶配方表 where 配方编号 = :v_MixCardNum ');
      parambyname('v_MixCardNum').asinteger:=strtoint(Edit_MixCardNum.text);
      open;
      zongfen:=fieldbyname('zofen').asfloat;
      zongfen:=strtofloat(formatfloat('0.000',zongfen));
    end; //with
      meifenzho:=jinzhong/zongfen;
       meifenzho:=strtofloat(formatfloat('0.000', meifenzho));
       fTotalWeight:= meifenzho;

    with Qry_TakeCard do
    begin
      close;
      sql.clear;
      sql.add(format('select 配方编号,制成品名称,材料名称,份数*'+'"%s"'+' as 重量 from 炼胶配方表 where 配方编号 = :v_MixCardNum ',[floattostr(fTotalWeight)]) );
      parambyname('v_MixCardNum').asinteger:=strtoint(Edit_MixCardNum.text);
      open;
        first;
     end;

   end; //with


 end;


//都够了
  Qry_TakeCard.first;
  while not Qry_TakeCard.Eof do
  begin
    temName:=Qry_TakeCard.fieldbyname('材料名称').asstring;
    temWT:=Qry_TakeCard.fieldbyname('重量').asfloat;

//  if Qry_exe.eof then
//    showmessage('已经到了最后一条,无法继续循环!');


    //选出对应的入库记录
    Qry_exe.close;
    Qry_exe.sql.Clear;
    Qry_exe.sql.Add('select * from 原材料台帐 ');
    Qry_exe.sql.Add('where 材料名称 = :sName and 剩余库存 > 0 and 出入标识 = :bIO ');
    Qry_exe.sql.Add('order by 日期 ');
    Qry_exe.parambyname('sName').asstring:=temName;
    Qry_exe.parambyname('bIO').asBoolean:=false;
    Qry_exe.open;

   { if Qry_exe.RecordCount = 0 then
//实际不可能,前面已检查过都够
    begin
      if messagedlg(temName +' 库存量不够 ,缺少' + floattostr(temWT)+' 千克'
      +#13+#13+'  是否继续领料?'+#13+#13+'若继续请按 Yes 键,若中止请按 NO 键'
      +#13+#13+'按 YES 键后,请向其他单位借 '+ floattostr(temWT)+'千克的'+temName+',日后在混炼用料单中手动添加'+ floattostr(temWT)+'千克的'+temName+'!'
      +#13+#13+'按 NO 键后必须在材料仓库的台帐中删除已领取的材料记录!'
      ,mtwarning,[mbyes,mbno],0) = mryes then

        continue  //继续循环
      else
      begin
        showmessage('您已经中止填写用料单!' +#13+#13+'请按"返回"键! ');
        exit;  //跳出该按钮事件
      end; //if
    end
    else }
    begin //开始计帐

⌨️ 快捷键说明

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