📄 ucgdd.pas
字号:
showmessage('刷新数据库失败!');
exit;
end;
{以下代码用来批量添加明细数据 }
if (not addedit) and (jhdh=trim(dbedit2.Text)) then
begin
RzBitBtn1.Enabled:=true;
RzBitBtn2.Enabled:=true;
RzBitBtn3.Enabled:=false;
jhdh:='';
ddhm:='';
exit; //如果为修改模式,且计划单未发生变化就不执行下面的代码
end;
try
strsql:='exec insertcgdd '+''''+ trim(dbedit1.text)+''''+','+''''+trim(dbedit4.text)+
''''+','+''''+trim(dbedit2.Text)+'''';
adodel(adoquery3,strsql);
strsql:='update wlbj set isok=1 where bjdh='+''''+trim(dbedit4.Text)+'''';
adodel(adoquery3,strsql);
adoquery3.Close;
adoquery1.Close;
adoquery1.Open;
except
showmessage('访问数据库失败');
if addedit then
begin
strsql:='delete from cgdd_main where ddhm='+''''+trim(dbedit1.Text)+'''';
adodel(adoquery3,strsql);
strsql:='exec p_cgdd_del '+trim(dbedit1.Text);
adodel(adoquery3,strsql);
end;
exit;
end;
RzBitBtn1.Enabled:=true;
RzBitBtn2.Enabled:=true;
RzBitBtn3.Enabled:=false;
jhdh:='';
ddhm:='';
end;
procedure Tfrmcgdd.RzBitBtn7Click(Sender: TObject);
begin
frmcx:=tfrmcx.Create(self);
frmcx.adocx:=adoquery2;
frmcx.ShowModal;
adoquery2:=frmcx.adocx;
ADOquery2.Requery();
end;
procedure Tfrmcgdd.RzBitBtn8Click(Sender: TObject);
begin
RzBitBtn1.Enabled:=true;
RzBitBtn2.Enabled:=true;
RzBitBtn3.Enabled:=false;
adoquery2.CancelUpdates;
jhdh:='';
end;
procedure Tfrmcgdd.RzBitBtn9Click(Sender: TObject);
begin
adoquery1.Close;
adoquery2.Close;
adoquery3.Close;
close;
end;
procedure Tfrmcgdd.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if (adoquery2.State in[dsinsert]) or (adoquery2.State in[dsedit]) then
begin
if messagebox(handle,'订单当前处于编辑状态,是否需要保存结果?','询问',mb_yesno+mb_iconquestion)=idyes then
begin
RzBitBtn3Click(self);
end else begin
RzBitBtn8Click(self);
end;
end;
action:=cafree;
end;
procedure Tfrmcgdd.DBEdit4Exit(Sender: TObject);
begin
RzToolbarButton3.Visible:=false;
end;
procedure Tfrmcgdd.DBEdit4Enter(Sender: TObject);
begin
RzToolbarButton3.Visible:=true;
end;
procedure Tfrmcgdd.TabSheet2Enter(Sender: TObject);
begin
if adoquery1.Recordset.EOF and adoquery1.Recordset.BOF then exit;
edit1.Text:=adoquery1.fieldbyname('单价').AsString;
edit2.Text:=adoquery1.fieldbyname('订购数量').AsString;
xql:=adoquery1.fieldbyname('订购数量').Value;
edit3.Text:=adoquery1.fieldbyname('客色号').AsString;
edit1.SetFocus;
end;
procedure Tfrmcgdd.edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9',#46,#8] ) then
key:=#0;
end;
procedure Tfrmcgdd.edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9',#46,#8] ) then
key:=#0;
end;
procedure Tfrmcgdd.RzBitBtn4Click(Sender: TObject);
begin
if jcsj then exit;
if (trim(edit1.Text)='0') or (trim(edit2.Text)='0') then
begin
showmessage('单价或数量不能为0');
exit;
end;
try
strsql:='update cgdd_detail set dj='+trim(edit1.Text)+',xql='+
trim(edit2.Text)+',wssl=wssl+'+trim(edit2.Text)+'-'+inttostr(xql)+
',kwlsh='+''''+trim(edit3.Text)+''''+' where ddhm='+''''+
adoquery1.fieldbyname('订单号码').AsString+
''''+'and wldm='+''''+adoquery1.fieldbyname('物料代码').AsString+'''';
adodel(adoquery3,strsql);
adoquery3.Close;
if adoquery1.Active then adoquery1.Close;
adoquery1.Open;
except
showmessage('更新采购订单失败');
end;
RzPageControl1.ActivePageIndex:=0;
end;
procedure Tfrmcgdd.RzBitBtn6Click(Sender: TObject);
begin
if not qxjc(userid,'cgdd_del') and (username<>trim(dbedit5.Text)) then exit;
if adoquery2.Recordset.EOF and adoquery2.Recordset.BOF then exit;
if jcsj then exit;
if messagebox(handle,'是否真的要删除该采购订单吗?','警告',mb_yesno+mb_iconquestion)=idno then exit;
try
strsql:='exec p_cgdd_del '+trim(dbedit1.Text);
adodel(adoquery3,strsql);
adoquery2.Delete;
adoquery3.Close;
adoquery1.Close;
adoquery1.Open;
except
showmessage('删除订单失败');
end;
end;
procedure Tfrmcgdd.RzBitBtn12Click(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=0;
end;
procedure Tfrmcgdd.RzMenuToolbarButton1Click(Sender: TObject);
begin
frmgyslb:=tfrmgyslb.Create(self);
frmgyslb.ShowModal;
dbedit3.Text:=lbname;
end;
procedure Tfrmcgdd.RzMenuToolbarButton2Click(Sender: TObject);
begin
frmcgjhdh_lb:=tfrmcgjhdh_lb.Create(self);
frmcgjhdh_lb.ShowModal;
dbedit4.Text:=strhthm;
end;
procedure Tfrmcgdd.DBEdit1Change(Sender: TObject);
begin
if not adoquery2.Active then exit;
if adoquery2.Recordset.EOF and adoquery2.Recordset.bof then exit;
strsql:='select * from view_cgdd where 订单号码='+''''+trim(dbedit1.Text)+'''';
adoexect(adoquery1,strsql);
if adoquery2.FieldByName('审核').Value=1 then
GroupBox1.Enabled:=false
else
GroupBox1.Enabled:=true;
end;
procedure Tfrmcgdd.DBEdit3Enter(Sender: TObject);
begin
RzToolbarButton2.Visible:=true;
end;
procedure Tfrmcgdd.DBEdit3Exit(Sender: TObject);
begin
RzToolbarButton2.Visible:=false;
end;
procedure Tfrmcgdd.RzToolbarButton2Click(Sender: TObject);
begin
if (adoquery2.State in[dsedit]) or (adoquery2.State in[dsinsert]) then
begin
lbname:=''; //lbname 用来传递供应商代码
title:=''; //title 用来传递联系人
strhthm:=''; // strhthm 用来传递供应商名称
frmgyslb:=tfrmgyslb.Create(self);
frmgyslb.ShowModal;
dbedit3.Text:=lbname;
dbedit11.Text:=strhthm;
dbedit6.Text:=title;
end;
end;
procedure Tfrmcgdd.RzToolbarButton3Click(Sender: TObject);
begin
if (adoquery2.State in[dsedit]) or (adoquery2.State in[dsinsert]) then
begin
strhthm:=''; //传递报价单号
title:=''; //传递计划单号
frmbjdh_lb:=tfrmbjdh_lb.Create(self);
frmbjdh_lb.ShowModal ;
if strhthm='' then exit;
dbedit4.Text:=strhthm;
dbedit2.Text:=title;
strsql:='select cgxqdh from cgjh_main where cgjhdh='+''''+title+'''';
adoexect(adoquery3,strsql);
if adoquery3.Recordset.BOF and adoquery3.Recordset.EOF then
begin
showmessage('数据库库发生逻辑错误!请检查报价单、计划单、需求单是否存在对应关系');
exit;
end;
dbedit14.Text:=adoquery3.fieldbyname('cgxqdh').AsString;
adoquery3.Close;
end;
end;
procedure Tfrmcgdd.RzBitBtn5Click(Sender: TObject);
begin
if adoquery4.Active then adoquery4.Close;
adoquery4.Parameters.ParamByName('ddhm').Value:=trim(dbedit1.Text);
adoquery4.Open;
form3.frDBDataSet1.dataset:=adoquery1;
form3.frDBDataSet2.dataset:=adoquery4;
form3.frReport1.DoublePass := True;
form3.frReport1.Clear;
form3.frReport1.LoadFromFile(strpath+'/report/cgdd.frf');
frVariables['username']:=username;
form3.frReport1.Preview := Form3.frPreview1;
if form3.frReport1.PrepareReport then
begin
form3.frReport1.ShowPreparedReport;
end;
form3.ShowModal;
adoquery4.Close;
end;
procedure Tfrmcgdd.dtp1Exit(Sender: TObject);
begin
csh;
end;
procedure Tfrmcgdd.dtp2Exit(Sender: TObject);
begin
csh;
end;
procedure Tfrmcgdd.DBEdit2Enter(Sender: TObject);
begin
RzToolbarButton1.Visible:=true;
end;
procedure Tfrmcgdd.DBEdit2Exit(Sender: TObject);
begin
RzToolbarButton1.Visible:=false;
end;
procedure Tfrmcgdd.RzToolbarButton1Click(Sender: TObject);
begin
if (adoquery2.State in[dsedit]) or (adoquery2.State in[dsinsert]) then
begin
strhthm:='';
xqdh:='';
frmcgjhdh_lb:=tfrmcgjhdh_lb.Create(self);
frmcgjhdh_lb.ShowModal;
dbedit2.Text:=strhthm;
dbedit14.Text:=xqdh;
dbedit4.Text:='无报价单';
end;
end;
procedure Tfrmcgdd.RzPageControl1Change(Sender: TObject);
begin
if not ((adoquery2.State in[dsedit]) or (adoquery2.State in[dsinsert])) then exit;
if jcsj then
begin
RzPageControl1.ActivePageIndex:=0;
end;
end;
procedure Tfrmcgdd.DBComboBox2Change(Sender: TObject);
begin
if dbcombobox2.text='港币' then
begin
dbedit16.Text:='HK$';
end;
if dbcombobox2.text='美圆' then
begin
dbedit16.Text:='US$';
end;
if dbcombobox2.text='人民币' then
begin
dbedit16.Text:='¥';
end;
end;
procedure Tfrmcgdd.DBGridEh1DblClick(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=1;
end;
procedure Tfrmcgdd.N1Click(Sender: TObject);
begin
if not ((adoquery2.State in[dsedit]) or (adoquery2.State in[dsinsert])) then exit;
wldm:='';
jhsl:=0;
cjhdh:=trim(dbedit2.Text);
frmcgjh_wllb:=tfrmcgjh_wllb.create(self);
frmcgjh_wllb.ShowModal;
if wldm='' then exit;
strsql:='select * from cgdd_detail where wldm='+''''+wldm+''''+'and ddhm='+
''''+trim(dbedit1.Text)+'''';
adoexect(adoquery3,strsql);
if not(adoquery3.Recordset.eof and adoquery3.Recordset.BOF) then
begin
showmessage('此物料在该订单上已存在!');
exit;
end;
strsql:='select * from cgdd_detail';
adoexect(adoquery5,strsql);
adoquery5.Append;
adoquery5.FieldByName('wldm').AsString:=wldm;
adoquery5.FieldByName('ddhm').AsString:=trim(dbedit1.Text);
adoquery5.FieldByName('xql').value:=jhsl;
adoquery5.FieldByName('wssl').value:=jhsl;
adoquery5.FieldByName('yssl').value:=0;
adoquery5.FieldByName('dj').value:=0;
adoquery5.FieldByName('kwlsh').value:='';
adoquery5.Post;
adoquery5.Close;
adoquery1.close;
adoquery1.Open;
end;
procedure Tfrmcgdd.N2Click(Sender: TObject);
begin
if not ((adoquery2.State in[dsedit]) or (adoquery2.State in[dsinsert])) then exit;
if jcsj then exit;
strsql:='delete from cgdd_detail where wldm='+''''+
trim(adoquery1.fieldbyname('物料代码').AsString)+''''+'and ddhm='+
''''+trim(dbedit1.Text)+'''';
adodel(adoquery3,strsql);
adoquery1.Close;
adoquery1.Open;
end;
procedure Tfrmcgdd.DBGridEh1TitleClick(Column: TColumnEh);
begin
Compositor(adoquery1,Column);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -