📄 pm_enter_newsspoinfo.pas
字号:
Frm_Mrp_Enter_NewMoSsParent.SetSysParam(userCode,ModuleCode,menuid,formatdatetime('yyyy.mm.dd',now));
Frm_Mrp_Enter_NewMoSsParent.ItemCode:=AdoQry_Main.fieldbyname('ItemCode').asstring;
tmplowPmCode:=AdoQry_Main.fieldbyname('PmCode').asinteger;
Frm_Mrp_Enter_NewMoSsParent.Qclt:=getQclt(AdoQry_Main.fieldbyname('ItemCode').asstring);
Frm_Mrp_Enter_NewMoSsParent.duedate:=datetimetostr(AdoQry_Main.fieldbyname('realreleasedate').asdatetime);
Frm_Mrp_Enter_NewMoSsParent.strpath:=AdoQry_Main.fieldbyname('ItemCode').asstring+',';
Frm_Mrp_Enter_NewMoSsParent.InitForm(dbconnect,True);
end
else Frm_Mrp_Enter_NewMoSsParent.Show;
finally
activecontrol:=dbgrideh;
end;
end;
procedure TFrm_Pm_Enter_NewSsPoInfo.Button2Click(Sender: TObject);
var CloseOrCancel : integer; //0 : 关闭 1 :取消
BookMArk : String;
begin
inherited;
try
BookMArk := AdoQry_Main.BookmArk;
if AdoQry_Main.RecordCount=0 then exit;
CloseOrCancel := 0;
if AdoQry_Main.fieldbyname('SsSysInfoFlag').AsInteger=2 then
CloseOrCancel := 1;
if CloseOrCancel = 0 then
begin
ExecuteSql(AdoQry_Tmp,'select * from #ss where SsSysInfoFlag=3',0);
if AdoQry_Tmp.RecordCount=0 then exit;
end
else
begin
ExecuteSql(AdoQry_Tmp,'select * from #ss where SsSysInfoFlag=2',0);
if AdoQry_Tmp.RecordCount=0 then exit;
end;
If Frm_Pm_Enter_ClosePo1=Nil Then
begin
Frm_Pm_Enter_ClosePo1:=TFrm_Pm_Enter_ClosePo1.Create(Self);
Frm_Pm_Enter_ClosePo1.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
Frm_Pm_Enter_ClosePo1.CloseOrCancel := CloseOrCancel;
Frm_Pm_Enter_ClosePo1.InItForm(Dbconnect,False);
end
else
Frm_Pm_Enter_ClosePo1.Show;
finally
ActiveControl:=DBGridEh;
AdoQry_Main.BookmArk := BookMArk;
end;
end;
procedure TFrm_Pm_Enter_NewSsPoInfo.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('PcNo').AsString<>'' Then
begin
I:=True;
BookMArk:=AdoQry_Main.BookmArk ;
Break;
end;
AdoQry_Main.Next;
end;
If I=True Then
begin
Frm_Pm_Enter_NewSsPoInfo4:=TFrm_Pm_Enter_NewSsPoInfo4.Create(Application);
Frm_Pm_Enter_NewSsPoInfo4_C:=TFrm_Pm_Enter_NewSsPoInfo4_C.Create(Application);
Frm_Pm_Enter_NewSsPoInfo4_C.InitForm(DbConnect,'Add',AdoQry_Main);
Frm_Pm_Enter_NewSsPoInfo4_C.SetFormParam(PcNo,IntToStr(PmCode),'','','','');
Frm_Pm_Enter_NewSsPoInfo4_C.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
Frm_Pm_Enter_NewSsPoInfo4_C.ShowModal;
Frm_Pm_Enter_NewSsPoInfo4_C.Free;
Frm_Pm_Enter_NewSsPoInfo4.InitForm(Dbconnect,False);
Frm_Pm_Enter_NewSsPoInfo4.SetFormParam(PcNo,IntToStr(PmCode),'','','','');
Frm_Pm_Enter_NewSsPoInfo4.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
Frm_Pm_Enter_NewSsPoInfo4.Show;
end
Else
begin
AdoQry_Main.BookmArk:=BookMArk;
DispInfo('没有含合同号记录,不能执行汇总操作!',3);
Abort;
end;
AdoQry_Main.BookmArk:=BookMArk;
end;
procedure TFrm_Pm_Enter_NewSsPoInfo.DataSourceDataChange(Sender: TObject;
Field: TField);
begin
inherited;
if AdoQry_Main.Active = True then
begin
case AdoQry_Main.fieldbyname('SsSysInfoFlag').Asinteger of
1 :Label7.Caption :='' ;
2 :Label7.Caption :='应取消的原因:父项需求发生改变,当前数量的订单没有父项需求' ;
3 :Label7.Caption :='应关闭的原因:订单生产/(采购/委外加工)完毕' ;
4 :if AdoQry_Main.fieldbyname('CanUseOnHand').AsFloat=1 then
Label7.Caption:= '应重排的原因:订单的约定交货日大于物料毛需求的需求日期'
else
Label7.Caption :='应重排的原因:订单的约定交货日小于Mrp展开运算的日期' ;
5: label7.Caption:='应减少原因:物料的供应量大于需求量';
6: label7.Caption:='应提前到'+AdoQry_Main.fieldbyname('realreleasedate').asstring;
end;
end;
end;
procedure TFrm_Pm_Enter_NewSsPoInfo.Button3Click(Sender: TObject);
begin
inherited;
Frm_Bas_Qry_MultiBomSViewMaster:=TFrm_Bas_Qry_MultiBomSViewMaster.Create(self);
Frm_Bas_Qry_MultiBomSViewMaster.InitForm(AdoQry_Tmp.Connection);
Frm_Bas_Qry_MultiBomSViewMaster.ExpandBom(AdoQry_Main.fieldbyname('ItemCode').asstring);
end;
procedure TFrm_Pm_Enter_NewSsPoInfo.DBGridEhGetCellParams(Sender: TObject;
Column: TColumnEh; AFont: TFont; var Background: TColor;
State: TGridDrawState);
begin
inherited;
if (AdoQry_Main.fieldbyname('SSSysInfoFlag').AsInteger=2) or(AdoQry_Main.fieldbyname('SSSysInfoFlag').AsInteger=4) then
AFont.Color:= clred;
end;
procedure TFrm_Pm_Enter_NewSsPoInfo.Button4Click(Sender: TObject);
function existsvir(ItemCode:string):boolean;
var sqltext:string;
begin
Result:=False;
sqltext:='select * from Bom where BomItemType=3 and ite_ItemCode='+quotedstr(ItemCode);
Executesql(AdoQry_tmp,sqltext,0) ;
if AdoQry_tmp.RecordCount<>0 then Result:=True;
end;
var
BookMArk:String;
begin
inherited;
try
if (AdoQry_Main.fieldbyname('PmType').asinteger=9) and (AdoQry_Main.fieldbyname('SSSysInfoFlag').asinteger=1) then
begin
if not existsvir(AdoQry_Main.fieldbyname('ItemCode').asstring) then
begin
Frm_Mrp_Enter_CommonAssignAlterNative:=TFrm_Mrp_Enter_CommonAssignAlterNative.Create(Application);
Frm_Mrp_Enter_CommonAssignAlterNative.SetSysParam(UserCode,ModuleCode,MenuId,DateTimeToStr(Now));
Frm_Mrp_Enter_CommonAssignAlterNative.GetalterItem(Dbconnect,AdoQry_Main.fieldbyname('ssid').Asinteger);
Frm_Mrp_Enter_CommonAssignAlterNative.ShowModal;
Frm_Mrp_Enter_CommonAssignAlterNative.Release;
end
else begin
Frm_Mrp_Enter_CommonAssignAlterNative1:=TFrm_Mrp_Enter_CommonAssignAlterNative1.Create(Application);
Frm_Mrp_Enter_CommonAssignAlterNative1.SetSysParam(UserCode,ModuleCode,MenuId,DateTimeToStr(Now));
Frm_Mrp_Enter_CommonAssignAlterNative1.lbl_Item.Caption:=AdoQry_Main.fieldbyname('Itemflag').asstring;
Frm_Mrp_Enter_CommonAssignAlterNative1.Label2.Caption:=AdoQry_Main.fieldbyname('UomName').asstring;
Frm_Mrp_Enter_CommonAssignAlterNative1.Label5.Caption:=AdoQry_Main.fieldbyname('ssSysInfoflag').asstring;
Frm_Mrp_Enter_CommonAssignAlterNative1.Label8.Caption:=AdoQry_Main.fieldbyname('ssdate').asstring;
Frm_Mrp_Enter_CommonAssignAlterNative1.Label12.Caption:=AdoQry_Main.fieldbyname('ssqty').asstring;
Frm_Mrp_Enter_CommonAssignAlterNative1.Label14.Caption:=AdoQry_Main.fieldbyname('ssreMainqty').asstring;
Frm_Mrp_Enter_CommonAssignAlterNative1.ite_Ssid:=AdoQry_Main.fieldbyname('ssid').asinteger;
Frm_Mrp_Enter_CommonAssignAlterNative1.ite_reMainqty:=AdoQry_Main.fieldbyname('ssreMainqty').asfloat;
Frm_Mrp_Enter_CommonAssignAlterNative1.GetalterItem(AdoQry_Main,AdoQry_Main.fieldbyname('ItemCode').Asstring);
Frm_Mrp_Enter_CommonAssignAlterNative1.ShowModal;
Frm_Mrp_Enter_CommonAssignAlterNative1.Release;
end;
try
BookMArk:= AdoQry_Main.BookmArk;
with AdoQry_Main do
begin
edit ;
fieldbyname('reMainQty').Asfloat:=fieldbyname('reMainQty').Asfloat- ite_ItemTotalAssignedqty;
post;
end;
AdoQry_tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.Text :=' update #ss Set reMainQty=reMainQty-'+floattostr(ite_ItemTotalAssignedqty)
+' ,ssreMainQty=ssreMainQty-'+floattostr(ite_ItemTotalAssignedqty)
+' where ssid='''+AdoQry_Main.fieldbyname('SsId').asstring+'''';
AdoQry_Tmp.ExecSQL;
getdata;
AdoQry_Main.BookmArk:=BookMArk;
except
end;
end;
finally
DBGridEh.SetFocus;
end;
end;
procedure TFrm_Pm_Enter_NewSsPoInfo.Button5Click(Sender: TObject);
var //pono:string;
// polineno:integer;
tmpQry:TAdoQuery;
tmpQry1:TAdoQuery;
sqltext:string;
tmppoqty:string;
begin
inherited;
try
if (AdoQry_Main.fieldbyname('ssSysInfoflag').asinteger<>4)
and (AdoQry_Main.fieldbyname('ssSysInfoflag').asinteger<>5)
and (AdoQry_Main.fieldbyname('ssSysInfoflag').asinteger<>6)
then
begin
activecontrol:=dbgrideh;
exit;
end;
tmpQry:=TAdoQuery.Create(self);
tmpQry.Connection:=dbconnect;
tmpQry.EnableBCD:=False;
tmpQry1:=TAdoQuery.Create(self);
tmpQry1.Connection:=dbconnect;
tmpQry1.EnableBCD:=False;
pono:=AdoQry_Main.fieldbyname('Orderno').asstring ;
polineno:=AdoQry_Main.fieldbyname('OrderLineno').asstring;
sqltext:=' Select Distinct PoLine.*,Po.*,Vendor.VendorName,Item.ItemName,Item.PmCode,Item.QcLt,Employee.EmployeeName,Uom.UomName,'
+' Employee.EmployeeCode+'''+' '+'''+Employee.EmployeeName As EmployeeFlag,'
+' Item.ItemCode+'''+' '+'''+Item.ItemName As ItemFlag, '
+' Vendor.VendorCode+'''+' '+'''+Vendor.VendorName As VendorFlag '
+' From PoLine '
+' Join Po On Po.PoNo=PoLine.PoNo '
+' Join Item On PoLine.ItemCode=Item.ItemCode '
//+' And (PoLine.POLineStatus=6 Or PoLine.PoLineStatus=7) '
+' Left Join Vendor On Po.VendorCode=Vendor.VendorCode '
+' Left Join Buyer On Po.EmployeeCode=Buyer.EmployeeCode '
+' Left Join Employee On Employee.EmployeeCode=Buyer.EmployeeCode'
+' Join Uom On Uom.UomCode=Item.UomCode '
+' Join #ss On (PoLine.PoNo=#ss.Orderno and PoLine.PoLineNo=#ss.OrderLineNo)'
+' where poline.pono='+quotedstr(pono)
+' and polineno='+polineno ;
Executesql(tmpQry,sqltext,0);
if tmpQry.RecordCount=0 then exit;
sqltext:='select sum(isnull(porealqty,0)) as porealqty from opItemList'
+' where pono='+quotedstr(AdoQry_Main.fieldbyname('Orderno').asstring)
+' and polineno='+inttostr(AdoQry_Main.fieldbyname('Orderlineno').asinteger);
Executesql(tmpQry1,sqltext,0);
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:=tmpQry.fieldbyname('PoNo').asstring;
Edt_LineNo.Text:=tmpQry.fieldbyname('Polineno').asstring;
Edt_ItemCode.Text:=tmpQry.fieldbyname('ItemCode').asstring;
Lbl_ItemName.Caption:=tmpQry.fieldbyname('ItemName').asstring;
edt_ItemName.Text:=tmpQry.fieldbyname('ItemName').asstring;
MEdt_PoStArtWorkDate.Text:=tmpQry.fieldbyname('PoStArtWorkDate').AsString;
Medt_PoDate.Text:=tmpQry.fieldbyname('POLineDATE').AsString;
Edt_PoQty.Text:=tmpQry.fieldbyname('PoQty').asstring;
tmppoqty:=edt_Poqty.Text;
Edt_PoNoFinishQty.Text:=tmpQry.fieldbyname('PONoFinishQty').asstring;
btn_ok.Enabled:=False;
if getstatus(tmpQry.fieldbyname('pono').asstring,tmpQry.fieldbyname('polineno').asinteger)=5 then
edt_Poqty.Enabled:=True;
if (getstatus(tmpQry.fieldbyname('pono').asstring,tmpQry.fieldbyname('polineno').asinteger)=6 )
and (tmpQry1.fieldbyname('porealqty').asfloat<=0)
and (tmpQry.fieldbyname('porealinqty').asfloat<=0)
and (tmpQry.fieldbyname('poinqty').asfloat<=0)then
edt_Poqty.Enabled:=True;
showmodal;
// medt_Modate.SetFocus;
if modalResult=mrok then
begin
SavePoLineHistory(dbconnect,pono,strtoint(polineno),userCode,1);
updatepoline(pono,strtoint(polineno),Medt_PoDate.Text,MEdt_PoStArtWorkDate.Text,strtofloat(Edt_PoQty.Text),strtofloat(Edt_PoQty.Text),tmppoqty<>edt_Poqty.Text);
IF Not AutoBuildopListOrder(DbConnect,Trim(tmpQry.fieldbyname('pono').AsString),Trim(tmpQry.fieldbyname('ItemCode').AsString),IntToStr(tmpQry.fieldbyname('PoLineNo').AsInteger),
'Edit','Po',tmpQry.fieldbyname('PoQty').Asfloat) Then //自动产生领料单
Abort;
OperationMOPO(AdoQry_Tmp,Trim(tmpQry.fieldbyname('ItemCode').AsString),'po',5,
Trim(tmpQry.fieldbyname('pono').AsString),tmpQry.fieldbyname('PoLineNo').AsInteger,tmpQry.fieldbyname('POLINESTATUS').AsInteger,
0,tmpQry.fieldbyname('PoQty').Asfloat,
tmpQry.fieldbyname('PONoFinishQty').Asfloat,medt_PostArtworkdate.Text,
medt_Podate.text,tmpQry.fieldbyname('PoType').AsInteger,tmpQry.fieldbyname('VendorCode').AsString );
end;
end;
finally
Frm_Pm_Enter_PassPo_D.Free;
tmpQry.free;
tmpQry1.Free;
end;
finally
activecontrol:=dbgrideh;
end;
{ try
If Frm_Pm_Enter_EditPassPo1=Nil Then
begin
Frm_Pm_Enter_EditPassPo1:=TFrm_Pm_Enter_EditPassPo1.Create(Self);
Frm_Pm_Enter_EditPassPo1.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
Frm_Pm_Enter_EditPassPo1.InItForm(Dbconnect,False);
//AdoQry_Main.fieldbyname('Orderno').asstring,AdoQry_Main.fieldbyname('OrderLineno').asstring,
end
else
Frm_Pm_Enter_EditPassPo1.Show;
finally
ActiveControl:=DBGridEh;
end; }
end;
procedure TFrm_Pm_Enter_NewSsPoInfo.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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -