程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> MRP計算功能的實現

MRP計算功能的實現

編輯:Delphi

  有了前面所形成的主生產計劃和基礎數據庫,也就是知道了我們在什麼時間需要生產什麼產品,就可以調用MPR的計算過程計算出生產這些成品所需要的物料。MRP的計算過程已經在建庫的時候寫到數據庫的存儲過程中了,這樣在Delphi程序中直接調用存儲過程就可以完成MRP的計算。

  (1) 新建一個窗體,命名為“MRPCal”,保存並將其從自動創建的窗體列表中刪除。在窗體上放置如圖3.39所示的控件。

圖3.39  MRP計算窗體

  (2) 各控件的屬性設置如表3.10所示。

  表3.10  MRP計算窗體控件屬性設置

   (3) MRP計算窗體的時間處理程序代碼如下。

    //------------MRP計算------------------
    procedure TMRPCal.BitBtn1Click(Sender: TObject);
    var
    //調用儲存過程時的參數
    v1,v2,v3:string;
    i:integer;
    begin
    //考慮庫存,生產和采購訂單
    if checkbox1.Checked then
    v1:='1'
    else
    v1:='0';
    //是否考慮提前期
    if checkbox2.Checked then
    v2:='1'
    else
    v2:='0';
    //是否考慮損耗
    if checkbox3.Checked then
    v3:='1'
    else
    v3:='0';
     //調用儲存過程,執行mrp計算
    adocommand1.CommandText:='exec sf_mrp計算 '''+v1+''','''+v2+''','''
    +v3+'''';
     adocommand1.Execute;
     //刷新數據
     adoquery2.Active:=false;
     adoquery2.Active:=true;
      //允許發布計算結果
      bitbtn2.Enabled:=true;
     end; 


    procedure TMRPCal.DataSource2DataChange(Sender: TObject; Field: TFIEld);
    begin
    //設置列寬度
    dbgrid1.Columns[0].Width:=80;
    dbgrid2.Columns[1].Width:=80;
    dbgrid2.Columns[2].Width:=64;
    dbgrid2.Columns[3].Width:=64;
    dbgrid2.Columns[4].Width:=64;
    dbgrid2.Columns[5].Width:=64;
    dbgrid2.Columns[6].Width:=64;
    dbgrid2.Columns[7].Width:=64;
    dbgrid2.Columns[8].Width:=64;
    dbgrid2.Columns[9].Width:=64;
    dbgrid2.Columns[10].Width:=64;
    dbgrid2.Columns[11].Width:=64;
    end;

 //--------關閉窗體-----------
    procedure TMRPCal.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    action:=cafree;
    end;
     
    //--------------發布MRP計算結果-------------
    procedure TMRPCal.BitBtn2Click(Sender: TObject);
    begin
    if application.MessageBox('是否發布本次計算結果','發布mrp計算結果',MB_OKCANCEL)=ID_OK then
     begin
     //調用儲存過程,執行mrp計算結果發布
     adocommand1.CommandText:='exec sf_mrp結果發布';
     adocommand1.Execute;
     //刷新數據
     adoquery2.Active:=false;
     adoquery2.Active:=true;
     adoquery1.Active:=false;
     adoquery1.Active:=true;
     end;
    end;     

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved