📄 updwlap.pas
字号:
end;
procedure Tfrmpdwlap.RzBitBtn4Click(Sender: TObject);
begin
frReport1.DoublePass := True;
frReport1.Clear;
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.DesignReport;
end;
procedure Tfrmpdwlap.TabSheet2Enter(Sender: TObject);
var
i:integer;
begin
gcdh:=gcdh1;
if gcdh='' then
begin
showmessage('没有指定工单号码');
RzPageControl1.ActivePageIndex:=0;
exit;
end;
if not adoquery1.Active then exit;
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)+''''+
' 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('请选择工程单号');
exit;
end;
strsql:='select * from cgwl,cgwl_mail where cgwl_mail.cgxqdh=cgwl.cgxqdh and '+
'cgwl_mail.gdhm like '+''''+'%'+trim(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.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 gcdh='' then
begin
showmessage('选择工程单号后,'+#10#13+'才能进行操作');
exit;
end;
if adoquery1.Recordset.eof and adoquery1.Recordset.BOF then exit;
strsql:='select * from cgwl,cgwl_mail where cgwl.cgxqdh=cgwl_mail.cgxqdh and '+
'gdhm like'+''''+'%'+gdhm+'%'+''''+' and wldm='+
''''+trim(adoquery1.fieldbyname('物料代码').AsString)+'''';
adoexect(adoquery3,strsql);
if (adoquery3.FieldByName('ykcl').value>0) or (adoquery3.FieldByName('jhsl').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 chang='佳盈' then
strsql:='update order_wlfp set yfpsl=yfpsl-'+adoquery1.fieldbyname('已分配量').AsString+
',xql=xql-'+adoquery1.fieldbyname('需求量').AsString+',wlsl=wlsl-'+
adoquery1.fieldbyname('需求量').AsString+',good_wlsl=good_wlsl-'+
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+',wlsl=wlsl-'+
adoquery1.fieldbyname('需求量').AsString+',let_wlsl=let_wlsl-'+
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);
strsql:='delete from cgwl where xql=0';
adodel(adoquery3,strsql);
strsql:='delete from order_wlfp where xql=0';
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:=chang;
adoquery3.FieldByName('ldrq').AsString:=adoquery2.fieldbyname('ldrq').asstring;
adoquery3.FieldByName('isok').Value:=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;
gcdh1:=trim(adoquery5.fieldbyname('gdhm').AsString);
num1:=adoquery5.fieldbyname('xql').Value;
num2:=adoquery5.fieldbyname('yfpsl').Value;
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.Filtered:=false;
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
begin
GroupBox2.Visible:=false;
treeview1.Enabled:=true;
end;
end;
procedure Tfrmpdwlap.N3Click(Sender: TObject);
begin
GroupBox2.Visible:=true;
treeview1.Enabled:=false;
edit3.SetFocus;
end;
procedure Tfrmpdwlap.DBGridEh1CellClick(Column: TColumnEh);
begin
if adoquery5.Recordset.eof and adoquery5.Recordset.BOF then exit;
edit1.Text:=adoquery5.fieldbyname('xql').AsString;
edit2.Text:=adoquery5.fieldbyname('yfpsl').AsString;
num1:=adoquery5.fieldbyname('xql').Value;
num2:=adoquery5.fieldbyname('yfpsl').value;
gcdh:=trim(adoquery5.fieldbyname('gdhm').AsString);
edit2.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;
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;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -