📄 mrp_enter_newpassmo.pas
字号:
DbConnect.CommitTrans;
AdoQry_Head.Next;
end;
Except
If DbConnect.InTransaction Then
DbConnect.RollBackTrans;
DispInfo('更改数据时发生错误,数据未更改,请重试!',1);
AdoQry_Head.BookMArk:=BookmArk;
Abort;
end;
end;
if ((AdoQry_Head.RecordCount>0) and ( AdoQry_Head.Eof)) then
AdoQry_Head.BookMArk:=BookmArk;
Flag:=Not Flag;
end;
procedure TFrm_Mrp_Enter_NewPassMo.DBGridEhDblClick(Sender: TObject);
begin
inherited;
If AdoQry_Head.RecordCount=0 Then
Abort;
If AdoQry_Head.fieldbyname('MoLineStatus').AsInteger=5 then
Act_CheckExecute(Act_Check)
Else
Act_CancelCheckExecute(Act_CancelCheck);
end;
procedure TFrm_Mrp_Enter_NewPassMo.DBGridEhTitleClick(Column: TColumnEh);
var
BookMArk:String;
begin
inherited;
If Trim(Column.Title.Caption)<>'标记' Then
Abort;
If AdoQry_Head.RecordCount=0 Then
Abort;
BookMArk:=AdoQry_Head.BookmArk;
If Not Flag Then
begin
AdoQry_Head.First;
While Not AdoQry_Head.Eof Do
begin
AdoQry_Head.Edit;
AdoQry_Head.fieldbyname('MoLineCheck').AsInteger:=1;
AdoQry_Head.Post;
AdoQry_Head.Next;
end;
end
Else
begin
AdoQry_Head.First;
While Not AdoQry_Head.Eof Do
begin
AdoQry_Head.Edit;
AdoQry_Head.fieldbyname('MoLineCheck').AsInteger:=0;
AdoQry_Head.Post;
AdoQry_Head.Next;
end;
end;
AdoQry_Head.BookmArk:=BookMArk;
Flag:=Not Flag;
end;
procedure TFrm_Mrp_Enter_NewPassMo.AdoQry_HeadBeforeInsert(DataSet: TDataSet);
begin
inherited;
Abort;
end;
procedure TFrm_Mrp_Enter_NewPassMo.Act_LookExecute(Sender: TObject);
begin
inherited;
{ If AdoQry_Head.RecordCount>0 Then
MoInitForm(DbConnect,AdoQry_Head.fieldbyname('ItemCode').AsString,
DateTimeToStr(AdoQry_Head.fieldbyname('MoLineDate').AsDateTime));}
If (AdoQry_Head.RecordCount>0) Then
if Frm_Mrp_Enter_NewMoSsParent=nil then
begin
Frm_Mrp_Enter_NewMoSsParent:=TFrm_Mrp_Enter_NewMoSsParent.Create(Self);
Frm_Mrp_Enter_NewMoSsParent.SetSysParam(userCode,ModuleCode,menuid,formatdatetime('yyyy.mm.dd',now));
Frm_Mrp_Enter_NewMoSsParent.ItemCode:=AdoQry_Head.fieldbyname('ItemCode').asstring;
tmplowPmCode:=getPmCode(dbconnect,AdoQry_Head.fieldbyname('ItemCode').asstring);
Frm_Mrp_Enter_NewMoSsParent.peggingType:=2;
Frm_Mrp_Enter_NewMoSsParent.Qclt:=getQclt(AdoQry_Head.fieldbyname('ItemCode').asstring);
Frm_Mrp_Enter_NewMoSsParent.duedate:=datetimetostr(AdoQry_Head.fieldbyname('MoLinedate').asdatetime);
Frm_Mrp_Enter_NewMoSsParent.strpath:=AdoQry_Head.fieldbyname('ItemCode').asstring+',';
Frm_Mrp_Enter_NewMoSsParent.InitForm(dbconnect,True);
end
else Frm_Mrp_Enter_NewMoSsParent.Show;
end;
procedure TFrm_Mrp_Enter_NewPassMo.Act_DeleteExecute(Sender: TObject);
var SqlText,BookMArk:String;
I:Integer;
begin
inherited;
If AdoQry_Head.RecordCount=0 Then
Abort;
BookMArk:=AdoQry_Head.BookmArk;
If DispInfo('确认删除选定生产订单吗?',2)='y' Then
begin
DbConnect.beginTrans;
AdoQry_Head.First;
while not AdoQry_Head.Eof do
begin
if (AdoQry_Head.fieldbyname('MoLineCheck').AsInteger=1) And (AdoQry_Head.fieldbyname('MoLineStatus').AsInteger<>5) then
begin
if dbconnect.InTransaction then
dbconnect.RollBackTrans;
DispInfo(AdoQry_Head.fieldbyname('mono').asstring+'--'+inttostr(AdoQry_Head.fieldbyname('MoLineno').asinteger)+'行状态不是准备状态,不可删除!',3);
abort;
end;
if (AdoQry_Head.fieldbyname('MoLineCheck').AsInteger=1) And (AdoQry_Head.fieldbyname('byProduct').AsInteger=1) then
begin
if dbconnect.InTransaction then
dbconnect.RollBackTrans;
DispInfo(AdoQry_Head.fieldbyname('mono').asstring+'--'+inttostr(AdoQry_Head.fieldbyname('MoLineno').asinteger)+'行是副产品,不可删除!',3);
abort;
end;
AdoQry_Head.Next;
end;
I:=1;
Try
AdoQry_Head.First;
While Not AdoQry_Head.Eof Do
If (AdoQry_Head.fieldbyname('MoLineCheck').AsInteger=1) And (AdoQry_Head.fieldbyname('MoLineStatus').AsInteger=5) Then
begin
sqltext:='select * from MoLine where MoLinestatus=5 '
+'and MoNo='''+AdoQry_Head.fieldbyname('MoNo').AsString+''''
+' And MoLineNo='''+IntToStr(AdoQry_Head.fieldbyname('MoLineNo').AsInteger)+'''';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_tmp.open;
if AdoQry_tmp.RecordCount=0 then
begin
AdoQry_Head.Next;
continue;
end;
sqltext:='delete from mnItemList'
+' where mono='+quotedstr(AdoQry_Head.fieldbyname('MoNo').asstring)
+' and MoLineNo='+inttostr(AdoQry_Head.fieldbyname('MoLineNo').asinteger);
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_tmp.ExecSQL;
saveMoLineHistory(dbconnect,AdoQry_Head.fieldbyname('mono').asstring,AdoQry_Head.fieldbyname('MoLineno').asinteger,userCode,2);
SqlText:=' delete From MoLine '
+' Where MoNo='''+AdoQry_Head.fieldbyname('MoNo').AsString+''''
+' And MoLineNo='''+IntToStr(AdoQry_Head.fieldbyname('MoLineNo').AsInteger)+''''
+' And MoLineStatus=5 ';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_tmp.ExecSQL;
operationmopo(AdoQry_tmp,
AdoQry_Head.fieldbyname('ItemCode').asstring,
'mo',
3,
AdoQry_Head.fieldbyname('mono').asstring,
// Trim(edt_Mono.text),
AdoQry_Head.fieldbyname('MoLineno').asinteger,
5,
0,
AdoQry_Head.fieldbyname('moqty').asfloat,
AdoQry_Head.fieldbyname('MoNoFinishqty').asfloat,
AdoQry_Head.fieldbyname('mostArtworkdate').asstring,
AdoQry_Head.fieldbyname('MoLinedate').asstring,
getPmCode(dbconnect,AdoQry_Head.fieldbyname('ItemCode').asstring),
AdoQry_Head.fieldbyname('DeptCode').asstring);
SqlText:=' select * From MoLine '
+' Where MoNo='''+AdoQry_Head.fieldbyname('MoNo').AsString+''''
+' And ParentMoLineNo='''+IntToStr(AdoQry_Head.fieldbyname('MoLineNo').AsInteger)+''''
+' and byProduct=1';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_tmp.open;
AdoQry_tmp.First;
while not AdoQry_tmp.Eof do
begin
saveMoLineHistory(dbconnect,AdoQry_tmp.fieldbyname('mono').asstring,AdoQry_tmp.fieldbyname('MoLineno').asinteger,userCode,2);
AdoQry_tmp.next;
end;
SqlText:=' delete From MoLine '
+' Where MoNo='''+AdoQry_Head.fieldbyname('MoNo').AsString+''''
+' And ParentMoLineNo='''+IntToStr(AdoQry_Head.fieldbyname('MoLineNo').AsInteger)+''''
+' and byProduct=1';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_tmp.ExecSQL;
SqlText:=' select * from Mo '
+' Where MoNo='''+AdoQry_Head.fieldbyname('MoNo').AsString+''''
+' And not exists(select * from MoLine where MoNo='''+AdoQry_Head.fieldbyname('MoNo').AsString+''''+')';
AdoQry_tmp.Close;
AdoQry_tmp.SQL.Text:=SqlText;
AdoQry_tmp.open;
if AdoQry_tmp.RecordCount>0 then
savemohistory(dbconnect,AdoQry_tmp.fieldbyname('mono').asstring,userCode,2);
SqlText:=' delete from Mo '
+' Where MoNo='''+AdoQry_Head.fieldbyname('MoNo').AsString+''''
+' And not exists(select * from MoLine where MoNo='''+AdoQry_Head.fieldbyname('MoNo').AsString+''''+')';
AdoQry_tmp.Close;
AdoQry_tmp.SQL.Text:=SqlText;
AdoQry_tmp.ExecSQL;
AdoQry_Head.delete;
I:=I+1;
end
Else
begin
I:=I+1;
AdoQry_Head.Next;
end;
DbConnect.CommitTrans;
Except
If DbConnect.InTransaction Then
DbConnect.RollBackTrans;
DispInfo('删除订单时发生错误,订单未删除,请重试!',3);
AdoQry_Head.BookMArk:=BookmArk;
Abort;
end;
end;
AdoQry_Head.ReQuery;
try
// if ((AdoQry_Head.RecordCount>0) and (not AdoQry_Head.Eof))then
AdoQry_Head.BookMArk:=BookmArk;
except
end;
end;
{function TFrm_Mrp_Enter_NewPassMo.getPmCode(ItemCode: string): integer;
begin
try
Executesql(AdoQry_tmp,'select PmCode from Item where ItemCode='+quotedstr(ItemCode),0);
Result:=AdoQry_tmp.fieldbyname('PmCode').asinteger;
except
Result:=255;
end;
end; }
function TFrm_Mrp_Enter_NewPassMo.getQclt(ItemCode: string): string;
begin
try
Executesql(AdoQry_tmp,'select Qclt from Item where ItemCode='+quotedstr(ItemCode),0);
Result:=inttostr(AdoQry_tmp.fieldbyname('Qclt').asinteger);
except
Result:='9999999';
end;
end;
procedure TFrm_Mrp_Enter_NewPassMo.AdoQry_HeadBeforeEdit(DataSet: TDataSet);
begin
inherited;
if AdoQry_Head.fieldbyname('byProduct').asinteger=1 then
begin
DispInfo('这行是副产品,不能执行选定操作!',3);
abort;
end;
end;
procedure TFrm_Mrp_Enter_NewPassMo.PassbyProduct;
var tmpbeforeedit:Tdatasetnotifyevent;
begin
Tmpbeforeedit:=AdoQry_Head.BeforeEdit;
AdoQry_Head.BeforeEdit:=nil;
AdoQry_Head.Edit;
AdoQry_Head.fieldbyname('MoLineStatus').AsInteger:=6;
AdoQry_Head.fieldbyname('MoLineCheck').AsInteger:=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -