unit u_fee_modify; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, BusinessSkinForm, bsSkinCtrls, DB, ADODB, StdCtrls, Mask, DBCtrls, wwdblook, RxLookup; type Tfrm_fee_modify = class(TForm) bsBusinessSkinForm1: TbsBusinessSkinForm; bsSkinGroupBox1: TbsSkinGroupBox; table_old1: TDataSource; Label1: TLabel; DBEdit1: TDBEdit; Label2: TLabel; DBEdit2: TDBEdit; Label3: TLabel; DBEdit3: TDBEdit; Label4: TLabel; DBEdit4: TDBEdit; Label5: TLabel; DBEdit5: TDBEdit; Label6: TLabel; DBEdit6: TDBEdit; Label7: TLabel; DBEdit7: TDBEdit; Label8: TLabel; DBEdit8: TDBEdit; Label9: TLabel; DBEdit9: TDBEdit; bsSkinGroupBox2: TbsSkinGroupBox; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label14: TLabel; Label15: TLabel; Label16: TLabel; Label17: TLabel; Label18: TLabel; DBEdit14: TDBEdit; DBEdit15: TDBEdit; DBEdit16: TDBEdit; DBEdit18: TDBEdit; wwDBLookupCombo5: TwwDBLookupCombo; wwDBLookupCombo4: TwwDBLookupCombo; wwDBLookupCombo3: TwwDBLookupCombo; Label19: TLabel; DBEdit10: TDBEdit; table_new1: TDataSource; table1: TDataSource; bsSkinButton1: TbsSkinButton; bsSkinButton2: TbsSkinButton; RxDBLookupCombo1: TRxDBLookupCombo; RxDBLookupCombo2: TRxDBLookupCombo; Label20: TLabel; DBEdit11: TDBEdit; Label21: TLabel; DBEdit12: TDBEdit; DBEdit13: TDBEdit; Label22: TLabel; Label23: TLabel; DBEdit17: TDBEdit; Label24: TLabel; DBEdit19: TDBEdit; Label25: TLabel; DBEdit20: TDBEdit; Label26: TLabel; DBEdit21: TDBEdit; Label27: TLabel; DBEdit22: TDBEdit; procedure FormCreate(Sender: TObject); procedure bsSkinButton1Click(Sender: TObject); procedure bsSkinButton2Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure wwDBLookupCombo5Change(Sender: TObject); procedure wwDBLookupCombo4Change(Sender: TObject); procedure DBEdit14Change(Sender: TObject); procedure RxDBLookupCombo1KeyPress(Sender: TObject; var Key: Char); procedure wwDBLookupCombo5KeyPress(Sender: TObject; var Key: Char); procedure RxDBLookupCombo2KeyPress(Sender: TObject; var Key: Char); procedure wwDBLookupCombo4KeyPress(Sender: TObject; var Key: Char); procedure DBEdit15KeyPress(Sender: TObject; var Key: Char); procedure DBEdit14KeyPress(Sender: TObject; var Key: Char); procedure DBEdit16KeyPress(Sender: TObject; var Key: Char); procedure wwDBLookupCombo3KeyPress(Sender: TObject; var Key: Char); procedure DBEdit18KeyPress(Sender: TObject; var Key: Char); procedure RxDBLookupCombo2Enter(Sender: TObject); procedure wwDBLookupCombo3Change(Sender: TObject); procedure DBEdit12KeyPress(Sender: TObject; var Key: Char); procedure DBEdit20Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var frm_fee_modify: Tfrm_fee_modify; frm_fee_modify_ok:boolean; implementation uses u_main, u_data_share, my_sys_function; {$R *.dfm} procedure Tfrm_fee_modify.FormCreate(Sender: TObject); begin frm_fee_modify_ok:=false; end; procedure Tfrm_fee_modify.bsSkinButton1Click(Sender: TObject); begin if table_new1.DataSet.State=dsedit then table_new1.DataSet.post; if DBEdit10.Text='' then begin showmessage('请输入申请修改原因!!'); exit; end; if Trim(table_new1.DataSet.FieldByName('币别').AsString)='' then begin showmessage('币别不能为空!!'); exit; end; if Trim(table_new1.DataSet.FieldByName('客户名称').AsString)='' then begin showmessage('客户名称不能为空!!'); exit; end; if Trim(table_new1.DataSet.FieldByName('费用名称').AsString)='' then begin showmessage('费用名称不能为空!!'); exit; end; if Trim(table_new1.DataSet.FieldByName('币别').AsString)='USD' then begin if table_new1.DataSet.FieldByName('汇率').AsFloat<=1 then begin showmessage('汇率不正确!!'); exit; end; end else if Trim(table_new1.DataSet.FieldByName('币别').AsString)='RMB' then begin if table_new1.DataSet.FieldByName('汇率').AsFloat<>1 then begin showmessage('汇率不正确!!'); exit; end; end; if table_new1.DataSet.FieldByName('金额').AsFloat=0 then begin showmessage('金额不能为空或0!!'); exit; end; try if table_new1.DataSet.State=dsedit then table_new1.DataSet.post; modify_all:=true; if (table1.DataSet.FieldByName('PROJECTFEEID').AsString<>'') and if_open('522') then begin table1.DataSet.edit; table1.DataSet['费用名称']:=table_new1.DataSet['费用名称']; table1.DataSet['结算单位']:=table_new1.DataSet['结算单位']; table1.DataSet['客户名称']:=table_new1.DataSet['客户名称']; table1.DataSet['标准']:=table_new1.DataSet['标准']; table1.DataSet['单价']:=table_new1.DataSet['单价']; table1.DataSet['数量']:=table_new1.DataSet['数量']; table1.DataSet['金额']:=table_new1.DataSet['金额']; table1.DataSet['币别']:=table_new1.DataSet['币别']; table1.DataSet['汇率']:=table_new1.DataSet['汇率']; table1.DataSet['不含税价']:=table_new1.DataSet['不含税价']; table1.DataSet['税率']:=table_new1.DataSet['税率']; table1.DataSet['税额']:=table_new1.DataSet['税额']; table1.DataSet['备注']:=table_new1.DataSet['备注']; table1.DataSet['审核人']:=table_new1.DataSet['审核人']; table1.DataSet['费用状态']:='审核通过'; //'审核通过'; table1.DataSet['旧状态']:='申请修改'; table1.DataSet['审核日期']:=now; table1.DataSet.Post; table1.DataSet.Refresh; table_new1.DataSet.Edit; table_new1.DataSet['申请状态']:='批准申请'; table_new1.DataSet['审核人']:=employee; table_new1.DataSet['审核日期']:=now; table_new1.DataSet.post; end else begin table1.DataSet.Edit; table1.DataSet['费用状态']:='申请修改'; table1.DataSet.post; end; finally if table1.DataSet.State=DsEdit then table1.DataSet.Cancel; frm_fee_modify_ok:=true; close; END; end; procedure Tfrm_fee_modify.bsSkinButton2Click(Sender: TObject); begin close; end; procedure Tfrm_fee_modify.FormClose(Sender: TObject; var Action: TCloseAction); begin if not frm_fee_modify_ok then begin table_new1.DataSet.delete; table_old1.DataSet.delete; end; end; procedure Tfrm_fee_modify.wwDBLookupCombo5Change(Sender: TObject); begin if (table_new1.DataSet.state=dsinsert)or(table_new1.DataSet.state=dsedit) then begin if not wwDBLookupCombo5.LookupTable.IsEmpty then if wwDBLookupCombo5.LookupTable.Locate('one',wwDBLookupCombo5.text,[])then begin table_new1.DataSet['客户名称']:=wwDBLookupCombo5.LookupTable.fieldbyname('three').asstring; end; end; end; procedure Tfrm_fee_modify.wwDBLookupCombo4Change(Sender: TObject); begin if (table_new1.DataSet.state=dsinsert)or(table_new1.DataSet.state=dsedit) then begin if not wwDBLookupCombo4.LookupTable.IsEmpty then if wwDBLookupCombo4.LookupTable.Locate('one',wwDBLookupCombo4.text,[])then begin table_new1.DataSet['数量']:=wwDBLookupCombo4.LookupTable.fieldbyname('three').asfloat; end; end; end; procedure Tfrm_fee_modify.DBEdit14Change(Sender: TObject); begin if (table_new1.DataSet.state=dsinsert)or(table_new1.DataSet.state=dsedit) then begin try DBEdit20.OnChange:=nil; DBEdit21.OnChange:=nil; if (strtofloat(DBEdit15.text)>0) and (strtofloat(DBEdit14.text)>0)then begin table_new1.DataSet['不含税价']:=strtofloat(DBEdit14.text)/(1+strtofloat(DBEdit21.text)/100); table_new1.DataSet['税额']:=s_w(strtoint(apointnum),strtofloatdef(DBEdit20.text,0)*strtofloatdef(DBEdit21.text,0)/100*strtofloat(DBEdit15.text)); table_new1.DataSet['金额']:=s_w(strtoint(get_parameters_value(65,'2')),strtofloat(DBEdit15.text)*strtofloat(DBEdit14.text)); end; finally DBEdit20.OnChange:=DBEdit20Change; DBEdit21.OnChange:=DBEdit20Change; end; end; end; procedure Tfrm_fee_modify.RxDBLookupCombo1KeyPress(Sender: TObject; var Key: Char); begin key_wwDBLookupCombo(Key,wwDBLookupCombo5); end; procedure Tfrm_fee_modify.wwDBLookupCombo5KeyPress(Sender: TObject; var Key: Char); begin key_RxDBLookupCombo(Key,RxDBLookupCombo2); end; procedure Tfrm_fee_modify.RxDBLookupCombo2KeyPress(Sender: TObject; var Key: Char); begin key_wwDBLookupCombo(Key,wwDBLookupCombo4); end; procedure Tfrm_fee_modify.wwDBLookupCombo4KeyPress(Sender: TObject; var Key: Char); begin key_DBEdit(Key,DBEdit15); end; procedure Tfrm_fee_modify.DBEdit15KeyPress(Sender: TObject; var Key: Char); begin key_DBEdit(Key,DBEdit14); end; procedure Tfrm_fee_modify.DBEdit14KeyPress(Sender: TObject; var Key: Char); begin key_DBEdit(Key,DBEdit16); end; procedure Tfrm_fee_modify.DBEdit16KeyPress(Sender: TObject; var Key: Char); begin key_wwDBLookupCombo(Key,wwDBLookupCombo3); end; procedure Tfrm_fee_modify.wwDBLookupCombo3KeyPress(Sender: TObject; var Key: Char); begin if key=#13 then begin if (table_new1.DataSet.State=dsedit)or(table_new1.DataSet.State=dsinsert) then begin try if frm_data_share.t_code_currency.locate('币别',wwDBLookupCombo3.Text,[]) then table_new1.DataSet['汇率']:=frm_data_share.t_code_currency.FieldByName('汇率').asfloat; except ; end; end; end; key_DBEdit(Key,DBEdit18); end; procedure Tfrm_fee_modify.DBEdit18KeyPress(Sender: TObject; var Key: Char); begin key_DBEdit(Key,DBEdit12); end; procedure Tfrm_fee_modify.RxDBLookupCombo2Enter(Sender: TObject); begin if table_new1.DataSet.FieldByName('结算单位').asstring<>''then client_filtered(table_new1.DataSet.FieldByName('结算单位').asstring); end; procedure Tfrm_fee_modify.wwDBLookupCombo3Change(Sender: TObject); begin if (table_new1.DataSet.State=dsedit)or(table_new1.DataSet.State=dsinsert) then begin try if frm_data_share.t_code_currency.locate('币别',wwDBLookupCombo3.Text,[]) then table_new1.DataSet['汇率']:=frm_data_share.t_code_currency.FieldByName('汇率').asfloat; except ; end; end; end; procedure Tfrm_fee_modify.DBEdit12KeyPress(Sender: TObject; var Key: Char); begin key_DBEdit(Key,DBEdit10); end; procedure Tfrm_fee_modify.DBEdit20Change(Sender: TObject); begin if (table_new1.DataSet.state=dsinsert)or(table_new1.DataSet.state=dsedit) then begin try DBEdit14.OnChange:=nil; DBEdit15.OnChange:=nil; if (strtofloatdef(DBEdit20.text,0)>=0) and (strtofloatdef(DBEdit21.text,0)>=0)then begin table_new1.DataSet['单价']:=strtofloatdef(DBEdit20.text,0)*strtofloatdef(DBEdit21.text,0)/100+strtofloatdef(DBEdit20.text,0); table_new1.DataSet['金额']:=s_w(strtoint(get_parameters_value(65,'2')),strtofloat(DBEdit15.text)*strtofloat(DBEdit14.text)); table_new1.DataSet['税额']:=s_w(strtoint(apointnum),strtofloatdef(DBEdit20.text,0)*strtofloatdef(DBEdit21.text,0)/100*strtofloat(DBEdit15.text)); end; finally DBEdit14.OnChange:=DBEdit14Change; DBEdit15.OnChange:=DBEdit14Change; end; end; end; end.