📄 mrp_qry_newuprightmrp.pas
字号:
unit Mrp_Qry_NewUpRightMrp;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Entry_Head, Menus, Db, ActnList, AdODB, Grids, DBGridEh, StdCtrls,
ExtCtrls, ComCtrls, ToolWin, jpeg, ExtPrintReport;
Type
TFrm_Mrp_Qry_NewUpRightMrp = Class(TFrm_Base_Entry_Head)
AdoQry_HeadItemCode: TStringField;
AdoQry_HeadItemName: TStringField;
AdoQry_HeadUomName: TStringField;
AdoQry_Headldtime: TFloatField;
AdoQry_HeadCurrentonhandInv: TFloatField;
AdoQry_HeadItemflag: TStringField;
AdoQry_Headoncheckqty: TFloatField;
AdoQry_Headminqty: TFloatField;
AdoQry_HeadPmCode: TIntegerField;
AdoQry_HeadBatchstrat: TIntegerField;
Label8: TLabel;
lbl_Mrprundate: TLabel;
AdoQry_HeadPreparelt: TIntegerField;
AdoQry_Headrunlt: TIntegerField;
AdoQry_HeadQclt: TIntegerField;
AdoQry_HeadPmBatch: TIntegerField;
AdoQry_HeadAssignedqty: TFloatField;
procedure Act_LookExecute(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
private
function getValue(Code:string;tableName:string):variant;
{ Private declarations }
public
procedure InitForm(AdOConnection:TAdOConnection;ShowExtendColumn:Boolean);Override;
{ Public declarations }
end;
var
Frm_Mrp_Qry_NewUpRightMrp: TFrm_Mrp_Qry_NewUpRightMrp;
ItemCode,ItemName,Uom,ldtime,PmBatch,CurrentInv,Assignedqty,oncheckqty:string;
implementation
uses Mrp_Qry_NewUpRightMrp_D,Sys_Global;
{$R *.DFM}
{ TFrm_Mrp_Qry_InformalUpRightMrp }
procedure TFrm_Mrp_Qry_NewUpRightMrp.InitForm(
AdOConnection: TAdOConnection; ShowExtendColumn: Boolean);
var sqltext0,sqltext1:string;
begin
createpanel(1,dbgrideh);
inherited;
lbl_Mrprundate.Caption:=getValue('RunMrpdate','MrpParam');
// freefields:='PmBatch,CurrentonhandInv,oncheckqty,';
sqltext0:='select ItemCode,PmCode, min(releasedate) as releasedate '
+' into #tmPm '
+' from MrpResult '
+' where ordinal=4 '
+' and PmCode<>9 '
+' group by ItemCode,PmCode '
+' select t1.ItemCode,t1.PmCode,t1.onhand,t1.Assignedqty,t1.oncheck,t1.releasedate,t1.ordinal '
+' into #tmponhand '
+' from MrpResult t1 '
+' where '
+' t1.ordinal=1 ';
// +' and t1.PmCode=t2.PmCode';
sqltext1:=' declAre @VisualManuObject Integer '
+' Select @VisualManuObject=MrpParamValueN '
+' From MrpParam '
+' Where MrpParamCode=''VisualManuObject'''
+' Select distinct Item.ItemCode,Item.ItemName,Item.minqty,Item.PmCode,Item.Batchstrat,'+
' Itemflag=Item.ItemCode+'' ''+Item.ItemName,'+
' UomName=Uom.UomName,'+
' ldtime=case MrpResult.PmCode '+
' when 0 then Item.mnldtime '+
' else Item.purchldtime '+
' end,'+
' Item.Preparelt,'+
' Item.runlt,'+
' Item.Qclt,'+
' Item.PmBatch, '+
' case when @VisualManuObject=1 and IsNull(Mps.MpsStatus,100)=3 then 0.0 '
+' else Item.CurrentonhandInv '
+' end as CurrentonhandInv, '+
' Assignedqty=isnull(#tmponhand.Assignedqty,0), '+
' case when @VisualManuObject=1 and IsNull(Mps.MpsStatus,100)=3 then 0.0 '
+' else Item.CurrentonCheckInv '
+' end as oncheckqty '+
// ' Item.CurrentonhandInv '+
' into #tmptable '+
' From Item '+
' Join MrpResult On Item.ItemCode=MrpResult.ItemCode and MrpResult.ordinal=1'+
' Join #tmponhand On Item.ItemCode=#tmponhand.ItemCode and MrpResult.PmCode=#tmponhand.PmCode'+
' left join Mps on Item.ItemCode=Mps.ItemCode '+
' left outer join Uom on Item.UomCode=Uom.UomCode ';
selectfromsql:='select * from #tmptable';
try
with AdoQry_Head do
begin
Close;
sql.clear;
sql.Add(sqltext0);
Prepared;
try
execsql;
except
end;
Close;
sql.clear;
sql.Add(sqltext1);
Prepared;
try
execsql;
except
end;
Close;
sql.clear;
sql.Add('select * from #tmptable Order by ItemCode');
open;
end;
finally
if ShowAnimate<>nil then ShowAnimate.Free;
if ShowPanel<>nil then ShowPanel.Free;
end;
end;
procedure TFrm_Mrp_Qry_NewUpRightMrp.Act_LookExecute(Sender: TObject);
begin
inherited;
{if AdoQry_Head.RecordCount=0 then exit;
if Frm_Mrp_Qry_NewUpRightMrp_D=nil then
begin
Frm_Mrp_Qry_NewUpRightMrp_D:=TFrm_Mrp_Qry_NewUpRightMrp_D.Create(Self);
Frm_Mrp_Qry_NewUpRightMrp_D.SetSysParam(userCode,ModuleCode,menuid,formatdatetime('yyyy.mm.dd',now));
Frm_Mrp_Qry_NewUpRightMrp_D.InitForm(AdoQry_Head.Connection,True);
end
else Frm_Mrp_Qry_NewUpRightMrp_D.Show; }
if AdoQry_Head.RecordCount=0 then exit;
if Frm_Mrp_Qry_NewUpRightMrp_D=nil then
begin
Frm_Mrp_Qry_NewUpRightMrp_D:=TFrm_Mrp_Qry_NewUpRightMrp_D.Create(Self);
Frm_Mrp_Qry_NewUpRightMrp_D.SetSysParam(userCode,ModuleCode,menuid,formatdatetime('yyyy.mm.dd',now));
Frm_Mrp_Qry_NewUpRightMrp_D.ItemCode:=AdoQry_Head.fieldbyname('ItemCode').asstring;
Frm_Mrp_Qry_NewUpRightMrp_D.ItemName:=AdoQry_Head.fieldbyname('ItemName').asstring;
Frm_Mrp_Qry_NewUpRightMrp_D.Uom:=AdoQry_Head.fieldbyname('UomName').asstring;
Frm_Mrp_Qry_NewUpRightMrp_D.ldtime:=floattostr(AdoQry_Head.fieldbyname('ldtime').asfloat);
Frm_Mrp_Qry_NewUpRightMrp_D.Preparelt:=floattostr(AdoQry_Head.fieldbyname('Preparelt').asfloat);
Frm_Mrp_Qry_NewUpRightMrp_D.runlt:=floattostr(AdoQry_Head.fieldbyname('runlt').asfloat);
Frm_Mrp_Qry_NewUpRightMrp_D.Qclt:=floattostr(AdoQry_Head.fieldbyname('Qclt').asfloat);
Frm_Mrp_Qry_NewUpRightMrp_D.PmBatch:=floattostr(AdoQry_Head.fieldbyname('PmBatch').asfloat);
Frm_Mrp_Qry_NewUpRightMrp_D.ItemPmCode:=AdoQry_Head.fieldbyname('PmCode').asinteger;
Frm_Mrp_Qry_NewUpRightMrp_D.CurrentInv:=floattostr(AdoQry_Head.fieldbyname('CurrentonhandInv').asfloat);
Frm_Mrp_Qry_NewUpRightMrp_D.RunMrp:=1;
Frm_Mrp_Qry_NewUpRightMrp_D.Assignedqty:=floattostr(AdoQry_Head.fieldbyname('Assignedqty').asfloat);
Frm_Mrp_Qry_NewUpRightMrp_D.oncheckqty:=floattostr(AdoQry_Head.fieldbyname('oncheckqty').asfloat);
// Frm_Mrp_Qry_UpRightMrp_D.success:=TemporArilyRunMrp(dbconnect,'select ItemCode from MrpResult where ItemCode='+quotedstr(AdoQry_Head.fieldbyname('ItemName').asstring)+' and ordinal=1 ',1);
// showmessage(inttostr(Frm_Mrp_Qry_UpRightMrp_D.success));
if AdoQry_Head.fieldbyname('PmCode').asinteger=0 then
Frm_Mrp_Qry_NewUpRightMrp_D.PmCode:='0 制造';
if AdoQry_Head.fieldbyname('PmCode').asinteger=1 then
Frm_Mrp_Qry_NewUpRightMrp_D.PmCode:='1 采购';
if AdoQry_Head.fieldbyname('PmCode').asinteger=2 then
Frm_Mrp_Qry_NewUpRightMrp_D.PmCode:='2 委外加工';
if AdoQry_Head.fieldbyname('PmCode').asinteger=3 then
Frm_Mrp_Qry_NewUpRightMrp_D.PmCode:='3 既制造又委外';
Frm_Mrp_Qry_NewUpRightMrp_D.minqty:=floattostr(AdoQry_Head.fieldbyname('minqty').asfloat);
if AdoQry_Head.fieldbyname('Batchstrat').asinteger=0 then
Frm_Mrp_Qry_NewUpRightMrp_D.Batchstrat:='直接批量法';
if AdoQry_Head.fieldbyname('Batchstrat').asinteger=1 then
Frm_Mrp_Qry_NewUpRightMrp_D.Batchstrat:='固定批量法';
Frm_Mrp_Qry_NewUpRightMrp_D.InitForm(AdoQry_Head.Connection,True);
end
else Frm_Mrp_Qry_NewUpRightMrp_D.Show;
end;
procedure TFrm_Mrp_Qry_NewUpRightMrp.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
with AdoQry_tmp do
begin
Close;
sql.clear;
sql.Add('drop table #tmptable,#tmPm,#tmponhand');
try
execsql;
except
end;
end;
inherited;
end;
procedure TFrm_Mrp_Qry_NewUpRightMrp.FormDestroy(Sender: TObject);
begin
inherited;
Frm_Mrp_Qry_NewUpRightMrp:=nil;
end;
function TFrm_Mrp_Qry_NewUpRightMrp.getValue(Code,
tableName: string): variant;
var tmpAdoQry:TAdoQuery;
begin
tmpAdoQry:=TAdoQuery.Create(Application);
tmpAdoQry.EnableBCD:=False;
try
with tmpAdoQry do
begin
Connection:=dbconnect;
Close;
sql.clear;
sql.Text:='select MrpParamValuec from '+tableName+' where MrpParamCode='+quotedstr(Code);
open;
try
Result:=fieldbyname('MrpParamValuec').asstring;
except
Result:='';
end;
end;
finally
tmpAdoQry.Free;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -