📄 pm_enter_passpo.pas
字号:
Flag:=Not Flag;
end;
procedure TFrm_Pm_Enter_PassPo.Act_CancelCheckExecute(Sender: TObject);
begin
inherited;
If (AdoQry_Head.Eof) And (AdoQry_Head.Bof) Then
Exit;
If (DispInfo('确认取消批准选定采购记录吗?',2)='y') Then
CloseRecord;
end;
procedure TFrm_Pm_Enter_PassPo.Act_CheckExecute(Sender: TObject);
begin
inherited;
If (AdoQry_Head.Eof) And (AdoQry_Head.Bof) Then
Exit;
If (DispInfo('确认真的要批准选定采购订单吗',2)='y') Then
OpenRecord;
end;
procedure TFrm_Pm_Enter_PassPo.DBGridEhDblClick(Sender: TObject);
begin
inherited;
IF AdoQry_Head.fieldbyname('PoLineStatus').AsInteger=6 Then
begin
Frm_Pm_Enter_PassPo.Act_CancelCheckExecute(Act_CancelCheck);
Abort;
end;
IF AdoQry_Head.fieldbyname('PoLineStatus').AsInteger=5 Then
begin
Frm_Pm_Enter_PassPo.Act_CheckExecute(Act_Check);
Abort;
end;
end;
procedure TFrm_Pm_Enter_PassPo.FormDestroy(Sender: TObject);
begin
inherited;
Frm_Pm_Enter_PassPo:=Nil;
end;
procedure TFrm_Pm_Enter_PassPo.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('PoLineCheck').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('PoLineCheck').AsInteger:=0;
AdoQry_Head.Post;
AdoQry_Head.Next;
end;
end;
AdoQry_Head.BookmArk:=BookMArk;
Flag:=Not Flag;
end;
procedure TFrm_Pm_Enter_PassPo.AdoQry_HeadBeforeInsert(DataSet: TDataSet);
begin
inherited;
Abort;
end;
procedure TFrm_Pm_Enter_PassPo.Act_LookExecute(Sender: TObject);
begin
inherited;
{ If (AdoQry_Head.RecordCount>0) Then
if Frm_Pm_Enter_PoSsParent=nil then
begin
Frm_Pm_Enter_PoSsParent:=TFrm_Pm_Enter_PoSsParent.Create(Self);
Frm_Pm_Enter_PoSsParent.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
Frm_Pm_Enter_PoSsParent.ItemCode:=AdoQry_Head.fieldbyname('ItemCode').asstring;
tmplowPmCode:=AdoQry_Head.fieldbyname('PmCode').asinteger;
Frm_Pm_Enter_PoSsParent.Qclt:=getQclt(AdoQry_Head.fieldbyname('ItemCode').asstring);
Frm_Pm_Enter_PoSsParent.duedate:=datetimetostr(AdoQry_Head.fieldbyname('PoLineDate').asdatetime);
Frm_Pm_Enter_PoSsParent.strpath:=AdoQry_Head.fieldbyname('ItemCode').asstring+',';
Frm_Pm_Enter_PoSsParent.InitForm(dbconnect,True);
end
else Frm_Pm_Enter_PoSsParent.Show;}
try
If (AdoQry_Head.RecordCount>0) Then
if Frm_Mrp_Enter_MoSsParent=nil then
begin
Frm_Mrp_Enter_MoSsParent:=TFrm_Mrp_Enter_MoSsParent.Create(Self);
Frm_Mrp_Enter_MoSsParent.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
Frm_Mrp_Enter_MoSsParent.ItemCode:=AdoQry_Head.fieldbyname('ItemCode').asstring;
tmplowPmCode:=AdoQry_Head.fieldbyname('PmCode').asinteger;
Frm_Mrp_Enter_MoSsParent.Qclt:=getQclt(AdoQry_Head.fieldbyname('ItemCode').asstring);
Frm_Mrp_Enter_MoSsParent.duedate:=datetimetostr(AdoQry_Head.fieldbyname('polinedate').asdatetime);
Frm_Mrp_Enter_MoSsParent.strpath:=AdoQry_Head.fieldbyname('ItemCode').asstring+',';
Frm_Mrp_Enter_MoSsParent.InitForm(dbconnect,True);
end
else Frm_Mrp_Enter_MoSsParent.Show;
finally
activecontrol:=dbgrideh;
end;
end;
procedure TFrm_Pm_Enter_PassPo.FormCreate(Sender: TObject);
begin
inherited;
ToolButton7.Action := Act_Delete;
ToolButton7.Visible := True;
ToolButton7.Enabled := True;
act_Modify.Enabled:=True;
act_Modify.Visible:=True;
tlbtn_Modify.Action:=act_Modify;
tlbtn_Modify.Enabled:=True;
tlbtn_Modify.Visible:=True;
end;
procedure TFrm_Pm_Enter_PassPo.DeleteRecord;
var
SqlText,SqlText1,SqlText2,sqlTxt3,BookMArk: String;
falg:integer;
begin
faLg:=0;
if AdoQry_Head.RecordCount>AdoQry_Head.RecNo then
begin
BookMArk:=AdoQry_Head.BookmArk;
falg:=1;
end;
AdoQry_Head.First;
while not AdoQry_Head.Eof Do
begin
if (AdoQry_Head.fieldbyname('PoLineCheck').AsInteger=1) and (AdoQry_Head.fieldbyname('PoLineStatus').AsInteger<>5) then
begin
{ sqlTxt3:=' Select * from poline where pono='''+AdoQry_Head.fieldbyname('PONO').AsString+''''
+' and polineno ='''+AdoQry_Head.fieldbyname('POlineno').AsString+'''' ;
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text :=sqlTxt3 ;
AdoQry_Tmp.Open;
if AdoQry_Tmp.fieldbyname('PoLineStatus').asinteger<> 5 then
begin
DispInfo('采购订单号为:'+AdoQry_Head.fieldbyname('PONO').AsString+' 的采购订单已被其他用户修改!',3);
abort;
end; }
DispInfo('不能删除采购订单号为:'+AdoQry_Head.fieldbyname('PONO').AsString+' 已下达的采购订单!',3);
abort;
end;
AdoQry_Head.next;
end;
AdoQry_Head.First;
While Not AdoQry_Head.Eof Do
begin
If (AdoQry_Head.fieldbyname('PoLineCheck').AsInteger=1) then //and (AdoQry_Head.fieldbyname('PoLineStatus').AsInteger=5)
begin
sqlTxt3:=' Select * from poline where pono='''+AdoQry_Head.fieldbyname('PONO').AsString+''''
+' and polineno ='''+AdoQry_Head.fieldbyname('POlineno').AsString+''''
+' and PoLineStatus=5 ' ;
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text :=sqlTxt3 ;
AdoQry_Tmp.Open;
if AdoQry_Tmp.fieldbyname('PoLineStatus').asinteger= 5 then
begin
try
DbConnect.beginTrans ;
SqlText2:=' Delete OpItemList Where PoNo='''+AdoQry_Head.fieldbyname('PoNo').AsSTring+''''
+' And PoLineNo='''+AdoQry_Head.fieldbyname('PoLineNo').AsSTring+'''';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text := SqlText2;
AdoQry_Tmp.ExecSQL;
SavePoLineHistory('Delete');
SqlText:=' Delete PoLine Where PoNo='''+AdoQry_Head.fieldbyname('PoNo').AsSTring+''''
+' And PoLineNo='''+AdoQry_Head.fieldbyname('PoLineNo').AsSTring+''''
+' And PoLineStatus = 5';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text := SqlText;
AdoQry_Tmp.ExecSQL;
SqlText1:=' Delete Po Where PoNo='''+AdoQry_Head.fieldbyname('PoNo').AsSTring+''''
+' and Not Exists(Select PoNo From PoLine where PoNo='''+AdoQry_Head.fieldbyname('PoNo').AsSTring+''')';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text := SqlText1;
AdoQry_Tmp.ExecSQL;
DbConnect.CommitTrans;
except
DbConnect.RollBackTrans;
end;
end;
end;
AdoQry_Head.Next;
end ;
getdata;
if falg=1 then
AdoQry_Head.BookmArk:=BookMArk;
end;
procedure TFrm_Pm_Enter_PassPo.Act_DeleteExecute(Sender: TObject);
begin
inherited;
If (AdoQry_Head.Eof) And (AdoQry_Head.Bof) Then
Exit;
If (DispInfo('确认真的要删除选定采购订单吗',2)='y') Then
DeleteRecord;
end;
function TFrm_Pm_Enter_PassPo.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;
function TFrm_Pm_Enter_PassPo.beendilivered(pono:string;polineno:integer):boolean;
var AdoQry:TAdoQuery;
sqltext:string;
begin
Result:=False;
AdoQry:=TAdoQuery.Create(self);
AdoQry.Connection:=dbconnect;
sqltext:='select * from opItemList '
+' where porealqty>0 '
+' and pono='+quotedstr(pono)
+' and polineno='+inttostr(polineno);
try
Executesql(AdoQry,sqltext,0);
if AdoQry.RecordCount>0 then
Result:=True;
finally
AdoQry.Free;
end;
end;
procedure TFrm_Pm_Enter_PassPo.Act_ModifyExecute(Sender: TObject);
begin
inherited;
if AdoQry_Head.RecordCount=0 then exit;
Frm_Pm_Enter_PassPo_D := TFrm_Pm_Enter_PassPo_D.Create(self);
try
with Frm_Pm_Enter_PassPo_D do
begin
AdoQry_tmp.Connection:=dbconnect;
Edt_Pono.Text:=AdoQry_Head.fieldbyname('PoNo').asstring;
Edt_LineNo.Text:=AdoQry_Head.fieldbyname('Polineno').asstring;
Edt_ItemCode.Text:=AdoQry_Head.fieldbyname('ItemCode').asstring;
Lbl_ItemName.Caption:=AdoQry_Head.fieldbyname('ItemName').asstring;
MEdt_PoStArtWorkDate.Text:=AdoQry_Head.fieldbyname('PoStArtWorkDate').AsString;
Medt_PoDate.Text:=AdoQry_Head.fieldbyname('POLineDATE').AsString;
Edt_PoQty.Text:=AdoQry_Head.fieldbyname('PoQty').asstring;
Edt_PoNoFinishQty.Text:=AdoQry_Head.fieldbyname('PONoFinishQty').asstring;
btn_ok.Enabled:=False;
showmodal;
// medt_Modate.SetFocus;
if modalResult=mrok then
begin
SavePoLineHistory1('Edit');
AdoQry_Head.Edit;
AdoQry_Head.fieldbyname('POLineDATE').asstring:=Medt_PoDate.Text;
AdoQry_Head.fieldbyname('PoStArtWorkDate').asstring:=MEdt_PoStArtWorkDate.Text;
AdoQry_Head.Post;
updatepoline(AdoQry_Head.fieldbyname('PoNo').asstring,AdoQry_Head.fieldbyname('PoLineNo').asinteger);
end;
end;
finally
Frm_Pm_Enter_PassPo_D.Free;
end;
end;
procedure TFrm_Pm_Enter_PassPo.UpDatePoline(PoNo: string;
PoLineNo: integer);
var AdoQry:TAdoQuery;
sqltext:string;
begin
AdoQry:=TAdoQuery.Create(self);
AdoQry.Connection:=dbconnect;
sqltext:='update Poline '
+' set POLineDATE= '+quotedstr(AdoQry_Head.fieldbyname('POLineDATE').asstring)+','
+' PoStArtWorkDate='+quotedstr(AdoQry_Head.fieldbyname('PoStArtWorkDate').asstring)
+' where Pono='+quotedstr(Pono)
+' and Polineno='+inttostr(Polineno);
try
Executesql(AdoQry,sqltext,1);
finally
AdoQry.Free;
end;
end;
function TFrm_Pm_Enter_PassPo.SavePoLineHistory1(Status1: String): Boolean;
var
SqlText:String;
begin
Try
SqlText:='Insert PoLineHistory '
+' (PoNo,PoLineNo,ItemCode,POLineDate,PoStArtWorkDate,POQty,POTaxPrice,POTaxAmount,PONoTaxPrice,'
+' PONoTaxAmount,PONoFinishQty,POReferencedPrice,POLineStatus,PolChgEmployeeCode,PolChgTime,PolChgType)'
+'Values('
+''''+AdoQry_Head.fieldbyname('PoNo').AsString+''''+','
+''''+IntToStr(AdoQry_Head.fieldbyname('PoLineNo').AsInteger)+''''+','
+''''+AdoQry_Head.fieldbyname('ItemCode').AsString+''''+','
+''''+DatetimeToStr(AdoQry_Head.fieldbyname('PoLineDate').AsDateTime)+''''+','
+''''+DatetimeToStr(AdoQry_Head.fieldbyname('PoStArtWorkDate').AsDateTime)+''''+','
+''''+FloatToStr(AdoQry_Head.fieldbyname('PoQty').AsFloat)+''''+','
+''''+FloatToStr(AdoQry_Head.fieldbyname('POTaxPrice').AsFloat)+''''+','
+''''+FloatToStr(AdoQry_Head.fieldbyname('POTaxAmount').AsFloat)+''''+','
+''''+FloatToStr(AdoQry_Head.fieldbyname('PONoTaxPrice').AsFloat)+''''+','
+''''+FloatToStr(AdoQry_Head.fieldbyname('PONoTaxAmount').AsFloat)+''''+','
+''''+FloatToStr(AdoQry_Head.fieldbyname('PONoFinishQty').AsFloat)+''''+','
+''''+IntToStr(AdoQry_Head.fieldbyname('POReferencedPrice').AsInteger)+''''+','
+''''+IntToStr(AdoQry_Head.fieldbyname('POLineStatus').AsInteger)+''''+','
+''''+UserCode+''''+','
+'GetDate(),' ;
if Status1='Edit' then
SqlText:=SqlText+''''+'更改日期'+''''+')'
else
if Status1='Delete' then
SqlText:=SqlText+''''+'删除记录'+''''+')';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_Tmp.ExecSQL;
Result:=True;
Except
Result:=False;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -