📄 updwlap.pas
字号:
end;
if (gcdh='') and (gdhm='') then
begin
showmessage('不能按照工单来撤消!');
exit;
end;
strsql1:='select * from fld_main,fld_detail,order_wlfp where'+
' fld_main.fldh=fld_detail.fldh and fld_detail.wldm=order_wlfp.wldm'+
' and order_wlfp.gdhm=fld_main.gdhm and order_wlfp.gdhm='+''''+gdhm+'''';
if gcdh='' then
begin
strsql:='exec p_pdwlap_6 '+''''+gdhm+''''+','+''''+trim(chang)+'''';
end else begin
strsql:='exec p_pdwlap_5 '+''''+gcdh+''''+','+''''+gdhm+''''+','+''''+trim(chang)+'''';
end;
adoexect(adoquery3,strsql1);
if not(adoquery3.Recordset.eof and adoquery3.Recordset.EOF) then
begin
showmessage('此工单已存在领料,不能撤消已经分配的物料');
adoquery3.Close;
exit;
end;
try
adodel(adoquery3,strsql);
except
showmessage('撤消分配时出错,请检查数据库是否正确!');
exit;
end;
adoquery1.Close;
adoquery1.Open;
adoquery3.Close;
showmessage('撤消物料分配成功');
end;
procedure Tfrmpdwlap.RzBitBtn7Click(Sender: TObject);
begin
close;
end;
procedure Tfrmpdwlap.RzBitBtn6Click(Sender: TObject);
begin
frmcx:=tfrmcx.Create(self);
frmcx.adocx:=adoquery1;
frmcx.ShowModal;
adoquery1:=frmcx.adocx;
ADOquery1.Requery();
dbgrid1.Refresh;
end;
procedure Tfrmpdwlap.RzBitBtn5Click(Sender: TObject);
begin
frReport1.DoublePass := True;
frReport1.Clear;
frVariables['chang']:=trim(chang);
case n of
1:
begin
frReport1.LoadFromFile(strpath+'/report/pdwlap_3.frf');
frVariables['rq1']:=rq1;
frVariables['rq2']:=rq2;
end;
2:
begin
frReport1.LoadFromFile(strpath+'/report/pdwlap_2.frf');
frVariables['hthm']:=gdhm;
end;
3:
begin
frReport1.LoadFromFile(strpath+'/report/pdwlap.frf');
frVariables['gcdh']:=gcdh;
end;
end;
frVariables['username']:=username;
frreport1.ShowReport;
end;
procedure Tfrmpdwlap.RzBitBtn4Click(Sender: TObject);
begin
frReport1.DoublePass := True;
frReport1.Clear;
frVariables['chang']:=trim(chang);
case n of
1:
begin
frReport1.LoadFromFile(strpath+'/report/pdwlap_3.frf');
frVariables['rq1']:=rq1;
frVariables['rq2']:=rq2;
end;
2:
begin
frReport1.LoadFromFile(strpath+'/report/pdwlap_2.frf');
frVariables['hthm']:=gdhm;
end;
4:
begin
frReport1.LoadFromFile(strpath+'/report/pdwlap.frf');
frVariables['gcdh']:=gcdh;
end;
end;
frVariables['username']:=username;
frreport1.DesignReport;
end;
procedure Tfrmpdwlap.TabSheet2Enter(Sender: TObject);
var
i:integer;
begin
if not adoquery1.Active then exit;
gcdh:=gcdh1;
if gcdh='' then
begin
showmessage('请选择工程单号');
RzPageControl1.ActivePageIndex:=0;
exit;
end;
if adoquery1.Recordset.eof and adoquery1.Recordset.BOF then exit;
strsql:='select wldm,gysdm,sjkc,sykc,pym,wlsh from wldmk where wlmc='+''''+trim(adoquery1.fieldbyname('物料名称').AsString)+
''''+' and wlys='+''''+trim(adoquery1.fieldbyname('颜色').AsString)+'''';
adoexect(adoquery4,strsql);
edit1.Text:=adoquery1.fieldbyname('需求量').AsString;
edit2.Text:=adoquery1.fieldbyname('已分配量').AsString;
editwldm.Text:=adoquery1.fieldbyname('物料代码').AsString;
editwlmc.Text:=adoquery1.fieldbyname('物料名称').AsString;
editwlys.Text:=adoquery1.fieldbyname('颜色').AsString;
editwlsh.Text:=adoquery1.fieldbyname('色号').AsString;
num1:=adoquery1.fieldbyname('需求量').Value;
num2:=adoquery1.fieldbyname('已分配量').Value;
strsql:='select gdhm,llqk_detail.wldm,wlmc,wlys,wlsh,dw,gysdm,xql,yfpsl from llqk_detail,wldmk '+
'where wldmk.wldm=llqk_detail.wldm and llqk_detail.hthm='+''''+gdhm+''''+' and llqk_detail.wldm='+''''+trim(editwldm.Text)+''''+
' and chang='+''''+trim(chang)+''''+' order by gdhm asc';
adoexect(adoquery5,strsql);
treeview1.Enabled:=false;
edit2.SelectAll;
edit2.SetFocus;
end;
procedure Tfrmpdwlap.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9',#8] ) then
key:=#0;
end;
procedure Tfrmpdwlap.RzBitBtn8Click(Sender: TObject);
var
num:longint;
begin
if trim(edit1.Text)='' then
begin
showmessage('需求量不能为空');
edit1.SetFocus;
exit;
end;
if gcdh='' then
begin
showmessage('请选择工程单号');
RzPageControl1.ActivePageIndex:=0;
exit;
end;
strsql:='select gdhm from ddk where gcdh='+''''+gcdh+''''+' and yfpwl=1';
adoexect(adoquery3,strsql);
if not(adoquery1.Recordset.EOF and adoquery1.Recordset.BOF) then
begin
showmessage('对不起!该工单已经分配物料确认生产,'+#10#13+'不能再修改');
RzPageControl1.ActivePageIndex:=0;
exit;
end;
strsql:='select gdhm from order_wlfp where gdhm='+''''+gdhm+''''+' and wldm='+''''+
trim(editwldm.Text)+''''+' and ylsl>0';
adoexect(adoquery3,strsql);
if not(adoquery3.Recordset.EOF and adoquery3.Recordset.BOF) then
begin
if (num1>strtoint(edit1.Text)) or (num2>strtoint(edit2.Text)) then
begin
showmessage('对不起!该工单上的该物料已经发生领料,'+#10#13+'不能再更改');
RzPageControl1.ActivePageIndex:=0;
exit;
end;
end;
strsql:='select * from cgwl,cgwl_mail where cgwl_mail.cgxqdh=cgwl.cgxqdh and '+
'cgwl_mail.gdhm like '+''''+'%'+gdhm+'%'+''''+
' and wldm ='+''''+trim(editwldm.Text)+'''';
adoexect(adoquery3,strsql);
if not(adoquery3.Recordset.EOF and adoquery3.Recordset.BOF) then
begin
num:=adoquery3.fieldbyname('ykcl').Value+ adoquery3.fieldbyname('yssl').Value-adoquery3.fieldbyname('yfpsl').Value+num2;
end else begin
showmessage('数据库错误!此物料在需求库中不存在.');
adoquery3.Close;
exit;
end;
if num<strtoint(edit2.Text) then
begin
showmessage('需求单尚无足够的数量来分配,库存只有'+inttostr(num));
edit2.Text:=inttostr(num);
exit;
end;
strsql:='update llqk_detail set yfpsl='+edit2.Text+',xql='+trim(edit1.Text)+' where gdhm='+''''+
gcdh+''''+' and wldm='+''''+ trim(editwldm.Text)+'''';
adodel(adoquery3,strsql);
if chang='佳盈' then //
strsql:='update order_wlfp set yfpsl=yfpsl+'+edit2.Text+'-'+inttostr(num2)+',xql=xql+'+
trim(edit1.Text)+'-'+inttostr(num1)+',good_yfpsl=good_yfpsl+'+edit2.Text+'-'+inttostr(num2)+
',good_xql=good_xql+'+trim(edit1.Text)+'-'+inttostr(num1)+',good_wlsl=good_wlsl+'+
edit1.Text+'-'+inttostr(num1)+',wlsl=wlsl+'+edit1.Text+'-'+inttostr(num1)+' where gdhm='+''''+
gdhm+''''+' and wldm='+''''+ trim(editwldm.Text)+''''
else
strsql:='update order_wlfp set yfpsl=yfpsl+'+edit2.Text+'-'+inttostr(num2)+',xql=xql+'+
trim(edit1.Text)+'-'+inttostr(num1)+',let_yfpsl=let_yfpsl+'+edit2.Text+'-'+inttostr(num2)+
',let_xql=let_xql+'+trim(edit1.Text)+'-'+inttostr(num1)+',let_wlsl=let_wlsl+'+
edit1.Text+'-'+inttostr(num1)+',wlsl=wlsl+'+edit1.Text+'-'+inttostr(num1)+' where gdhm='+''''+
gdhm+''''+' and wldm='+''''+ trim(editwldm.Text)+'''';
adodel(adoquery3,strsql);
adoquery3.Close;
adoquery1.Close;
adoquery1.Open;
adoquery5.Requery();
if adoquery5.RecordCount>1 then
RzPageControl1.ActivePageIndex:=1
else
RzPageControl1.ActivePageIndex:=0;
end;
procedure Tfrmpdwlap.RzBitBtn9Click(Sender: TObject);
begin
adoquery3.Close;
gcdh:='';
RzPageControl1.ActivePageIndex:=0;
end;
procedure Tfrmpdwlap.DBGrid1DblClick(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=1;
end;
procedure Tfrmpdwlap.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if adoquery1.FieldByName('需求量').Value > adoquery1.FieldByName('已分配量').Value then
begin
dbgrid1.Canvas.Brush.Color:=clYellow;
end;
if adoquery1.FieldByName('需求量').Value =0 then
begin
dbgrid1.Canvas.Brush.Color:=clred;
end;
dbgrid1.DefaultDrawColumnCell(rect,datacol,column,[gdfixed,gdfocused,gdselected]);
end;
procedure Tfrmpdwlap.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9',#8] ) then
key:=#0;
end;
procedure Tfrmpdwlap.N1Click(Sender: TObject);
begin
if adoquery1.Recordset.eof and adoquery1.Recordset.BOF then exit;
strsql:='select * from cgwl where gdhm like'+''''+'%'+gdhm+'%'+''''+' and wldm='+
''''+trim(adoquery1.fieldbyname('物料代码').AsString)+'''';
adoexect(adoquery3,strsql);
if adoquery3.FieldByName('ylsl').value>0 then
begin
showmessage('该物料已有领料,不能删除!');
exit;
end;
adoquery3.Close;
if messagebox(handle,'是否真的要删除该记录?','询问',mb_iconquestion+mb_yesno)=idyes then
begin
strsql:='update cgwl set yfpsl=yfpsl-'+adoquery1.fieldbyname('已分配量').AsString+
',xql=xql-'+adoquery1.fieldbyname('需求量').AsString+' from cgwl_mail where '+
'cgwl.cgxqdh=cgwl_mail.cgxqdh and cgwl_mail.gdhm like '+''''+'%'+gdhm+'%'+''''+
' and cgwl.wldm='+''''+trim(adoquery1.fieldbyname('物料代码').AsString)+'''';
adodel(adoquery3,strsql);
if trim(chang)='佳盈' then
strsql:='update order_wlfp set yfpsl=yfpsl-'+adoquery1.fieldbyname('已分配量').AsString+
',xql=xql-'+adoquery1.fieldbyname('需求量').AsString+',good_yfpsl=good_yfpsl-'+
adoquery1.fieldbyname('已分配量').AsString+',good_xql=good_xql-'+
adoquery1.fieldbyname('需求量').AsString+' where gdhm='+''''+gdhm+''''+
' and wldm='+''''+trim(adoquery1.fieldbyname('物料代码').AsString)+''''
else
strsql:='update order_wlfp set yfpsl=yfpsl-'+adoquery1.fieldbyname('已分配量').AsString+
',xql=xql-'+adoquery1.fieldbyname('需求量').AsString+',let_yfpsl=good_yfpsl-'+
adoquery1.fieldbyname('已分配量').AsString+',let_xql=good_xql-'+
adoquery1.fieldbyname('需求量').AsString+' where gdhm='+''''+gdhm+''''+
' and wldm='+''''+trim(adoquery1.fieldbyname('物料代码').AsString)+'''';
adodel(adoquery3,strsql);
strsql:='delete from llqk_detail where gdhm='+''''+gcdh+''''+' and wldm='+
''''+trim(adoquery1.fieldbyname('物料代码').AsString)+'''';
adodel(adoquery3,strsql);
adoquery1.Requery();
adoquery3.Close;
end;
end;
procedure Tfrmpdwlap.N2Click(Sender: TObject);
begin
if gcdh='' then
begin
showmessage('没有选择工程单,该步骤必须选择工程单才能进行!');
exit;
end;
frmwllb.ShowModal;
if wldm='' then exit;
strsql:='select * from llqk_Detail where gdhm='+''''+gcdh+''''+' and wldm='+''''+
wldm+'''';
adoexect(adoquery3,strsql);
if not(adoquery3.Recordset.eof and adoquery3.Recordset.BOF) then
begin
showmessage('该物料在工单'+gcdh+'已经存在');
exit;
end;
strsql:='select ldrq,hthm from llqk_detail where gdhm='+''''+gcdh+'''';
adoexect(adoquery2,strsql);
adoquery3.Append;
adoquery3.FieldByName('gdhm').AsString:=gcdh;
adoquery3.FieldByName('hthm').AsString:=adoquery2.fieldbyname('hthm').asstring;
adoquery3.FieldByName('ylbm').AsString:=ylbm;
adoquery3.FieldByName('wldm').AsString:=wldm;
adoquery3.FieldByName('xql').AsString:='0';
adoquery3.FieldByName('ylsl').AsString:='0';
adoquery3.FieldByName('wlsl').AsString:='0';
adoquery3.FieldByName('yfpsl').AsString:='0';
adoquery3.FieldByName('sysl').AsString:='0';
adoquery3.FieldByName('chang').AsString:=trim(chang);
adoquery3.FieldByName('ldrq').AsString:=adoquery2.fieldbyname('ldrq').asstring;
adoquery3.FieldByName('isok').AsString:='1';
adoquery3.post;
adoquery2.close;
adoquery3.close;
adoquery1.requery();
end;
procedure Tfrmpdwlap.RzDBGrid2CellClick(Column: TColumn);
begin
if adoquery5.Recordset.EOF and adoquery5.Recordset.BOF then exit;
edit1.Text:=adoquery5.fieldbyname('xql').AsString;
edit2.Text:=adoquery5.fieldbyname('yfpsl').AsString;
editwldm.Text:=adoquery5.fieldbyname('wldm').AsString;
editwlmc.Text:=adoquery5.fieldbyname('wlmc').AsString;
editwlys.Text:=adoquery5.fieldbyname('wlys').AsString;
editwlsh.Text:=adoquery5.fieldbyname('wlsh').AsString;
num1:=adoquery5.fieldbyname('xql').Value;
num2:=adoquery5.fieldbyname('yfpsl').Value;
gcdh:=trim(adoquery5.fieldbyname('gdhm').AsString);
edit2.SetFocus;
edit2.SelectAll;
end;
procedure Tfrmpdwlap.TabSheet1Enter(Sender: TObject);
begin
treeview1.Enabled:=true;
end;
procedure Tfrmpdwlap.Edit3Change(Sender: TObject);
begin
if trim(edit3.Text)='' then
begin
adoquery1.Filter:='';
exit;
end;
adoquery1.Filtered:=true;
adoquery1.Filter:='物料名称 like '+''''+'%'+trim(edit3.Text)+'%'+'''';
if adoquery1.Recordset.EOF and adoquery1.Recordset.BOF then
begin
adoquery1.Filtered:=true;
adoquery1.Filter:='拼音码 like '+''''+trim(edit3.Text)+'%'+''''+' or 物料代码='+''''+trim(edit3.Text)+'''';
end;
end;
procedure Tfrmpdwlap.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if key=#27 then GroupBox2.Visible:=false;
end;
procedure Tfrmpdwlap.N3Click(Sender: TObject);
begin
GroupBox2.Visible:=true;
edit3.SetFocus;
end;
procedure Tfrmpdwlap.Edit2DblClick(Sender: TObject);
begin
edit2.Text:=trim(edit1.Text);
end;
procedure Tfrmpdwlap.DBGrid1TitleClick(Column: TColumn);
begin
dgridpx(adoquery1,DBGrid1,Column);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -