unit u_check_modify; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, BusinessSkinForm, bsSkinCtrls, DB, ADODB, StdCtrls, Mask, DBCtrls, wwdblook, RxLookup, RxMemDS; type Tfrm_check_modify = class(TForm) bsBusinessSkinForm1: TbsBusinessSkinForm; bsSkinGroupBox2: TbsSkinGroupBox; Label47: TLabel; Label49: TLabel; Label50: TLabel; Label51: TLabel; Label52: TLabel; Label53: TLabel; Label54: TLabel; Label55: TLabel; wwDBLookupCombo4: TwwDBLookupCombo; wwDBLookupCombo3: TwwDBLookupCombo; RxDBLookupCombo1: TRxDBLookupCombo; RxDBLookupCombo2: TRxDBLookupCombo; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; table_new1: TDataSource; t_bz_balance: TRxMemoryData; RxMemoryData1: TRxMemoryData; ywlb: TEdit; chk_pay: TEdit; bsSkinButton16: TbsSkinButton; bsSkinButton17: TbsSkinButton; p_op_gain: TADOStoredProc; procedure bsSkinButton16Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure wwDBLookupCombo3Change(Sender: TObject); procedure wwDBLookupCombo4Change(Sender: TObject); procedure Edit2Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var frm_check_modify: Tfrm_check_modify; implementation uses u_main, u_data_share, my_sys_function; {$R *.dfm} procedure Tfrm_check_modify.bsSkinButton16Click(Sender: TObject); var feestatus,msgs: string ; //费用状态 审核通过 提交复核 begin if chk_pay.Text='FALSE' then feestatus:='审核通过' else if chk_pay.Text='TRUE' then feestatus:='提交复核' else if chk_pay.Text='CHKPART' then feestatus:=isrechk(table_new1.DataSet.fieldbyname('ch_id').asinteger, table_new1.DataSet.fieldbyname('编号').asstring, ywlb.text+'应'+table_new1.DataSet.fieldbyname('类型').asstring) ; if (Trim(Edit3.text)='') or (Trim(Edit3.text)='0') then begin msgs:='费用不能为0或空'; end; if RxDBLookupCombo1.Value='' then begin msgs:=msgs+#13#10+'费用名称不能为空'; end; if RxDBLookupCombo2.Value='' then begin msgs:=msgs+#13#10+'客户名称不能为空'; end; if wwDBLookupCombo4.Value='' then begin msgs:=msgs+#13#10+'标准不能为空'; end; if wwDBLookupCombo3.Value='' then begin msgs:=msgs+#13#10+'币别不能为空'; end; if table_new1.DataSet.Locate('客户名称','元增(付费)',[]) then begin msgs:=msgs+#13#10+'费用已经添加'; end; if RxDBLookupCombo2.Value<>'元增(付费)' then begin if MessageDlg('客户名称不等于元增(付费),是否继续添加',mtWarning,[mbyes,mbno],0)<>mryes then begin msgs:=msgs+#13#10+'客户名称不对'; end; end; if msgs<>'' then begin MessageDlg(msgs, mtConfirmation, [mbYes],0); exit; end; table_new1.DataSet.Insert; table_new1.DataSet['编号']:=table_new1.DataSet['编号']; table_new1.DataSet['标准']:=wwDBLookupCombo4.Value; table_new1.DataSet['类型']:='付'; table_new1.DataSet['费用状态']:=feestatus; table_new1.DataSet['审核人']:=employee; table_new1.DataSet['审核日期']:=now; table_new1.DataSet['录入人']:=employee; table_new1.DataSet['录入日期']:=now; table_new1.DataSet['提交日期']:=now; table_new1.DataSet['币别']:=wwDBLookupCombo3.Value; table_new1.DataSet['数量']:=1; table_new1.DataSet['汇率']:=FormatFloat('0.00;-0.00;0',StrToFloat(Edit4.text)); table_new1.DataSet['单价']:=FormatFloat('0.00;-0.00;0',StrToFloat(Edit2.text)); table_new1.DataSet['金额']:=FormatFloat('0.00;-0.00;0',StrToFloat(Edit3.text)); table_new1.DataSet['客户名称']:=RxDBLookupCombo2.Value; table_new1.DataSet['费用名称']:=RxDBLookupCombo1.Value; table_new1.DataSet['结算金额']:=0; table_new1.DataSet['开票金额']:=0; table_new1.DataSet['申请开票']:=0; table_new1.DataSet['申请金额']:=0; table_new1.DataSet['冲抵金额']:=0; table_new1.DataSet['是否对帐']:=0; table_new1.DataSet['是否垫付']:=0; table_new1.DataSet['不开发票']:=0; table_new1.DataSet['机密']:=0; table_new1.DataSet.Post; p_op_gain.Parameters.ParamByName('@con_no').value:=table_new1.DataSet.fieldbyname('编号').asstring; p_op_gain.ExecProc; end; procedure Tfrm_check_modify.FormShow(Sender: TObject); var str_list:Tstringlist; i,k,j:integer; begin wwDBLookupCombo3.Text:='USD'; //进费用模块需处理 //生成数据集录入费用时自动计算数量,客户名称 //海运业务 if (ywlb.Text='海运出口')or(ywlb.Text='海运进口') then begin frm_data_share.t_code_fee_unit.Filtered:=false; frm_data_share.t_code_fee_unit.Filter:='海运=1'; frm_data_share.t_code_fee_unit.Filtered:=true; t_bz_balance.close; t_bz_balance.open; t_bz_balance.Append; t_bz_balance['one']:='1-单票'; t_bz_balance['two']:='单票'; t_bz_balance['three']:=1; t_bz_balance.post; t_bz_balance.Append; t_bz_balance['one']:='2-重量'; t_bz_balance['two']:='重量'; t_bz_balance['three']:=s_w(4,table_new1.DataSet.DataSource.DataSet.fieldbyname('重量').asfloat/1000); t_bz_balance.post; t_bz_balance.Append; t_bz_balance['one']:='3-尺码'; t_bz_balance['two']:='尺码'; if table_new1.DataSet.DataSource.DataSet.fieldbyname('尺码').asfloat>1 then t_bz_balance['three']:=table_new1.DataSet.DataSource.DataSet.fieldbyname('尺码').asfloat else t_bz_balance['three']:=1; t_bz_balance.post; try t_bz_balance.Append; t_bz_balance['one']:='4-计费吨'; t_bz_balance['two']:='计费吨'; if s_w(4,table_new1.DataSet.DataSource.DataSet.fieldbyname('重量').asfloat/1000)>table_new1.DataSet.DataSource.DataSet.fieldbyname('尺码').asfloat then begin if s_w(4,table_new1.DataSet.DataSource.DataSet.fieldbyname('重量').asfloat/1000)>1 then t_bz_balance['three']:=s_w(4,table_new1.DataSet.DataSource.DataSet.fieldbyname('重量').asfloat/1000) else t_bz_balance['three']:=1; end else begin if table_new1.DataSet.DataSource.DataSet.fieldbyname('尺码').asfloat>1 then t_bz_balance['three']:=table_new1.DataSet.DataSource.DataSet.fieldbyname('尺码').asfloat else t_bz_balance['three']:=1; end; k:=0; t_bz_balance.post; t_bz_balance.Append; t_bz_balance['one']:='5-TEU'; t_bz_balance['two']:='TEU'; t_bz_balance['three']:=table_new1.DataSet.DataSource.DataSet.fieldbyname('箱TEU').asinteger; t_bz_balance.post; str_list:=Tstringlist.Create; str_list.Text:=table_new1.DataSet.DataSource.DataSet.fieldbyname('计费标准').asstring; for i:=0 to str_list.Count-1 do begin t_bz_balance.Append; t_bz_balance['one']:=inttostr(i+k+6)+'-'+copy(str_list[i],1,pos('*',str_list[i])-1); t_bz_balance['two']:=copy(str_list[i],pos('-',str_list[i])+1,length(str_list[i])+1-pos('-',str_list[i])); t_bz_balance['three']:=strtofloat(copy(str_list[i],pos('*',str_list[i])+1,pos('-',str_list[i])-pos('*',str_list[i])-1)); t_bz_balance.post; end; finally str_list.free; end; frm_data_share.t_code_fee_unit.First; while not frm_data_share.t_code_fee_unit.eof do begin t_bz_balance.Append; t_bz_balance['one']:=frm_data_share.t_code_fee_unit.fieldbyname('代码').asstring+'-'+frm_data_share.t_code_fee_unit.fieldbyname('标准名称').asstring; t_bz_balance['two']:=frm_data_share.t_code_fee_unit.fieldbyname('标准名称').asstring; t_bz_balance['three']:=frm_data_share.t_code_fee_unit.fieldbyname('默认数量').asfloat; t_bz_balance.post; frm_data_share.t_code_fee_unit.next; end; end; //空运业务 if (ywlb.Text='空运出口')or(ywlb.Text='空运进口') then begin try frm_data_share.t_code_fee_unit.Filtered:=false; frm_data_share.t_code_fee_unit.Filter:='空运=1'; frm_data_share.t_code_fee_unit.Filtered:=true; t_bz_balance.close; t_bz_balance.open; t_bz_balance.Append; t_bz_balance['one']:='1-单票'; t_bz_balance['two']:='单票'; t_bz_balance['three']:=1; t_bz_balance.post; t_bz_balance.Append; t_bz_balance['one']:='2-计价重量'; t_bz_balance['two']:='计价重量'; t_bz_balance['three']:=s_w(4,table_new1.DataSet.DataSource.DataSet.fieldbyname('计价重量').asfloat); t_bz_balance.post; t_bz_balance.Append; t_bz_balance['one']:='3-件数'; t_bz_balance['two']:='件数'; t_bz_balance['three']:=table_new1.DataSet.DataSource.DataSet.fieldbyname('件数').asfloat; t_bz_balance.post; t_bz_balance.Append; t_bz_balance['one']:='4-尺码'; t_bz_balance['two']:='尺码'; t_bz_balance['three']:=table_new1.DataSet.DataSource.DataSet.fieldbyname('尺码').asfloat; t_bz_balance.post; frm_data_share.t_code_fee_unit.First; while not frm_data_share.t_code_fee_unit.eof do begin t_bz_balance.Append; t_bz_balance['one']:=frm_data_share.t_code_fee_unit.fieldbyname('代码').asstring+'-'+frm_data_share.t_code_fee_unit.fieldbyname('标准名称').asstring; t_bz_balance['two']:=frm_data_share.t_code_fee_unit.fieldbyname('标准名称').asstring; t_bz_balance['three']:=frm_data_share.t_code_fee_unit.fieldbyname('默认数量').asfloat; t_bz_balance.post; frm_data_share.t_code_fee_unit.next; end; finally ; end; end; //监管车业务 if (ywlb.Text='监管车业务') then begin try t_bz_balance.close; t_bz_balance.open; t_bz_balance.Append; t_bz_balance['one']:='1-单票'; t_bz_balance['two']:='单票'; t_bz_balance['three']:=1; t_bz_balance.post; t_bz_balance.Append; t_bz_balance['one']:='2-重量'; t_bz_balance['two']:='重量'; t_bz_balance['three']:=s_w(4,table_new1.DataSet.DataSource.DataSet.fieldbyname('重量').asfloat); t_bz_balance.post; t_bz_balance.Append; t_bz_balance['one']:='3-件数'; t_bz_balance['two']:='件数'; t_bz_balance['three']:=table_new1.DataSet.DataSource.DataSet.fieldbyname('件数').asfloat; t_bz_balance.post; finally ; end; end; //铁路业务 if (ywlb.Text='铁路业务') then begin try t_bz_balance.close; t_bz_balance.open; t_bz_balance.Append; t_bz_balance['one']:='1-单票'; t_bz_balance['two']:='单票'; t_bz_balance['three']:=1; t_bz_balance.post; t_bz_balance.Append; t_bz_balance['one']:='2-件数'; t_bz_balance['two']:='件数'; t_bz_balance['three']:=table_new1.DataSet.DataSource.DataSet.fieldbyname('件数').asfloat; t_bz_balance.post; finally ; end; end; end; procedure Tfrm_check_modify.wwDBLookupCombo3Change(Sender: TObject); begin { IF frm_data_share.t_code_currency.Locate('币别',wwDBLookupCombo3.text,[])THEN begin Edit4.text:=FormatFloat('0.00;-0.00;0',frm_data_share.t_code_currency.fieldbyname('汇率').asfloat); end; } if frm_data_share.t_code_currency.Locate('币别',trim(wwDBLookupCombo3.text),[])THEN begin if trim(wwDBLookupCombo3.text)='USD' then begin Edit4.text:=FormatFloat('0.00;-0.00;0',getUsdExRate(table_new1.DataSet.DataSource.DataSet.fieldbyname('开船日期').asstring)); end else Edit4.text:=FormatFloat('0.00;-0.00;0',frm_data_share.t_code_currency.fieldbyname('汇率').asfloat); end; end; procedure Tfrm_check_modify.wwDBLookupCombo4Change(Sender: TObject); begin if not wwDBLookupCombo4.LookupTable.IsEmpty then if wwDBLookupCombo4.LookupTable.Locate('one',wwDBLookupCombo4.text,[])then begin Edit1.Text:=FormatFloat('0.00;-0.00;0', wwDBLookupCombo4.LookupTable.fieldbyname('three').asfloat); end; end; procedure Tfrm_check_modify.Edit2Change(Sender: TObject); var aQty,aPrice:Double; begin aQty:=strtoFloat(Edit1.text); aPrice:=strtoFloat(Edit2.text); Edit3.Text:=FormatFloat('0.00;-0.00;0',aQty*aPrice); end; end.