📄 mrp_qry_newtotalmrp.pas
字号:
+ ' and InvOutBill.polineno=#tmpOrder.Orderlineno '
+' ) '
+ ' group by ItemCode,InvOutBill.pono,InvOutBill.polineno ';
sqltext33:='select ItemCode, '
+#13+' mono as Orderno, '
+#13+' MoLineno as Orderlineno, '
+#13+' sum(isnull(moCtrlqty,0)) as Ctrlqty '
+#13+' into #tmpItemList '
+#13+' from mnItemList '
+#13+' where exists(select * from #tmpOrder '
+#13+' where mnItemList.mono=#tmpOrder.Orderno '
+#13+' and mnItemList.MoLineno=#tmpOrder.Orderlineno) '
+#13+' group by ItemCode,mono,MoLineno '
+#13+' union '
+#13+' select ItemCode, '
+#13+' pono as Orderno, '
+#13+' polineno as Orderlineno, '
+#13+' sum(isnull(poCtrlqty,0)) as Ctrlqty '
+#13+' from opItemList '
+#13+' where exists(select * from #tmpOrder '
+#13+' where opItemList.pono=#tmpOrder.Orderno '
+#13+' and opItemList.polineno=#tmpOrder.Orderlineno) '
+#13+' group by ItemCode,pono,polineno '
+' select #tmpItemList.*, '
+ ' #tmpOrder.Orderqty, '
+ ' #tmpOrder.OrdernoFinishqty, '
+ ' #tmpInvBill.Billqty, '
+ ' case when #tmpItemList.Ctrlqty>=#tmpInvBill.Billqty '
+ ' then case when #tmpInvBill.Billqty-(#tmpOrder.Orderqty-#tmpOrder.OrdernoFinishqty)*#tmpItemList.Ctrlqty/#tmpOrder.Orderqty<0 then 0 '
+ ' else #tmpInvBill.Billqty-(#tmpOrder.Orderqty-#tmpOrder.OrdernoFinishqty)*#tmpItemList.Ctrlqty/#tmpOrder.Orderqty end '
+ ' when #tmpItemList.Ctrlqty<#tmpInvBill.Billqty '
+ ' then (#tmpOrder.Orderqty-#tmpOrder.OrdernoFinishqty)*#tmpInvBill.Billqty/#tmpOrder.Orderqty '
+ ' end as Assignedqty '
+ ' into #tmPAssignedqty '
+ ' from #tmpItemList,#tmpOrder,#tmpInvBill '
+ ' where #tmpItemList.Orderno=#tmpOrder.Orderno '
+ ' and #tmpItemList.Orderlineno=#tmpOrder.Orderlineno '
+ ' and #tmpItemList.Orderno=#tmpInvBill.Orderno '
+ ' and #tmpItemList.Orderlineno=#tmpInvBill.Orderlineno '
+ ' and #tmpItemList.ItemCode=#tmpInvBill.ItemCode '
+ ' Order by #tmpItemList.Orderno,#tmpItemList.Orderlineno '
+ ' select ItemCode,sum(Assignedqty) as Assignedqty into #Assignedqty from #tmPAssignedqty '
+ ' group by ItemCode ';
sqltext8:='Select #tmPMrpResultMrp1.ItemCode, '
+#13+' #tmPMrpResultMrp1.ItemName, '
+#13+' #tmPMrpResultMrp1.Qclt,'
+#13+' #tmPMrpResultMrp1.UomName, '
+#13+' #tmPMrpResultMrp1.PmCode, '
+#13+' #tmPMrpResultMrp1.PmBatch, '
+#13+' #tmPMrpResultMrp1.Batchstrat, '
+#13+' #tmPMrpResultMrp1.CurrentOnCheckInv, '
+#13+' #tmPMrpResultMrp1.GrossQty, '
+#13+' #tmPMrpResultMrp1.MinQty, '
+#13+' isnull(#Assignedqty.Assignedqty,0) as Assignedqty, '
+#13+' isnull(#tmPMrpResultMrp1.CurrentOnHandInv,0) As CurrentOnHandInv,'
+#13+' isnull(#tmPMrpResultMoLine1.Qty1,0)+isnull(#tmPMrpResultPoLine1.Qty1,0) As Orderpreqty,'
+#13+' isnull(#tmPMrpResultMoLine2.Qty2,0)+isnull(#tmPMrpResultPoLine2.Qty2,0) As Orderxdqty,'
+#13+' isnull(#tmPMrpResultMoLine2.Qty3,0)+isnull(#tmPMrpResultPoLine2.Qty3,0) As OrderFinishqty,'
+#13+' isnull(#tmPMrpResultMoLine2.Qty4,0)+isnull(#tmPMrpResultPoLine2.Qty4,0) As OrdernoFinishqty '
+#13+' into #tmPMrpResultresul '
+#13+' From #tmPMrpResultMrp1 '
+#13+' Left Join #tmPMrpResultMoLine1 '
+#13+' On #tmPMrpResultMrp1.ItemCode=#tmPMrpResultMoLine1.ItemCode '
+#13+' Left Join #tmPMrpResultMoLine2 '
+#13+' On #tmPMrpResultMrp1.ItemCode=#tmPMrpResultMoLine2.ItemCode '
+#13+' Left Join #tmPMrpResultPoLine1 '
+#13+' On #tmPMrpResultMrp1.ItemCode=#tmPMrpResultPOLine1.ItemCode '
+#13+' Left Join #tmPMrpResultPoLine2 '
+#13+' On #tmPMrpResultMrp1.ItemCode=#tmPMrpResultPOLine2.ItemCode '
+#13+' Left Join #tmPMrpResultInvOutBillLine1 '
+#13+' On #tmPMrpResultMrp1.ItemCode=#tmPMrpResultInvOutBillLine1.ItemCode '
+#13+' Left Join #tmPMrpResultInvOutBillLine2 '
+#13+' On #tmPMrpResultMrp1.ItemCode=#tmPMrpResultInvOutBillLine2.ItemCode'
+#13+' left join #Assignedqty on #tmPMrpResultMrp1.ItemCode=#Assignedqty.ItemCode ';
//得出最后结果
sqltext9:='select *, '
+' MrpInv=CurrentonCheckInv+CurrentonhandInv, '
+' lessqty=CurrentonhandInv+CurrentonCheckInv-grossqty, '
+' Sysqty=case when Batchstrat=0 '
+' then -(CurrentonhandInv-grossqty-minqty+Orderpreqty+OrdernoFinishqty) '
+' when Batchstrat=1 and PmBatch=0 '
+' then -(CurrentonhandInv-grossqty-minqty+Orderpreqty+OrdernoFinishqty) '
+' when Batchstrat=1 and PmBatch>0 and (CurrentonhandInv-grossqty-minqty+Orderpreqty+OrdernoFinishqty)-floor((CurrentonhandInv-grossqty-minqty+Orderpreqty+OrdernoFinishqty)/PmBatch)*PmBatch=0 '
+' then -(CurrentonhandInv-grossqty-minqty+Orderpreqty+OrdernoFinishqty) '
+' when Batchstrat=1 and PmBatch>0 '
+' and (CurrentonhandInv-grossqty-minqty+Orderpreqty+OrdernoFinishqty)-floor((CurrentonhandInv-grossqty-minqty+Orderpreqty+OrdernoFinishqty)/PmBatch)*PmBatch<>0 '
+' then (floor((grossqty-CurrentonhandInv+minqty-Orderpreqty-OrdernoFinishqty)/PmBatch)+1)*PmBatch '
+' end '
+' into #tmPMrpTotalResult '
+' from #tmPMrpResultresul'
+' Order by #tmPMrpResultresul.PmCode,#tmPMrpResultresul.ItemCode'
+' drop table #tmpOrder,#tmpItemList,#tmpInvBill,#tmPAssignedqty,#Assignedqty ';
selectfromsql:='select *,Itemflag=ItemCode+'' ''+ItemName from #tmPMrpTotalResult ';
Orderbyfields:='PmCode,ItemCode,';
condition:='PmCode<>0';
Application.ProcessMessages;
Executesql(AdoQry_Main,sqltext0,1);
Executesql(AdoQry_Main,sqltext1,1);
Executesql(AdoQry_Main,sqltext2,1);
Executesql(AdoQry_Main,sqltext3,1);
Executesql(AdoQry_Main,sqltext4,1);
Executesql(AdoQry_Main,sqltext5,1);
Executesql(AdoQry_Main,sqltext6,1);
Executesql(AdoQry_Main,sqltext7,1);
Executesql(AdoQry_Main,sqltext22,1);
Executesql(AdoQry_Main,sqltext33,1);
Executesql(AdoQry_Main,sqltext8,1);
Executesql(AdoQry_Main,sqltext9,1);
Executesql(AdoQry_Main,'select *,Itemflag=ItemCode+'' ''+ItemName from #tmPMrpTotalResult where PmCode<>0 Order by PmCode,ItemCode',0);
end;
procedure TFrm_Mrp_Qry_NewTotalMrp.FormDestroy(Sender: TObject);
begin
inherited;
Frm_Mrp_Qry_NewTotalMrp:=nil;
end;
procedure TFrm_Mrp_Qry_NewTotalMrp.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
with AdoQry_tmp do
begin
Close;
sql.clear;
sql.Add('drop table #tmPMrpResultMrp,#tmPMrpResultMrp1,#tmPMrpResultMoLine1,#tmPMrpResultMoLine2,#tmPMrpResultpoline1,#tmPMrpResultpoline2,#tmPMrpResultInvOutBillline1,#tmPMrpResultInvOutBillline2,#tmPMrpResultresul,#tmPMrpTotalResult');
Prepared;
try
execsql;
except
end;
end;
end;
procedure TFrm_Mrp_Qry_NewTotalMrp.Act_LookExecute(Sender: TObject);
begin
//inherited;
try
Frm_Mrp_Qry_InformalTotalMrp_D:=TFrm_Mrp_Qry_InformalTotalMrp_D.Create(self);
with Frm_Mrp_Qry_InformalTotalMrp_D do
begin
Extedt_ItemCode.Text:=AdoQry_Main.fieldbyname('ItemCode').asstring;
lbl_ItemName.Caption:=AdoQry_Main.fieldbyname('ItemName').asstring;
lbl_UomName.Caption:=AdoQry_Main.fieldbyname('UomName').asstring;
lbl_PmCode.Caption:=AdoQry_Main.fieldbyname('PmCode').asstring;
lbl_minqty.Caption:=floattostr(AdoQry_Main.fieldbyname('minqty').asfloat);
edt_CurrentonCheckInv.Text:=floattostr(AdoQry_Main.fieldbyname('CurrentonCheckInv').asfloat);
edt_CurrentonhandInv.Text:=floattostr(AdoQry_Main.fieldbyname('CurrentonhandInv').asfloat);
edt_MrpInv.Text:=floattostr(AdoQry_Main.fieldbyname('MrpInv').asfloat);
edt_grossqty.Text:=floattostr(AdoQry_Main.fieldbyname('grossqty').asfloat);
edt_lessqty.Text:=floattostr(AdoQry_Main.fieldbyname('lessqty').asfloat);
edt_Sysqty.Text:=floattostr(AdoQry_Main.fieldbyname('Sysqty').asfloat);
edt_Orderpreqty.Text:=floattostr(AdoQry_Main.fieldbyname('Orderpreqty').asfloat);
edt_Orderxdqty.Text:=floattostr(AdoQry_Main.fieldbyname('Orderxdqty').asfloat);
edt_OrderFinishqty.Text:=floattostr(AdoQry_Main.fieldbyname('OrderFinishqty').asfloat);
edt_OrdernoFinishqty.Text:=floattostr(AdoQry_Main.fieldbyname('OrdernoFinishqty').asfloat);
showmodal;
end;
finally
Frm_Mrp_Qry_InformalTotalMrp_D.Free;
end;
end;
procedure TFrm_Mrp_Qry_NewTotalMrp.btn_ItemClick(Sender: TObject);
begin
inherited;
Qry_Item(dbconnect,AdoQry_Main.fieldbyname('ItemCode').asstring);
{ try
Frm_Mrp_Qry_UpRightMrp_D_Item:=TFrm_Mrp_Qry_UpRightMrp_D_Item.Create(Application);
with Frm_Mrp_Qry_UpRightMrp_D_Item do
begin
with AdoQry_tmp do
begin
Connection:=dbconnect;
Close;
sql.clear;
sql.Add('select Item.*,t1.EmployeeName as buyerName,'
+' t2.EmployeeName as PlannerName,'
+' t3.EmployeeName as whkeeperName,'
+' t4.UomName '
+' from Item,Employee t1,Employee t2,Employee t3,Uom t4'
+' where Item.EmployeeCode*=t1.EmployeeCode '
+' and Item.Pla_EmployeeCode*=t2.EmployeeCode'
+' and Item.wh_EmployeeCode*=t3.EmployeeCode'
+' and Item.UomCode*=t4.UomCode'
+' and ItemCode='+quotedstr(AdoQry_Main.fieldbyname('ItemCode').asstring));
open;
edit1.text:=fieldbyname('ItemCode').asstring;
edit2.text:=fieldbyname('ItemName').asstring;
edit3.text:=fieldbyname('UomCode').asstring;
label4.Caption:=fieldbyname('UomName').asstring;
edit4.text:=fieldbyname('designno').asstring;
edit3.text:=fieldbyname('UomCode').asstring;
combobox1.ItemIndex:=fieldbyname('ItemUsable').asinteger;
combobox2.ItemIndex:=fieldbyname('ItemType').asinteger;
edit5.text:=fieldbyname('EmployeeCode').asstring;
label9.Caption:=fieldbyname('buyerName').asstring;
edit6.text:=fieldbyname('Pla_EmployeeCode').asstring;
label11.Caption:=fieldbyname('PlannerName').asstring;
edit7.text:=fieldbyname('whCode').asstring;
edit8.text:=fieldbyname('wh_EmployeeCode').asstring;
label14.Caption:=fieldbyname('whkeeperName').asstring;
combobox3.ItemIndex:=fieldbyname('onlydefaultwh').asinteger;
edit9.text:=floattostr(fieldbyname('maxqty').asfloat);
edit10.text:=floattostr(fieldbyname('minqty').asfloat);
combobox4.ItemIndex:=fieldbyname('limitout').asinteger;
combobox5.ItemIndex:=fieldbyname('longpurchlt').asinteger;
edit11.text:=floattostr(fieldbyname('purchldtime').asfloat);
edit12.text:=floattostr(fieldbyname('mnldtime').asfloat);
combobox6.ItemIndex:=fieldbyname('PmCode').asinteger;
combobox7.ItemIndex:=fieldbyname('Batchstrat').asinteger;
edit13.text:=floattostr(fieldbyname('PmBatch').asfloat);
edit14.text:=fieldbyname('DeptCode').asstring;
edit15.text:=fieldbyname('BarCode').asstring;
combobox8.ItemIndex:=fieldbyname('BatchCtrl').asinteger;
edit16.text:=floattostr(fieldbyname('Capacityhours').asfloat);
combobox9.ItemIndex:=fieldbyname('canSale').asinteger;
edit17.text:=fieldbyname('ItemCode2').asstring;
edit18.text:=fieldbyname('ItemshortName').asstring;
edit19.text:=floattostr(fieldbyname('CurrentonhandInv').asfloat);
edit20.text:=floattostr(fieldbyname('CurrentonCheckInv').asfloat);
end;
showmodal;
end;
finally
Frm_Mrp_Qry_UpRightMrp_D_Item.Free;
end; }
activecontrol:=dbgrideh;
end;
procedure TFrm_Mrp_Qry_NewTotalMrp.DBGridEhGetCellParams(
Sender: TObject; Column: TColumnEh; AFont: TFont; var Background: TColor;
State: TGridDrawState);
begin
inherited;
if AdoQry_Main.fieldbyname('PmCode').asinteger=1 then
begin
Background:=$eeddcc;
afont.Color:=clblack;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -