當MRP計算結果發布後,計算出的數據將從MRP計算結果數據表中清除,如果要浏覽以前的MRP計算結果,就需要利用MRP計算結果的歷史查詢功能。
(1) 新建一個窗體,命名為“mrphistory”,保存並把它從自動創建的窗體列表中刪除。在窗體上放置如圖3.40所示的控件。
圖3.40 MRP計算歷史查詢窗體
(2) 各控件的屬性設置如表3.11所示。
表3.11 MRP計算歷史查詢窗體控件屬性設置
(3) MRP計算歷史查詢窗體的事件處理程序代碼如下。
//--------------查詢------------
procedure Tmrphistory.BitBtn12Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select a.*,b.物料名稱 from mrp物料需求歷史 a,物料主文件 b
where (a.物料編號 like ''%'+edit1.Text+'%'')and');
adoquery1.SQL.Add('(a.年份 like ''%'+edit2.Text+'%'')
and(a.計劃期 like ''%'+edit3.Text+'%'')');
adoquery1.SQL.Add('and(a.物料編號=b.物料編號)');
adoquery1.Open;
edit1.Clear;
edit2.Clear;
edit3.Clear;
end;
procedure Tmrphistory.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
bitbtn12.Click;
end;
procedure Tmrphistory.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
bitbtn12.Click;
end;
procedure Tmrphistory.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
bitbtn12.Click;
end;
//-----------關閉窗體---------------
procedure Tmrphistory.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
end;
//--------動態設置列寬度------------
procedure Tmrphistory.DataSource1DataChange(Sender: TObject;
Field: TFIEld);
var
i:integer;
begin
for i:=1 to dbgrid1.Columns.Count-1 do
dbgrid1.Columns[i].Width:=80;
end;
這樣我們就完成了本實例的最後一個功能,其效果圖如圖3.40所示。