mrp_enter_newmrpinfo1.pas
来自「一个MRPII系统源代码版本」· PAS 代码 · 共 1,177 行 · 第 1/4 页
PAS
1,177 行
case strtoint(copy(AdoQry_Main.fieldbyname('ssflag').asstring,1,1)) of
2: begin
afont.Color:=clred;
end;
4: begin
afont.Color:=clred;
end;
end;
end;
procedure TFrm_Mrp_Enter_NewMrpInfo1.Button4Click(Sender: TObject);
var noandlineno:string;
BookmArk:string;
mono:string;
MoLineno:integer;
tmpQry,tmpQry1:TAdoQuery;
sqltext:string;
tmPmoqty:string;
begin
inherited;
{try
BookmArk:=AdoQry_Main.BookmArk;
mono:=AdoQry_Main.fieldbyname('Orderno').asstring;
MoLineno:=AdoQry_Main.fieldbyname('Orderlineno').asinteger;
noandlineno:=quotedstr('zzzzzzzzzzzzzzzzzzzzzzzz');
AdoQry_Main.First;
while not AdoQry_Main.Eof do
begin
if AdoQry_Main.fieldbyname('ssSysInfoflag').asinteger=4 then
noandlineno:=noandlineno+','+quotedstr(AdoQry_Main.fieldbyname('Orderno').asstring+inttostr(AdoQry_Main.fieldbyname('Orderlineno').asinteger));
AdoQry_Main.Next;
end;
if noandlineno=quotedstr('zzzzzzzzzzzzzzzzzzzzzzzz') then exit;
If Frm_Mrp_Enter_NewEditPassMo1=Nil Then
begin
Frm_Mrp_Enter_NewEditPassMo1:=TFrm_Mrp_Enter_NewEditPassMo1.Create(Self);
Frm_Mrp_Enter_NewEditPassMo1.SetSysParam(userCode,ModuleCode,menuid,DatetimeToStr(Now));
Frm_Mrp_Enter_NewEditPassMo1.Ordernoandlineno:=noandlineno;
Frm_Mrp_Enter_NewEditPassMo1.nowmono:=mono;
Frm_Mrp_Enter_NewEditPassMo1.nowMoLineno:=MoLineno;
Frm_Mrp_Enter_NewEditPassMo1.InitForm(dbconnect,False);
end
Else
Frm_Mrp_Enter_NewEditPassMo1.Show;
finally
AdoQry_Main.BookmArk:=BookmArk;
activecontrol:=dbgrideh;
end; }
try
if (AdoQry_Main.fieldbyname('ssSysInfoflag').asinteger<>4)
and (AdoQry_Main.fieldbyname('ssSysInfoflag').asinteger<>5)
and (AdoQry_Main.fieldbyname('ssSysInfoflag').asinteger<>6)
then exit;
BookmArk:=AdoQry_Main.BookmArk;
mono:=AdoQry_Main.fieldbyname('Orderno').asstring;
MoLineno:=AdoQry_Main.fieldbyname('Orderlineno').asinteger;
noandlineno:=quotedstr('zzzzzzzzzzzzzzzzzzzzzzzz');
tmpQry:=TAdoQuery.Create(self);
tmpQry.Connection:=dbconnect;
tmpQry1:=TAdoQuery.Create(self);
tmpQry1.Connection:=dbconnect;
sqltext:='Select MoLine.*,Mo.*,Dept.DeptName,Item.ItemName,Uom.UomName,'
+' Item.ItemCode+'''+' '+'''+Item.ItemName As ItemFlag,'
+' Item.Pla_EmployeeCode+'' ''+Employee.EmployeeName as plaflag,'
+' Item.Pla_EmployeeCode, '
+' Dept.DeptCode+'''+' '+'''+Dept.DeptName As DeptFlag '
+' From MoLine '
+' Join Mo On MoLine.MoNo=Mo.MoNo '
+' Join Item On MoLine.ItemCode=Item.ItemCode '
+' left join Employee on Item.Pla_EmployeeCode=Employee.EmployeeCode '
+' left Join Dept On Mo.DeptCode=Dept.DeptCode '
+' left Join Uom On Item.UomCode=Uom.UomCode '
+' where MoLine.MoNo='+quotedstr(mono)
+' and MoLine.MoLineno='+inttostr(MoLineno);
Executesql(tmpQry,sqltext,0) ;
if tmpQry.RecordCount=0 then exit;
sqltext:='select sum(isnull(MoRealqty,0)) as MoRealqty from mnItemList'
+' where mono='+quotedstr(mono)
+' and MoLineno='+inttostr(MoLineno);
Executesql(tmpQry1,sqltext,0);
{if getstatus(AdoQry_Head.fieldbyname('mono').asstring,AdoQry_Head.fieldbyname('MoLineno').asinteger)<>5 then
begin
DispInfo('该生产订单行不是准备状态,不可修改!',5);
abort;
end; }
Frm_Mrp_Enter_PassMo_D := TFrm_Mrp_Enter_PassMo_D.Create(self);
try
with Frm_Mrp_Enter_PassMo_D do
begin
AdoQry_tmp.Connection:=dbconnect;
edtmono.Text:=tmpQry.fieldbyname('mono').asstring;
edtMoLineno.Text:=tmpQry.fieldbyname('MoLineno').asstring;
Extedt_ItemCode.Text:=tmpQry.fieldbyname('ItemCode').asstring;
lbl_ItemName.Caption:=tmpQry.fieldbyname('ItemName').asstring;
Extedt_ItemName.Text:=tmpQry.fieldbyname('ItemName').asstring;
medt_Modate.Text:=tmpQry.fieldbyname('MoLinedate').asstring;
medt_MostArtworkdate.Text:=tmpQry.fieldbyname('mostArtworkdate').asstring;
edt_qty.Text:=tmpQry.fieldbyname('moqty').asstring;
tmPmoqty:=edt_qty.Text;
edtMoNoFinishqty.Text:=tmpQry.fieldbyname('MoNoFinishqty').asstring;
btn_ok.Enabled:=False;
if getstatus(tmpQry.fieldbyname('mono').asstring,tmpQry.fieldbyname('MoLineno').asinteger)=5 then
edt_qty.Enabled:=True;
if (getstatus(mono,MoLineno)=6 )
and (tmpQry1.fieldbyname('MoRealqty').asfloat<=0)
and (tmpQry.fieldbyname('MoRealinqty').asfloat<=0)
and (tmpQry.fieldbyname('MoInqty').asfloat<=0)then
edt_qty.Enabled:=True;
showmodal;
// medt_Modate.SetFocus;
if modalResult=mrok then
begin
try
dbconnect.beginTrans;
saveMoLineHistory(dbconnect,tmpQry.fieldbyname('mono').asstring,tmpQry.fieldbyname('MoLineno').asinteger,userCode,1);
updateMoLine(tmpQry.fieldbyname('mono').asstring,tmpQry.fieldbyname('MoLineno').asinteger,medt_Modate.Text,medt_MostArtworkdate.Text,strtofloat(edt_qty.text),strtofloat(edt_qty.text),edt_qty.Text<>tmPmoqty);
if ((tmpQry.fieldbyname('byProduct').asinteger<>1) and (tmpQry.fieldbyname('MoLinestatus').asinteger=5)) then
begin
Executesql(AdoQry_tmp,'delete from mnItemList where mono='+quotedstr(tmpQry.fieldbyname('mono').asstring)+' and MoLineno='+inttostr(tmpQry.fieldbyname('MoLineno').asinteger),1);
If Not (AutoBuildOrder(DbConnect,tmpQry.fieldbyname('mono').asstring,Trim(tmpQry.fieldbyname('ItemCode').AsString),
IntToStr(tmpQry.fieldbyname('MoLineNo').AsInteger),'Add','Mo',tmpQry.fieldbyname('MoQty').AsFloat)) Then //自动产生领料单
Abort;
end;
operationmopo(AdoQry_tmp,
tmpQry.fieldbyname('ItemCode').asstring,
'mo',
4,
tmpQry.fieldbyname('mono').asstring,
// Trim(edt_Mono.text),
tmpQry.fieldbyname('MoLineno').asinteger,
tmpQry.fieldbyname('MoLinestatus').asinteger,
0,
strtofloat(edt_qty.text),
strtofloat(edt_qty.text),
medt_Modate.Text,
medt_MostArtworkdate.Text,
getPmCode(dbconnect,tmpQry.fieldbyname('ItemCode').asstring),
tmpQry.fieldbyname('DeptCode').asstring);
dbconnect.CommitTrans;
except
dbconnect.RollBackTrans;
end;
end;
end;
finally
Frm_Mrp_Enter_PassMo_D.Free;
end;
finally
tmpQry.Free;
tmpQry1.Free;
AdoQry_Main.BookmArk:=BookmArk;
activecontrol:=dbgrideh;
end;
end;
procedure TFrm_Mrp_Enter_NewMrpInfo1.Act_CopyExecute(Sender: TObject);
var
I:Boolean;
BookmArk:String;
begin
inherited;
If AdoQry_Main.RecordCount=0 Then
begin
Abort;
end;
BookmArk:=AdoQry_Main.BookmArk;
I:=False;
AdoQry_Main.First;
While Not AdoQry_Main.Eof do
begin
If AdoQry_Main.fieldbyname('sScheck').AsInteger>0 Then
begin
I:=True;
Break;
end;
AdoQry_Main.Next;
end;
try
If I=True Then
begin
Frm_Mrp_Enter_NewAutoMo1:=TFrm_Mrp_Enter_NewAutoMo1.Create(Application);
Frm_Mrp_Enter_NewAutoMo1.SetSysParam(UserCode,ModuleCode,MenuId,DateTimeToStr(Now));
Frm_Mrp_Enter_NewAutoMo1.edt_DeptCode.Text:=AdoQry_Main.fieldbyname('DeptCode').asstring;
Frm_Mrp_Enter_NewAutoMo1.edt_DeptName.Text:=AdoQry_Main.fieldbyname('DeptName').asstring;
reMainqty:=AdoQry_Main.fieldbyname('reMainqty').asfloat;
Frm_Mrp_Enter_NewAutoMo1.flag:=0;
Frm_Mrp_Enter_NewAutoMo1.GetConnect(AdoQry_Main);
Frm_Mrp_Enter_NewAutoMo1.ShowModal;
end;
finally
AdoQry_Main.BookmArk:=BookmArk;
end;
end;
procedure TFrm_Mrp_Enter_NewMrpInfo1.Act_SumExecute(Sender: TObject);
var
I:Boolean;
BookMArk:String;
begin
inherited;
If AdoQry_Main.RecordCount=0 Then
begin
Abort;
end;
I:=False;
BookMArk:=AdoQry_Main.BookmArk ;
AdoQry_Main.First;
While Not AdoQry_Main.Eof do
begin
If AdoQry_Main.fieldbyname('ssSysInfoflag').Asinteger=1 Then
begin
I:=True;
BookMArk:=AdoQry_Main.BookmArk ;
Break;
end;
AdoQry_Main.Next;
end;
If I=True Then
begin
Frm_Mrp_Enter_NewMrpInfo3:=TFrm_Mrp_Enter_NewMrpInfo3.Create(Application);
Frm_Mrp_Enter_NewMrpInfo3_C:=TFrm_Mrp_Enter_NewMrpInfo3_C.Create(Application);
Frm_Mrp_Enter_NewMrpInfo3_C.InitForm(DbConnect,'Add',AdoQry_Main);
// Frm_Mrp_Enter_NewMrpInfo3_C.SetFormParam(PcNo,IntToStr(PmCode),'','','','');
Frm_Mrp_Enter_NewMrpInfo3_C.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
Frm_Mrp_Enter_NewMrpInfo3_C.ShowModal;
Frm_Mrp_Enter_NewMrpInfo3_C.Free;
Frm_Mrp_Enter_NewMrpInfo3.InitForm(Dbconnect,False);
// Frm_Mrp_Enter_NewMrpInfo3.SetFormParam(PcNo,IntToStr(PmCode),'','','','');
Frm_Mrp_Enter_NewMrpInfo3.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
Frm_Mrp_Enter_NewMrpInfo3.Show;
end
Else
begin
AdoQry_Main.BookmArk:=BookMArk;
DispInfo('没有建议下达的记录,不能执行汇总操作!',3);
Abort;
end;
AdoQry_Main.BookmArk:=BookMArk;
end;
procedure TFrm_Mrp_Enter_NewMrpInfo1.AdoQry_MainAfterPost(
DataSet: TDataSet);
begin
inherited;
Executesql(AdoQry_tmp,'update #tMpssInfoResult1 set sScheck='+inttostr(AdoQry_Main.fieldbyname('sScheck').asinteger)+' where ssid='+inttostr(AdoQry_Main.fieldbyname('ssid').asinteger),1);
end;
procedure TFrm_Mrp_Enter_NewMrpInfo1.Button5Click(Sender: TObject);
begin
inherited;
Frm_Bas_BomQry:=TFrm_Bas_BomQry.Create(self);
Frm_Bas_BomQry.SetSysParam(userCode,ModuleCode,menuid,datetimetostr(now));
Frm_Bas_BomQry.Ite_ItemCode := AdoQry_Main.fieldbyname('ItemCode').AsString;
Frm_Bas_BomQry.Lbl_ItemCode.Caption:=AdoQry_Main.fieldbyname('ItemCode').AsString;
Frm_Bas_BomQry.InitForm(dbconnect,True);
Frm_Bas_BomQry.Show;
end;
procedure TFrm_Mrp_Enter_NewMrpInfo1.FormKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
inherited;
if key = vk_Space then
begin
AdoQry_Main.Edit;
AdoQry_Main.fieldbyname('sScheck').AsInteger:=iifinteger(AdoQry_Main.fieldbyname('sScheck').AsInteger=0,1,0);
AdoQry_Main.Post;
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?