mrp_qry_halfrunmrp_d.pas
来自「一个MRPII系统源代码版本」· PAS 代码 · 共 143 行
PAS
143 行
unit Mrp_Qry_HalfRunMrp_D;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Qry, Menus, ExtPrintReport, Db, ActnList, AdODB, Grids, DBGridEh,
StdCtrls, ExtCtrls, ComCtrls, ToolWin;
Type
TFrm_Mrp_Qry_HalfRunMrp_D = Class(TFrm_Base_Qry)
AdoQry_MainItemflag: TStringField;
AdoQry_MainUomName: TStringField;
AdoQry_Maingrossqty: TFloatField;
AdoQry_MainAssignedqty: TFloatField;
AdoQry_MainCurrentoncheckqty: TFloatField;
AdoQry_Mainonhandqty: TFloatField;
AdoQry_Mainlessqty: TFloatField;
Label1: TLabel;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure AdoQry_MainAfterScroll(DataSet: TDataSet);
private
{ Private declarations }
public
ite_ItemCode:string;
ite_grossqty:real;
procedure InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);Override;
{ Public declarations }
end;
var
Frm_Mrp_Qry_HalfRunMrp_D: TFrm_Mrp_Qry_HalfRunMrp_D;
implementation
uses Sys_Global;
{$R *.DFM}
{ TFrm_Mrp_Qry_HalfRunMrp_D }
procedure TFrm_Mrp_Qry_HalfRunMrp_D.InitForm(AdOConnection: TAdOConnection;
ReadOnly: Boolean);
var sqltext:string; tMpsqltext:string;
begin
Application.ProcessMessages;
inherited;
tMpsqltext:='select ItemCode,sum(isnull(grossqty,0)) as grossqty into #tMpsonItem from #tMpson group by ItemCode';
Executesql(AdoQry_tmp,tMpsqltext,1);
tMpsqltext:='Select ItemCode, '
+' MoLine.MONo As OrderNo, '
+' MoLineNo As OrderLineNo, '
+' MoNoFinishQty As OrderQty, '
+' MoQty As Qty, '
+' MoLineStatus As OrderLineStatus, '
+' Mo.DeptCode As DeptVendorCode, '
+' 0 As PmCode, '
+' MoStArtWorkDate As DueDate, '
+' MoLineDate As ReleaseDate '
+' Into #TmPmoPo '
+' From MoLine '
+' Join Mo On MoLine.MoNo=Mo.MoNo '
+' Where MoLineStatus<7 '
+' And MoNoFinishQty>0 '
+' and ItemCode in(select ItemCode from Item where PmCode=0 or PmCode=3) '
+' And MoLine.MoNo Not In '
+' (Select MoNo '
+' From Mo '
+' Where MoSpecial=1) '
+' Create Index ItemCode On #TmPmoPo(ItemCode,ReleaseDate) ';
Executesql(AdoQry_tmp,tMpsqltext,1);
sqltext:='select Itemflag=#tMpsonItem.ItemCode+'' ''+Item.ItemName, '
+' #tMpsonItem.ItemCode, '
+' Uom.UomName, '
+' #tMpsonItem.grossqty, '
+' convert(float,0) as Assignedqty, '
+' Item.CurrentonCheckInv as Currentoncheckqty, '
+' Item.CurrentonhandInv as onhandqty, '
+' convert(float,0) as lessqty '
+' into #grossResult '
+' from #tMpsonItem'
+' join Item on #tMpsonItem.ItemCode=Item.ItemCode '
+' left outer join Uom on Item.UomCode=Uom.UomCode ';
Executesql(AdoQry_Main,sqltext,1);
sqltext:='Update #grossResult '
+' Set Assignedqty=TmpInvOutBillLine.InvBillQty '
+' From (Select InvOutBillLine.ItemCode, '
+' InvBillQty*#TmPmOPo.OrderQty/#TmPmOPo.Qty As InvBillQty '
+' From InvOutBillLine '
+' Join #TmPmOPo on InvOutBillLine.PONo= #TmPmOPo.OrderNo '
+' And InvOutBillLine.POLineNo= #TmPmoPo.OrderLineNo '
+' Where InvOutBillLine.PONo Is Not Null '
+' And #TmPmOPo.OrderLineStatus=6 '
+' And #TmPmOPo.Qty>0 ) TmpInvOutBillLine '
+' Where #grossResult.ItemCode=TmpInvOutBillLine.ItemCode '
+' Update #grossResult '
+' Set Assignedqty=Assignedqty+TmpInvOutBillLine.InvBillQty '
+' From (Select InvOutBillLine.ItemCode, '
+' InvBillQty*#TmPmOPo.OrderQty/#TmPmOPo.Qty As InvBillQty '
+' From InvOutBillLine '
+' Join #TmPmOPo on InvOutBillLine.MONo= #TmPmOPo.OrderNo '
+' And InvOutBillLine.MoLineNo=#TmPmoPo.OrderLineNo '
+' Where InvOutBillLine.MONo Is Not Null '
+' And #TmPmOPo.OrderLineStatus=6 '
+' And #TmPmOPo.Qty>0 ) TmpInvOutBillLine '
+' Where #grossResult.ItemCode=TmpInvOutBillLine.ItemCode ';
Executesql(AdoQry_Main,sqltext,1);
sqltext:='update #grossResult'
+' set lessqty=case when onhandqty+Currentoncheckqty+Assignedqty-grossqty>0 then null '
+' else onhandqty+Currentoncheckqty+Assignedqty-grossqty '
+' end';
Executesql(AdoQry_Main,sqltext,1);
selectfromsql:='select * from #grossResult';
Executesql(AdoQry_Main,'select * from #grossResult Order by ItemCode',0);
end;
procedure TFrm_Mrp_Qry_HalfRunMrp_D.FormDestroy(Sender: TObject);
begin
inherited;
Frm_Mrp_Qry_HalfRunMrp_D:=nil;
end;
procedure TFrm_Mrp_Qry_HalfRunMrp_D.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
try
Executesql(AdoQry_tmp,'drop table #tMpson,#tMpsonItem,#tmPmopo,#grossResult',1);
except
end;
end;
procedure TFrm_Mrp_Qry_HalfRunMrp_D.AdoQry_MainAfterScroll(
DataSet: TDataSet);
begin
inherited;
if AdoQry_Main.fieldbyname('lessqty').asfloat<0 then
label1.Visible:=True
else label1.Visible:=False;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?