unit u_cw_pingzheng; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, bsSkinCtrls, ComCtrls, bsSkinTabs, dxExEdtr, dxCntner, dxTL, dxDBCtrl, dxDBGrid, StdCtrls, wwdbdatetimepicker, RxLookup, DB, ADODB,FileCtrl, dxDBTLCl, dxGrClms, Mask, wwdbedit, Wwdotdot, Wwdbcomb, Grids, DBGrids, ExtCtrls, DBGridEh, kbmMemTable, DBTables; type Tfrm_cw_pingzheng = class(TForm) t_op_seae: TADOQuery; t_op_seae1: TDataSource; t_cw_design: TADOQuery; t_cw_design1: TDataSource; t_op_seai: TADOQuery; t_op_seai1: TDataSource; t_op_airi1: TDataSource; t_op_airi: TADOQuery; t_op_aire: TADOQuery; t_op_aire1: TDataSource; bsSkinPanel2: TbsSkinPanel; bsSkinPageControl2: TbsSkinPageControl; tbbsVou: TbsSkinTabSheet; tbbalvou: TbsSkinTabSheet; bsSkinGroupBox2: TbsSkinGroupBox; bsSkinPanel10: TbsSkinPanel; Label25: TLabel; Label65: TLabel; Label26: TLabel; Label27: TLabel; Label28: TLabel; Edit9: TEdit; wwDBDateTimePicker17: TwwDBDateTimePicker; wwDBDateTimePicker18: TwwDBDateTimePicker; wwDBComboBox1: TwwDBComboBox; bsSkinPageControl1: TbsSkinPageControl; bsSkinTabSheet1: TbsSkinTabSheet; bsSkinPanel1: TbsSkinPanel; Label10: TLabel; Label3: TLabel; Label5: TLabel; Label8: TLabel; Label11: TLabel; wwDBDateTimePicker1: TwwDBDateTimePicker; Edit4: TEdit; wwDBDateTimePicker2: TwwDBDateTimePicker; Edit2: TEdit; wwDBDateTimePicker3: TwwDBDateTimePicker; wwDBDateTimePicker4: TwwDBDateTimePicker; bsSkinTabSheet2: TbsSkinTabSheet; bsSkinPanel4: TbsSkinPanel; Label2: TLabel; Label4: TLabel; Label6: TLabel; Label7: TLabel; Label9: TLabel; Label12: TLabel; wwDBDateTimePicker5: TwwDBDateTimePicker; Edit1: TEdit; wwDBDateTimePicker6: TwwDBDateTimePicker; Edit3: TEdit; wwDBDateTimePicker7: TwwDBDateTimePicker; wwDBDateTimePicker8: TwwDBDateTimePicker; bsSkinTabSheet3: TbsSkinTabSheet; bsSkinPanel6: TbsSkinPanel; Label13: TLabel; Label14: TLabel; Label15: TLabel; Label16: TLabel; Label17: TLabel; Label18: TLabel; wwDBDateTimePicker9: TwwDBDateTimePicker; Edit5: TEdit; wwDBDateTimePicker10: TwwDBDateTimePicker; Edit6: TEdit; wwDBDateTimePicker11: TwwDBDateTimePicker; wwDBDateTimePicker12: TwwDBDateTimePicker; bsSkinTabSheet4: TbsSkinTabSheet; bsSkinPanel8: TbsSkinPanel; Label19: TLabel; Label20: TLabel; Label21: TLabel; Label22: TLabel; Label23: TLabel; Label24: TLabel; wwDBDateTimePicker13: TwwDBDateTimePicker; Edit7: TEdit; wwDBDateTimePicker14: TwwDBDateTimePicker; Edit8: TEdit; wwDBDateTimePicker15: TwwDBDateTimePicker; wwDBDateTimePicker16: TwwDBDateTimePicker; bsSkinPanel12: TbsSkinPanel; DBGridEh1: TDBGridEh; DBGridEh4: TDBGridEh; DBGridEh5: TDBGridEh; DBGridEh6: TDBGridEh; DBGridEh7: TDBGridEh; TBVouList: TbsSkinTabSheet; bsSkinPanel16: TbsSkinPanel; t_op_balance: TADOQuery; t_op_balance1: TDataSource; bsSkinButton5: TbsSkinButton; t_op_balanceDSDesigner: TStringField; t_op_balanceDSDesigner2: TStringField; t_op_balanceDSDesigner3: TStringField; t_op_balanceDSDesigner4: TStringField; t_op_balanceDSDesigner5: TStringField; t_op_balanceDSDesigner6: TStringField; t_op_balanceDSDesigner7: TBCDField; t_op_balanceDSDesigner8: TBCDField; t_op_balanceDSDesigner9: TBCDField; t_op_balanceDSDesigner10: TStringField; t_op_balanceDSDesigner11: TStringField; t_op_balanceDSDesigner12: TStringField; t_op_balanceDSDesigner13: TDateTimeField; t_op_balanceDSDesigner14: TBooleanField; t_op_balanceDSDesigner15: TStringField; t_op_balanceDSDesigner16: TStringField; t_op_balanceDSDesigner17: TDateTimeField; t_op_balanceDSDesigner18: TStringField; t_op_balanceDSDesigner19: TStringField; t_op_balanceDSDesigner20: TDateTimeField; t_op_balanceDSDesigner21: TStringField; t_op_balanceDSDesigner22: TBooleanField; t_op_balanceDSDesigner23: TStringField; bsSkinButton10: TbsSkinButton; bsSkinButton3: TbsSkinButton; bsSkinButton1: TbsSkinButton; bsSkinButton4: TbsSkinButton; bsSkinButton6: TbsSkinButton; bsSkinButton7: TbsSkinButton; bsSkinButton9: TbsSkinButton; bsSkinButton11: TbsSkinButton; bsSkinButton12: TbsSkinButton; bsSkinButton14: TbsSkinButton; bsSkinButton15: TbsSkinButton; bsSkinButton16: TbsSkinButton; bsSkinButton18: TbsSkinButton; bsSkinButton19: TbsSkinButton; bsSkinButton20: TbsSkinButton; bsSkinCheckRadioBox1: TbsSkinCheckRadioBox; bsSkinCheckRadioBox2: TbsSkinCheckRadioBox; bsSkinCheckRadioBox3: TbsSkinCheckRadioBox; bsSkinCheckRadioBox4: TbsSkinCheckRadioBox; bsSkinCheckRadioBox5: TbsSkinCheckRadioBox; bsSkinPanel3: TbsSkinPanel; DatabaseVouitems: TDatabase; Label30: TLabel; wwDBDateTimePicker19: TwwDBDateTimePicker; Label31: TLabel; wwDBDateTimePicker20: TwwDBDateTimePicker; Label33: TLabel; EditMblNo: TEdit; EditOrdNoTo: TEdit; Label34: TLabel; EditOrdNoFrm: TEdit; Label35: TLabel; bsSkinButton2: TbsSkinButton; bsSkinButton8: TbsSkinButton; bsSkinButton13: TbsSkinButton; bsSkinPanel7: TbsSkinPanel; Splitter1: TSplitter; bsSkinPanel9: TbsSkinPanel; DBGridEh2: TDBGridEh; bsSkinPanel11: TbsSkinPanel; DBGridCarriageSum: TDBGridEh; dsrvouitems: TDataSource; dsrVou: TDataSource; memTblVou: TkbmMemTable; qryVouitems: TADOQuery; Query1: TQuery; bsSkinCheckRadioBox6: TbsSkinCheckRadioBox; RxDBLookupCombo2: TRxDBLookupCombo; Label29: TLabel; wwDBDateTimePicker21: TwwDBDateTimePicker; Label36: TLabel; RxDBLookupCombo6: TRxDBLookupCombo; SaveDialog1: TSaveDialog; bsSkinButton17: TbsSkinButton; bsSkinButton21: TbsSkinButton; bsSkinButton22: TbsSkinButton; bsSkinButton23: TbsSkinButton; bsSkinButton24: TbsSkinButton; bsSkinButton25: TbsSkinButton; Label37: TLabel; Edit10: TEdit; Label38: TLabel; Edit11: TEdit; Label39: TLabel; RxDBLookupCombo4: TRxDBLookupCombo; Label40: TLabel; RxDBLookupCombo1: TRxDBLookupCombo; Label1: TLabel; Label41: TLabel; RxDBLookupCombo3: TRxDBLookupCombo; Label42: TLabel; RxDBLookupCombo5: TRxDBLookupCombo; Label32: TLabel; RxDBLookupCombo7: TRxDBLookupCombo; Label43: TLabel; Edit12: TEdit; Label44: TLabel; RxDBLookupCombo8: TRxDBLookupCombo; Label45: TLabel; RxDBLookupCombo9: TRxDBLookupCombo; Label46: TLabel; RxDBLookupCombo10: TRxDBLookupCombo; Edit13: TEdit; Label47: TLabel; Label48: TLabel; RxDBLookupCombo11: TRxDBLookupCombo; Label49: TLabel; RxDBLookupCombo12: TRxDBLookupCombo; Label50: TLabel; RxDBLookupCombo13: TRxDBLookupCombo; Edit14: TEdit; Label51: TLabel; Label52: TLabel; RxDBLookupCombo14: TRxDBLookupCombo; Label53: TLabel; RxDBLookupCombo15: TRxDBLookupCombo; Label54: TLabel; RxDBLookupCombo16: TRxDBLookupCombo; Edit15: TEdit; Label55: TLabel; Label56: TLabel; Edit16: TEdit; Label57: TLabel; Edit17: TEdit; Label58: TLabel; Edit18: TEdit; Label59: TLabel; Edit19: TEdit; Label60: TLabel; Edit20: TEdit; Label61: TLabel; Edit21: TEdit; Label62: TLabel; Edit22: TEdit; Label63: TLabel; Edit23: TEdit; bsSkinCheckRadioBox7: TbsSkinCheckRadioBox; t_op_balanceDSDesigner24: TBCDField; t_op_balanceDSDesigner25: TBCDField; t_op_balanceDSDesigner26: TStringField; t_op_balanceDSDesigner27: TStringField; t_op_balanceDSDesigner28: TStringField; SQLConnectionAcc: TADOConnection; QryAcc: TADOQuery; tblObj: TADOTable; tblObjFClsID: TIntegerField; tblObjFObjID: TWideStringField; tblObjFObjName: TWideStringField; tblObjFUnit: TWideStringField; tblObjFDeleted: TBooleanField; tblObjFCompanyID: TWideStringField; tblObjFParentID: TWideStringField; tblObjFLevel: TIntegerField; tblObjFDetail: TBooleanField; tblObjFFullPath: TWideStringField; tblObjA1: TBooleanField; tblObjA2: TBooleanField; tblObjA3: TBooleanField; tblObjA4: TBooleanField; tblObjA5: TBooleanField; tblObjA6: TBooleanField; tblObjA7: TBooleanField; tblObjA8: TBooleanField; tblObjA9: TBooleanField; tblObjA10: TBooleanField; tblObjA11: TBooleanField; tblObjA12: TBooleanField; tblObjA13: TBooleanField; tblVouitems: TTable; procedure FormShow(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure bsSkinPageControl1Change(Sender: TObject); procedure bsSkinButton10Click(Sender: TObject); procedure bsSkinButton3Click(Sender: TObject); procedure bsSkinButton5Click(Sender: TObject); procedure bsSkinButton4Click(Sender: TObject); procedure bsSkinButton6Click(Sender: TObject); procedure bsSkinButton7Click(Sender: TObject); procedure bsSkinButton8Click(Sender: TObject); procedure bsSkinButton9Click(Sender: TObject); procedure bsSkinButton11Click(Sender: TObject); procedure bsSkinButton14Click(Sender: TObject); procedure bsSkinButton15Click(Sender: TObject); procedure bsSkinButton1Click(Sender: TObject); procedure bsSkinButton18Click(Sender: TObject); procedure bsSkinButton20Click(Sender: TObject); procedure bsSkinButton2Click(Sender: TObject); procedure DBGridEh2DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); procedure DBGridEh4DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); procedure DBGridEh5DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); procedure DBGridEh6DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); procedure DBGridEh7DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); procedure bsSkinButton12Click(Sender: TObject); procedure bsSkinButton16Click(Sender: TObject); procedure bsSkinButton17Click(Sender: TObject); procedure bsSkinButton21Click(Sender: TObject); procedure bsSkinButton22Click(Sender: TObject); procedure bsSkinButton23Click(Sender: TObject); procedure bsSkinButton24Click(Sender: TObject); procedure bsSkinButton13Click(Sender: TObject); procedure bsSkinButton25Click(Sender: TObject); procedure Edit12KeyPress(Sender: TObject; var Key: Char); procedure Edit10KeyPress(Sender: TObject; var Key: Char); procedure SQLConnectionAccBeforeConnect(Sender: TObject); procedure SQLConnectionAcc2BeforeConnect(Sender: TObject); private procedure CreateMemTbl; function NewDrCrVou(fDataSet:TDataSet;Mblno,ZDR:String;voudate:TDate):String; function NewDCVou(fDataSet:TDataSet;ZDR:String;voudate:TDatetime):Boolean; { Private declarations } public function cw_client_yingshou_error():boolean; function cw_client_yingfu_error():boolean; function cw_client_shouru_error():boolean; function cw_client_chengben_error():boolean; procedure cw_add_1(op_type:integer); function get_str(i:integer;head_str:string):widestring; { Public declarations } end; var frm_cw_pingzheng: Tfrm_cw_pingzheng; frm_cw_pingzheng_open:boolean; cw_load,cw_load_group:integer; frm_cw_load_iflog:boolean; implementation uses u_main, my_sys_function, dmAccu, u_data_share, VouItemStlu, u_sys_progress, u_ch_piliang_seae, u_ch_piliang_seai, u_ch_piliang_aire, u_ch_piliang_airi; {$R *.dfm} function Tfrm_cw_pingzheng.NewDrCrVou(fDataSet:TDataSet;Mblno,ZDR:String;voudate:TDate):String; var aQuery,aQuery2:TADOQuery; Dr,Cr,UDr,UCr,UDrttl,UCrttl,UsdExrate:Real; OrdNo:integer; aPeriod:String; function GetAccID(Corp,DC:String):String; var i:integer; aQuery:TADOQuery; FClsID:integer; CorpID:String; begin aQuery:=createADOQuery; with aQuery do try Close;SQL.Clear; SQL.Add('select 代码,代理 from t_crm_client where 客户简称='''+Corp+''''); Open; if DC='收' then if FieldByName('代理').AsBoolean then Result:=AccInfo.DebitAccIDU else Result:=AccInfo.DebitAccID else begin if FieldByName('代理').AsBoolean then Result:=AccInfo.CreditAccIDU else Result:=AccInfo.CreditAccID; end; finally FreeAndNil(aQuery); end; end; function GetCustID(CorpID,DC:String):String; var i:integer; aQuery:TADOQuery; begin result:=''; aQuery:=createADOQuery; with aQuery do try Close;SQL.Clear; SQL.Add('select 财务应收帐款代码,财务应付帐款代码 from t_crm_client where 客户简称='''+CorpID+''''); Open; if DC='收' then Result:=fieldByName('财务应收帐款代码').AsString else Result:=fieldByName('财务应付帐款代码').AsString; if result='' then showmessage('往来单位代码为空!'); finally FreeAndNil(aQuery); end; end; function GetEmpID(EmplName:String):String; begin with dmAcc.tempQuery do try Close;SQL.Clear; SQL.Add('select 财务软件代码 from t_sys_employee where 姓名='''+EmplName+''''); Open; if not FieldByName('财务软件代码').IsNull then Result:=FieldByName('财务软件代码').AsString else Result:='0'; finally Close; end; end; function GetDeptID(DeptName:String):String; var aQry:TAdoQuery; begin aQry:=CreateadoQuery; try aQry.Close; aQry.SQL.Clear; aQry.sql.add('select 财务软件代码 from t_sys_department where 部门名称='''+DeptName+''''); aQry.Open; result:=aQry.fieldByName('财务软件代码').asstring; finally FreeAndNil(aQry); end; end; function GetEmpDeptID(EmplName:String):String; var aQry:TAdoQuery; begin aQry:=CreateadoQuery; try aQry.Close; aQry.SQL.Clear; aQry.sql.add('select e.部门名称,d.财务软件代码 from t_sys_employee e left join t_sys_department d on (d.部门名称=e.部门名称) where e.姓名='''+EmplName+''''); aQry.Open; result:=aQry.fieldByName('财务软件代码').asstring; finally FreeAndNil(aQry); end; end; begin Result:=''; aQuery:=createADOQuery; aQuery2:=CreateADOQuery; Dr:=0.0; Cr:=0.0; UDr:=0.0; UCr:=0.0; UsdExRate:=StrToFloatDef(Edit10.Text,7.8); dmAcc.AdotblVou.Insert; dmAcc.AdotblVou.FieldByName('SourceType').AsInteger:=1; dmAcc.AdotblVou.FieldByName('ATTACHS').AsInteger:=1; dmAcc.AdotblVou.FieldByName('VKNO').AsString:='记'; dmAcc.AdotblVou.FieldByName('PREPARED').AsString:=RxDBLookupCombo6.DisplayValues[0]; dmAcc.AdotblVou.Post; dmAcc.AdotblVou.Edit; OrdNo:=dmAcc.AdotblVou.fieldByName('OrdNo').AsInteger; // try with aQuery,SQL do begin Close;sql.Clear; Add('SELECT t_ch_fee.客户名称,t_ch_fee.类型,t_ch_fee.汇率,t_ch_fee.币别,SUM(t_ch_fee.金额) AS 金额,SUM(t_ch_fee.金额*t_ch_fee.汇率) AS 合计金额 from t_ch_fee WHERE 类型=''收'' and 编号='''+fdataset.fieldbyname('编号').AsString+''' ' +'GROUP BY t_ch_fee.客户名称,t_ch_fee.类型,t_ch_fee.汇率,t_ch_fee.币别 ' +'ORDER BY t_ch_fee.客户名称,t_ch_fee.类型,t_ch_fee.币别'); Open; end; Result:=dmAcc.AdotblVou.fieldByName('VOUNO').AsString; aQuery.First; while not aQuery.Eof do begin dmAcc.AdotblVouItems.Insert; if aQuery.FieldByName('币别').AsString='USD' then begin dmAcc.AdotblVouItems.FieldByName('AccID').AsString:=AccInfo.DebitAccIDU; if bsSkinCheckRadioBox7.Checked then dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=aQuery.fieldByName('汇率').AsFloat else dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=UsdExRate; dmAcc.AdotblVouItems.FieldByName('FCYDR').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat), 0); dmAcc.AdotblVouItems.FieldByName('FCYCr').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('FCYNO').AsString:='USD'; if bsSkinCheckRadioBox7.Checked then dmAcc.AdotblVouItems.FieldByName('AmtDr').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat*aQuery.fieldByName('汇率').AsFloat), 0) else dmAcc.AdotblVouItems.FieldByName('AmtDr').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat*UsdExRate), 0); dmAcc.AdotblVouItems.FieldByName('AmtCr').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('EXPLAN').AsString:=fDataSet.fieldByName('业务编号').AsString; if bsSkinCheckRadioBox7.Checked then Dr:=DR+StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat*aQuery.fieldByName('汇率').AsFloat), 0) else Dr:=DR+StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat*UsdExRate), 0); end else begin dmAcc.AdotblVouItems.FieldByName('AccID').AsString:=AccInfo.DebitAccID; dmAcc.AdotblVouItems.FieldByName('AmtDr').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0',aQuery.fieldByName('金额').AsFloat),0); dmAcc.AdotblVouItems.FieldByName('AmtCr').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('FCYNO').AsString:='RMB'; dmAcc.AdotblVouItems.FieldByName('FCYDR').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('FCYCr').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('EXPLAN').AsString:=fDataSet.fieldByName('业务编号').AsString; Dr:=DR+StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat), 0); end; dmAcc.AdotblVouItems.FieldByName('CorpID').AsString:=GetCustID(aQuery.fieldByName('客户名称').AsString,'收'); dmAcc.AdotblVouItems.FieldByName('FIELD7').AsString:='客户'; dmAcc.AdotblVouItems.FieldByName('CorpBf').AsString:='F'; dmAcc.AdotblVouItems.FieldByName('DEPTID').AsString:=GetDeptID(fDataSet.fieldByName('销售部门').AsString); dmAcc.AdotblVouItems.FieldByName('EMPLID').AsString:=GetEmpID(fDataSet.fieldByName('揽货人').AsString); dmAcc.AdotblVouItems.FieldByName('BSNO').AsString:=Mblno; dmAcc.AdotblVouItems.Post; aQuery.Next; end; if DR<>0.00 then begin dmAcc.ADOtblVouItems.Insert; dmAcc.AdotblVouItems.FieldByName('AccID').AsString:=AccInfo.ProfitAccID; dmAcc.ADOtblVouItems.FieldByName('AmtCr').AsFloat:=DR; dmAcc.ADOtblVouItems.FieldByName('AmtDR').AsFloat:=0.0; dmAcc.ADOtblVouItems.FieldByName('FCYDR').AsFloat:=0.0; dmAcc.ADOtblVouItems.FieldByName('FCYCr').AsFloat:=0.0; dmAcc.ADOtblVouItems.FieldByName('FCYEXRATE').AsFloat:=0.0; dmAcc.ADOtblVouItems.FieldByName('EXPLAN').AsString:='收入'+fDataSet.fieldByName('业务编号').AsString; dmAcc.AdotblVouItems.FieldByName('BSNO').AsString:=Mblno; dmAcc.ADOtblVouItems.Post; end; with aQuery,SQL do begin Close;sql.Clear; Add('SELECT t_ch_fee.客户名称,t_ch_fee.类型,t_ch_fee.汇率,t_ch_fee.币别,SUM(t_ch_fee.金额) AS 金额,SUM(t_ch_fee.金额*t_ch_fee.汇率) AS 合计金额 from t_ch_fee WHERE 类型=''付'' and 编号='''+fdataset.fieldbyname('编号').AsString+''' ' +'GROUP BY t_ch_fee.客户名称,t_ch_fee.类型,t_ch_fee.汇率,t_ch_fee.币别 ' +'ORDER BY t_ch_fee.客户名称,t_ch_fee.类型,t_ch_fee.币别'); Open; end; Result:=dmAcc.AdotblVou.fieldByName('VOUNO').AsString; aQuery.First; while not aQuery.Eof do begin dmAcc.AdotblVouItems.Insert; if aQuery.FieldByName('币别').AsString='USD' then begin dmAcc.AdotblVouItems.FieldByName('AccID').AsString:=AccInfo.CreditAccIDU; if bsSkinCheckRadioBox7.Checked then dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=aQuery.fieldByName('汇率').AsFloat else dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=UsdExRate; dmAcc.AdotblVouItems.FieldByName('FCYCR').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0',aQuery.fieldByName('金额').AsFloat),0); dmAcc.AdotblVouItems.FieldByName('FCYDr').AsFloat:=0.0; if bsSkinCheckRadioBox7.Checked then dmAcc.AdotblVouItems.FieldByName('AmtCr').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0',aQuery.fieldByName('金额').AsFloat*aQuery.fieldByName('汇率').AsFloat), 0) else dmAcc.AdotblVouItems.FieldByName('AmtCr').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0',aQuery.fieldByName('金额').AsFloat*UsdExRate), 0); dmAcc.AdotblVouItems.FieldByName('AmtDr').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('EXPLAN').AsString:=fDataSet.fieldByName('业务编号').AsString; if bsSkinCheckRadioBox7.Checked then Cr:=CR+StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat*aQuery.fieldByName('汇率').AsFloat), 0) else Cr:=CR+StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat*UsdExRate), 0); end else begin dmAcc.AdotblVouItems.FieldByName('AccID').AsString:=AccInfo.CreditAccID; dmAcc.AdotblVouItems.FieldByName('AmtCr').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0',aQuery.fieldByName('金额').AsFloat),0); dmAcc.AdotblVouItems.FieldByName('AmtDR').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('FCYDR').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('FCYCr').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('EXPLAN').AsString:=fDataSet.fieldByName('业务编号').AsString; Cr:=CR+StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat), 0); end; dmAcc.AdotblVouItems.FieldByName('CorpID').AsString:=GetCustID(aQuery.fieldByName('客户名称').AsString,'付'); dmAcc.AdotblVouItems.FieldByName('FIELD7').AsString:='供应商'; dmAcc.AdotblVouItems.FieldByName('CorpBf').AsString:='F'; dmAcc.AdotblVouItems.FieldByName('DEPTID').AsString:=GetDeptID(fDataSet.fieldByName('销售部门').AsString); dmAcc.AdotblVouItems.FieldByName('EMPLID').AsString:=GetEmpID(fDataSet.fieldByName('揽货人').AsString); dmAcc.AdotblVouItems.FieldByName('BSNO').AsString:=Mblno; dmAcc.AdotblVouItems.Post; aQuery.Next; end; if CR<>0.00 then begin dmAcc.ADOtblVouItems.Insert; dmAcc.AdotblVouItems.FieldByName('AccID').AsString:=AccInfo.ImpProfitAccID; dmAcc.ADOtblVouItems.FieldByName('AmtCr').AsFloat:=0.0; dmAcc.ADOtblVouItems.FieldByName('AmtDR').AsFloat:=CR; dmAcc.ADOtblVouItems.FieldByName('FCYDR').AsFloat:=0.0; dmAcc.ADOtblVouItems.FieldByName('FCYCr').AsFloat:=0.0; dmAcc.ADOtblVouItems.FieldByName('FCYEXRATE').AsFloat:=0.0; dmAcc.ADOtblVouItems.FieldByName('EXPLAN').AsString:='支出'+fDataSet.fieldByName('业务编号').AsString; dmAcc.AdotblVouItems.FieldByName('BSNO').AsString:=Mblno; dmAcc.ADOtblVouItems.Post; end; ordno:=dmAcc.AdotblVou.fieldbyname('ordno').asinteger; dmAcc.AdotblVou.Post; { + except dmAcc.TempQuery.Close; dmAcc.TempQuery.SQL.Clear; dmAcc.TempQuery.SQL.Add('delete from vouchers where ordno=:mOrdNo'); dmAcc.TempQuery.Parameters.ParamByName('mOrdNo').value:=OrdNo; dmAcc.TempQuery.ExecSQL; end; } // finally FreeAndNil(aQuery); FreeAndNil(aQuery2); // end; end; function Tfrm_cw_pingzheng.NewDCVou(fDataSet:TDataSet;ZDR:String;voudate:TDatetime):Boolean; var aQuery,aQuery2:TADOQuery; mAccOK:Boolean; aModal:TModalResult; StlAmtDR,StlAmtCR,StlUSDAmtDR,StlUSDAmtCR,UsdExRate:Double; ordno:integer; function GetCustID(CorpID,DC:String):String; var i:integer; aQuery:TADOQuery; begin aQuery:=createADOQuery; with aQuery do try Close;SQL.Clear; SQL.Add('select 财务应收帐款代码,财务应付帐款代码 from t_crm_client where 客户简称='''+CorpID+''''); Open; if DC='收' then Result:=fieldByName('财务应收帐款代码').AsString else Result:=fieldByName('财务应付帐款代码').AsString; if result='' then showmessage('往来单位代码为空!'); finally FreeAndNil(aQuery); end; end; function GetEmpID(EmplName:String):String; begin with dmAcc.tempQuery do try Close;SQL.Clear; SQL.Add('select 财务软件代码 from t_sys_employee where 姓名='''+EmplName+''''); Open; if not FieldByName('财务软件代码').IsNull then Result:=FieldByName('财务软件代码').AsString else Result:='0'; finally Close; end; end; function GetDeptID(DeptName:String):String; var aQry:TAdoQuery; begin aQry:=CreateadoQuery; try aQry.Close; aQry.SQL.Clear; aQry.sql.add('select 财务软件代码 from t_sys_department where 部门名称='''+DeptName+''''); aQry.Open; result:=aQry.fieldByName('财务软件代码').asstring; finally FreeAndNil(aQry); end; end; function GetEmpDeptID(EmplName:String):String; var aQry:TAdoQuery; begin aQry:=CreateadoQuery; try aQry.Close; aQry.SQL.Clear; aQry.sql.add('select e.部门名称,d.财务软件代码 from t_sys_employee e left join t_sys_department d on (d.部门名称=e.部门名称) where e.姓名='''+EmplName+''''); aQry.Open; result:=aQry.fieldByName('财务软件代码').asstring; finally FreeAndNil(aQry); end; end; function GetBankAccid(bank:string):String; var aQuery:TAdoQuery; begin if fdataSet.FieldByName('结算方式').AsString='现金' then result:=t_cw_design.FieldByName('应收核算一').AsString else begin if bank='' then begin if (fDataSet.fieldbyname('银行').AsString='') and (fDataSet.fieldbyname('银行代码').AsString='') then begin result:=''; end else begin aQuery:=CreateAdoQuery; try with aQuery do begin Close;sql.Clear; sql.Add('select 财务软件代码 from t_sys_bank where 代码='''+fDataSet.fieldbyname('银行').AsString+''' or 银行名称='''+fDataSet.fieldbyname('银行').AsString+''''); Open; if Recordcount<>0 then result:=fieldbyname('财务软件代码').AsString else result:=''; end; finally freeAndNil(aQuery); end; end; end else begin aQuery:=CreateAdoQuery; try with aQuery do begin Close;sql.Clear; if bank='USD' then sql.Add('select 财务软件代码 from t_sys_bank where 代码='''+fDataSet.fieldbyname('美元银行代码').AsString+'''') else sql.Add('select 财务软件代码 from t_sys_bank where 代码='''+fDataSet.fieldbyname('银行代码').AsString+''' or 银行名称='''+fDataSet.fieldbyname('银行').AsString+''''); Open; if Recordcount<>0 then result:=fieldbyname('财务软件代码').AsString else result:=''; end; finally freeAndNil(aQuery); end; end; end; end; begin Result:=false; aQuery:=CreateADOQuery; aQuery2:=CreateADOQuery; StlAmtDR:=0.00; StlAmtCR:=0.00; StlUSDAmtDR:=0.00; StlUSDAmtCR:=0.00; UsdExRate:=StrToFloatDef(Edit10.Text,7.8); with aQuery,SQL do begin Add('Select s.业务编号,s.主提单号,s.委托单位,s.销售部门,s.揽货人,s.客户名称,s.收付,s.币别,s.汇率,S.船名,s.航次,'); Add('sum(S.金额) 金额,sum(S.金额*s.汇率) 合计金额'); Add('from v_fee_balance_items s'); Add('where S.工作编号='''+fDataSet.fieldbyName('帐单编号').AsString+''''); Add('Group By s.业务编号,s.主提单号,s.委托单位,s.销售部门,s.揽货人,s.客户名称,s.收付,s.币别,s.汇率,S.船名,s.航次'); Add('Order By s.业务编号,s.主提单号,s.委托单位,s.销售部门,s.揽货人,s.客户名称,s.收付,s.币别,s.汇率,S.船名,s.航次'); Open; end; aQuery.First; OrdNo:=dmAcc.AdotblVou.fieldByName('OrdNo').AsInteger; dmAcc.AdotblVouItems.Open; while not aQuery.Eof do begin dmAcc.AdotblVouItems.Insert; if aQuery.FieldByName('收付').AsString='收' then begin if aQuery.FieldByName('币别').AsString='USD' then begin dmAcc.AdotblVouItems.FieldByName('AccID').AsString:=AccInfo.DebitAccIDU; dmAcc.AdotblVouItems.FieldByName('FIELD7').AsString:='客户'; if bsSkinCheckRadioBox7.Checked then dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=aQuery.fieldByName('汇率').AsFloat else dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=UsdExRate; dmAcc.AdotblVouItems.FieldByName('FCYDR').AsFloat:=0.00; dmAcc.AdotblVouItems.FieldByName('FCYCr').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat), 0); dmAcc.AdotblVouItems.FieldByName('AmtDr').AsFloat:=0.00; if bsSkinCheckRadioBox7.Checked then dmAcc.AdotblVouItems.FieldByName('AmtCr').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat*aQuery.fieldByName('汇率').AsFloat), 0) else dmAcc.AdotblVouItems.FieldByName('AmtCr').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat*UsdExRate), 0); if bsSkinCheckRadioBox7.Checked then StlUSDAmtDR:=StlUSDAmtDR+StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat*aQuery.fieldByName('汇率').AsFloat), 0) else StlUSDAmtDR:=StlUSDAmtDR+StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat*UsdExRate), 0); end else begin dmAcc.AdotblVouItems.FieldByName('AccID').AsString:=AccInfo.DebitAccID; dmAcc.AdotblVouItems.FieldByName('FIELD7').AsString:='客户'; dmAcc.AdotblVouItems.FieldByName('AmtDr').AsFloat:=0.00; dmAcc.AdotblVouItems.FieldByName('AmtCr').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0',aQuery.fieldByName('金额').AsFloat),0); dmAcc.AdotblVouItems.FieldByName('FCYDR').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('FCYCr').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=0.0; StlAmtDR:=StlAmtDR+StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat), 0); end; end else begin if aQuery.FieldByName('币别').AsString='USD' then begin dmAcc.AdotblVouItems.FieldByName('AccID').AsString:=AccInfo.CreditAccIDU; dmAcc.AdotblVouItems.FieldByName('FIELD7').AsString:='供应商'; if bsSkinCheckRadioBox7.Checked then dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=aQuery.fieldByName('汇率').AsFloat else dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=UsdExRate; dmAcc.AdotblVouItems.FieldByName('FCYCR').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('FCYDr').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0',aQuery.fieldByName('金额').AsFloat),0); dmAcc.AdotblVouItems.FieldByName('AmtCr').AsFloat:=0.0; if bsSkinCheckRadioBox7.Checked then dmAcc.AdotblVouItems.FieldByName('AmtDr').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat*aQuery.fieldByName('汇率').AsFloat), 0) else dmAcc.AdotblVouItems.FieldByName('AmtDr').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat*UsdExRate), 0); if bsSkinCheckRadioBox7.Checked then StlUSDAmtCR:=StlUSDAmtCR+StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat*aQuery.fieldByName('汇率').AsFloat), 0) else StlUSDAmtCR:=StlUSDAmtCR+StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat*UsdExRate), 0); end else begin dmAcc.AdotblVouItems.FieldByName('AccID').AsString:=AccInfo.CreditAccID; dmAcc.AdotblVouItems.FieldByName('FIELD7').AsString:='供应商'; dmAcc.AdotblVouItems.FieldByName('AmtCr').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('AmtDR').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0',aQuery.fieldByName('金额').AsFloat),0); dmAcc.AdotblVouItems.FieldByName('FCYDR').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('FCYCr').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=0.0; StlAmtCR:=StlAmtCR+StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat), 0); end; end; dmAcc.AdotblVouItems.FieldByName('EXPLAN').AsString:=aQuery.fieldByName('业务编号').AsString; dmAcc.AdotblVouItems.FieldByName('CorpID').AsString:=GetCustID(aQuery.fieldByName('客户名称').AsString,aQuery.fieldbyname('收付').AsString); dmAcc.AdotblVouItems.FieldByName('CorpBf').AsString:='F'; dmAcc.AdotblVouItems.FieldByName('DEPTID').AsString:=GetDeptID(aQuery.fieldByName('销售部门').AsString); dmAcc.AdotblVouItems.FieldByName('EMPLID').AsString:=GetEmpID(aQuery.fieldByName('揽货人').AsString); dmAcc.AdotblVouItems.FieldByName('BSNO').AsString:=aQuery.fieldByName('业务编号').AsString; dmAcc.AdotblVouItems.Post; aQuery.next; end; if fDataSet.FieldByName('美元金额').Asfloat<>0 then begin dmAcc.AdotblVouItems.Insert; dmAcc.AdotblVouItems.FieldByName('AccID').AsString:=GetbankAccid('USD'); if fdataset.fieldbyname('类型').asstring='收' then begin dmAcc.AdotblVouItems.FieldByName('FCYDR').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0',fdataset.fieldbyname('美元金额').asfloat),0); dmAcc.AdotblVouItems.FieldByName('FCYCr').AsFloat:=0.0; if bsSkinCheckRadioBox7.Checked then dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=aQuery.fieldByName('汇率').AsFloat else dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=UsdExRate; dmAcc.AdotblVouItems.FieldByName('AmtCr').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('AmtDR').AsFloat:=StlUSDAmtDR; end else begin dmAcc.AdotblVouItems.FieldByName('FCYDR').AsFloat:=0.00; dmAcc.AdotblVouItems.FieldByName('FCYCr').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0',fdataset.fieldbyname('美元金额').asfloat),0); if bsSkinCheckRadioBox7.Checked then dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=aQuery.fieldByName('汇率').AsFloat else dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=UsdExRate; dmAcc.AdotblVouItems.FieldByName('AmtCr').AsFloat:=StlUSDAmtCR; dmAcc.AdotblVouItems.FieldByName('AmtDR').AsFloat:=0.00; end; dmAcc.AdotblVouItems.FieldByName('FSETTLCODE').AsString:=fdataset.fieldbyname('结算方式').asstring; dmAcc.AdotblVouItems.FieldByName('FSETTLENO').AsString:=fdataset.fieldbyname('相关号码').asstring; dmAcc.AdotblVouItems.FieldByName('CorpID').AsString:=GetCustID(aQuery.fieldByName('客户名称').AsString,aQuery.fieldbyname('收付').AsString); dmAcc.AdotblVouItems.FieldByName('EXPLAN').AsString:=fdataset.fieldbyname('类型').asstring+aQuery.fieldByName('业务编号').AsString; dmAcc.AdotblVouItems.FieldByName('BSNO').AsString:=aQuery.fieldByName('业务编号').AsString; dmAcc.AdotblVouItems.post; end; if fDataSet.FieldByName('人民币金额').Asfloat<>0 then begin dmAcc.AdotblVouItems.Insert; dmAcc.AdotblVouItems.FieldByName('AccID').AsString:=GetbankAccid('RMB'); if fdataset.fieldbyname('类型').asstring='收' then begin dmAcc.AdotblVouItems.FieldByName('FCYDR').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('FCYCr').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('AmtCr').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('AmtDR').AsFloat:=StlAmtDR; end else begin dmAcc.AdotblVouItems.FieldByName('FCYDR').AsFloat:=0.00; dmAcc.AdotblVouItems.FieldByName('FCYCr').AsFloat:=0.00; dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=0.00; dmAcc.AdotblVouItems.FieldByName('AmtCr').AsFloat:=StlAmtCR; dmAcc.AdotblVouItems.FieldByName('AmtDR').AsFloat:=0.00; end; dmAcc.AdotblVouItems.FieldByName('FSETTLCODE').AsString:=fdataset.fieldbyname('结算方式').asstring; dmAcc.AdotblVouItems.FieldByName('FSETTLENO').AsString:=fdataset.fieldbyname('相关号码').asstring; dmAcc.AdotblVouItems.FieldByName('CorpID').AsString:=GetCustID(aQuery.fieldByName('客户名称').AsString,aQuery.fieldbyname('收付').AsString); dmAcc.AdotblVouItems.FieldByName('EXPLAN').AsString:=fdataset.fieldbyname('类型').asstring+aQuery.fieldByName('业务编号').AsString; dmAcc.AdotblVouItems.FieldByName('BSNO').AsString:=aQuery.fieldByName('业务编号').AsString; dmAcc.AdotblVouItems.post; end; FreeAndNil(aQuery); end; procedure Tfrm_cw_pingzheng.CreateMemTbl; begin memTblVou.Close; memTblVou.Fields.Clear; with memTblVou.FieldDefs do begin Clear; Add('Selected', ftsmallint, 0, false); Add('status', ftsmallint, 0, false); Add('VOUDATE', ftDate, 0, false); Add('accyear', ftinteger, 0, false); Add('AccMonth', ftsmallint, 0, false); Add('VKNO', ftString, 6, false); Add('VOUNO',ftString,16,false); Add('ORDNO', ftinteger, 0, false); Add('AMTDR', ftFloat, 0, false); Add('AMTCR', ftFloat, 0, false); Add('ATTACHS', ftinteger, 0, false); Add('SourceType', ftinteger, 0, false); Add('PREPARED', ftString,10, false); memTblVou.CreateTable; end; end; function Tfrm_cw_pingzheng.cw_client_yingshou_error():boolean; begin end; function Tfrm_cw_pingzheng.cw_client_yingfu_error():boolean; begin end; function Tfrm_cw_pingzheng.cw_client_shouru_error():boolean; begin end; function Tfrm_cw_pingzheng.cw_client_chengben_error():boolean; begin end; function Tfrm_cw_pingzheng.get_str(i:integer;head_str:string):widestring; var str:widestring; begin case i of 1: begin str:=head_str; if t_cw_design.fieldbyname('业务种类').asboolean then begin str:=str+'海运出口'; end; if t_cw_design.fieldbyname('业务编号').asboolean then begin str:=str+t_op_seae.fieldbyname('业务编号').asstring; end; if t_cw_design.fieldbyname('委托编号').asboolean then begin str:=str+t_op_seae.fieldbyname('委托编号').asstring; end; if t_cw_design.fieldbyname('主提单号').asboolean then begin str:=str+t_op_seae.fieldbyname('主提单号').asstring; end; if t_cw_design.fieldbyname('分提单号').asboolean then begin str:=str+t_op_seae.fieldbyname('分提单号').asstring; end; if t_cw_design.fieldbyname('揽货人').asboolean then begin str:=str+t_op_seae.fieldbyname('揽货人').asstring; end; if t_cw_design.fieldbyname('销售部门').asboolean then begin str:=str+t_op_seae.fieldbyname('销售部门').asstring; end; if t_cw_design.fieldbyname('船名').asboolean then begin str:=str+t_op_seae.fieldbyname('船名').asstring; end; if t_cw_design.fieldbyname('航次').asboolean then begin str:=str+t_op_seae.fieldbyname('航次').asstring; end; if t_cw_design.fieldbyname('航期').asboolean then begin str:=str+t_op_seae.fieldbyname('开船日期').asstring; end; if t_cw_design.fieldbyname('港口').asboolean then begin str:=str+t_op_seae.fieldbyname('卸货港').asstring; end; if t_cw_design.fieldbyname('操作员').asboolean then begin str:=str+t_op_seae.fieldbyname('操作员').asstring; end; end; 2: begin str:=head_str; if t_cw_design.fieldbyname('业务种类').asboolean then begin str:=str+'海运进口'; end; if t_cw_design.fieldbyname('业务编号').asboolean then begin str:=str+t_op_seai.fieldbyname('业务编号').asstring; end; if t_cw_design.fieldbyname('委托编号').asboolean then begin str:=str+t_op_seai.fieldbyname('委托编号').asstring; end; if t_cw_design.fieldbyname('主提单号').asboolean then begin str:=str+t_op_seai.fieldbyname('主提单号').asstring; end; if t_cw_design.fieldbyname('分提单号').asboolean then begin str:=str+t_op_seai.fieldbyname('分提单号').asstring; end; if t_cw_design.fieldbyname('揽货人').asboolean then begin str:=str+t_op_seai.fieldbyname('揽货人').asstring; end; if t_cw_design.fieldbyname('销售部门').asboolean then begin str:=str+t_op_seai.fieldbyname('销售部门').asstring; end; if t_cw_design.fieldbyname('船名').asboolean then begin str:=str+t_op_seai.fieldbyname('船名').asstring; end; if t_cw_design.fieldbyname('航次').asboolean then begin str:=str+t_op_seai.fieldbyname('航次').asstring; end; if t_cw_design.fieldbyname('航期').asboolean then begin str:=str+t_op_seai.fieldbyname('进口日期').asstring; end; if t_cw_design.fieldbyname('港口').asboolean then begin str:=str+t_op_seai.fieldbyname('装货港').asstring; end; if t_cw_design.fieldbyname('操作员').asboolean then begin str:=str+t_op_seai.fieldbyname('操作员').asstring; end; end; 3: begin str:=head_str; if t_cw_design.fieldbyname('业务种类').asboolean then begin str:=str+'空运出口'; end; if t_cw_design.fieldbyname('业务编号').asboolean then begin str:=str+t_op_aire.fieldbyname('业务编号').asstring; end; if t_cw_design.fieldbyname('委托编号').asboolean then begin str:=str+t_op_aire.fieldbyname('委托编号').asstring; end; if t_cw_design.fieldbyname('主提单号').asboolean then begin str:=str+t_op_aire.fieldbyname('主运单号').asstring; end; if t_cw_design.fieldbyname('分提单号').asboolean then begin str:=str+t_op_aire.fieldbyname('分运单号').asstring; end; if t_cw_design.fieldbyname('揽货人').asboolean then begin str:=str+t_op_aire.fieldbyname('揽货人').asstring; end; if t_cw_design.fieldbyname('销售部门').asboolean then begin str:=str+t_op_aire.fieldbyname('销售部门').asstring; end; if t_cw_design.fieldbyname('船名').asboolean or t_cw_design.fieldbyname('航次').asboolean then begin str:=str+t_op_aire.fieldbyname('一程航班').asstring; end; if t_cw_design.fieldbyname('航期').asboolean then begin str:=str+t_op_aire.fieldbyname('一程开航日期').asstring; end; if t_cw_design.fieldbyname('港口').asboolean then begin str:=str+t_op_aire.fieldbyname('目的港').asstring; end; if t_cw_design.fieldbyname('操作员').asboolean then begin str:=str+t_op_aire.fieldbyname('操作员').asstring; end; end; 4: begin str:=head_str; if t_cw_design.fieldbyname('业务种类').asboolean then begin str:=str+'空运进口'; end; if t_cw_design.fieldbyname('业务编号').asboolean then begin str:=str+t_op_airi.fieldbyname('业务编号').asstring; end; if t_cw_design.fieldbyname('委托编号').asboolean then begin str:=str+t_op_airi.fieldbyname('委托编号').asstring; end; if t_cw_design.fieldbyname('主提单号').asboolean then begin str:=str+t_op_airi.fieldbyname('主运单号').asstring; end; if t_cw_design.fieldbyname('分提单号').asboolean then begin str:=str+t_op_airi.fieldbyname('分运单号').asstring; end; if t_cw_design.fieldbyname('揽货人').asboolean then begin str:=str+t_op_airi.fieldbyname('揽货人').asstring; end; if t_cw_design.fieldbyname('销售部门').asboolean then begin str:=str+t_op_airi.fieldbyname('销售部门').asstring; end; if t_cw_design.fieldbyname('船名').asboolean or t_cw_design.fieldbyname('航次').asboolean then begin str:=str+t_op_airi.fieldbyname('航班号').asstring; end; if t_cw_design.fieldbyname('航期').asboolean then begin str:=str+t_op_airi.fieldbyname('进口日期').asstring; end; if t_cw_design.fieldbyname('港口').asboolean then begin str:=str+t_op_airi.fieldbyname('始发港').asstring; end; if t_cw_design.fieldbyname('操作员').asboolean then begin str:=str+t_op_airi.fieldbyname('操作员').asstring; end; end; end; result:=str; end; procedure Tfrm_cw_pingzheng.cw_add_1(op_type:integer); var num_accept_rmb,num_accept_usd,num_accept_all,num_pay_rmb,num_pay_usd,num_pay_all:real; bill_count:integer; if_do:boolean; get_date:Tdatetime; begin { } end; procedure Tfrm_cw_pingzheng.FormShow(Sender: TObject); var str:widestring; begin t_cw_design.open; AccInfo.DebitAccID:=trim(t_cw_design.fieldbyname('应收账款').AsString); AccInfo.DebitAccIDU:=t_cw_design.fieldbyname('应收账款外币').AsString; AccInfo.CreditAccID:=t_cw_design.fieldbyname('应付账款').AsString; AccInfo.CreditAccIDU:=t_cw_design.fieldbyname('应付账款外币').AsString; AccInfo.ProfitAccID:=t_cw_design.fieldbyname('主营业务收入').AsString; AccInfo.ImpProfitAccID:=t_cw_design.fieldbyname('主营业务支出').AsString; AccInfo.ProfitAccIDU:=t_cw_design.fieldbyname('主营收入外币').AsString; AccInfo.ImpProfitAccIDU:=t_cw_design.fieldbyname('主营支出外币').AsString; AccInfo.AirProfitAccID:=t_cw_design.fieldbyname('空运主营业务收入').AsString; AccInfo.AirImpProfitAccID:=t_cw_design.fieldbyname('空运主营业务支出').AsString; AccInfo.AirProfitAccIDU:=t_cw_design.fieldbyname('空运主营收入外币').AsString; AccInfo.AirImpProfitAccIDU:=t_cw_design.fieldbyname('空运主营支出外币').AsString; CreateMemTbl; wwDBDateTimePicker21.Date:=now; RxDBLookupCombo6.DisplayValue:=employee; { with SQLConnectionAcc do begin // Params.LoadFromFile(ExtractFilePath(ParamStr(0))+'Account.ini'); try Connected:=true; except exit; end; end; } // tblObj.Open; { with SQLConnectionAcc2 do begin // Params.LoadFromFile(ExtractFilePath(ParamStr(0))+'Account.ini'); try Connected:=true; except exit; end; end; tblitems2.Open; } // tblCustomer.Open; // tblAgent.Open; // tblAccID.Open; end; procedure Tfrm_cw_pingzheng.FormClose(Sender: TObject; var Action: TCloseAction); begin frm_cw_pingzheng_open:=false; frm_cw_load_iflog:=false; frm_cw_pingzheng.Hide; frm_cw_pingzheng.ManualFloat(frm_cw_pingzheng.BoundsRect ); frm_main.freeTabs('frm_cw_pingzheng'); action:=cafree; frm_cw_pingzheng:=nil; end; procedure Tfrm_cw_pingzheng.bsSkinPageControl1Change(Sender: TObject); begin if frm_cw_pingzheng_open then begin t_op_seae.close; t_op_seai.close; t_op_aire.close; t_op_airi.close; end; end; procedure Tfrm_cw_pingzheng.bsSkinButton10Click(Sender: TObject); var str:widestring; begin str:='where 费用状态='+''''+'费用封帐'+''''; // str:='where 1=1 '; if not bsSkinCheckRadioBox1.Checked then str:=str+' and (财务 is null or 财务=0)'; if Edit4.text<>'' then begin if Edit11.text<>'' then str:=str+' and 业务编号>='+''''+Edit4.text+''''+' and 业务编号<='+''''+Edit11.text+'''' else str:=str+' and 业务编号 like '+''''+'%'+Edit4.text+'%'+''''; end; if Edit16.text<>'' then begin if Edit17.text<>'' then str:=str+' and 财务凭证>='+''''+Edit16.text+''''+' and 财务凭证<='+''''+Edit17.text+'''' else str:=str+' and 财务凭证 like '+''''+'%'+Edit16.text+'%'+''''; end; if RxDBLookupCombo4.DisplayValue<>''then str:=str+' and 销售部门='+''''+RxDBLookupCombo4.DisplayValues[0]+''''; if RxDBLookupCombo1.DisplayValue<>''then str:=str+' and 揽货人='+''''+RxDBLookupCombo1.DisplayValues[0]+''''; if RxDBLookupCombo3.DisplayValue<>''then str:=str+' and 业务编号 in (select distinct bsno from v_vouitems where prepared='+''''+RxDBLookupCombo3.DisplayValues[0]+''''+')'; if Edit2.text<>'' then str:=str+' and 主提单号 like '+''''+'%'+Edit2.text+'%'+''''; if wwDBDateTimePicker1.text<>''then str:=str+' and 开船日期>='+''''+wwDBDateTimePicker1.text+''''; if wwDBDateTimePicker2.text<>''then str:=str+' and 开船日期<='+''''+wwDBDateTimePicker2.text+''''; if wwDBDateTimePicker3.text<>''then str:=str+' and 会计期间>='+''''+wwDBDateTimePicker3.text+''''; if wwDBDateTimePicker4.text<>''then str:=str+' and 会计期间<='+''''+wwDBDateTimePicker4.text+''''; t_op_seae.close; t_op_seae.sql.clear; t_op_seae.sql.add('select * from t_op_seae '+str+' order by 业务编号'); t_op_seae.open; end; procedure Tfrm_cw_pingzheng.bsSkinButton3Click(Sender: TObject); begin Edit4.text:=''; Edit2.text:=''; wwDBDateTimePicker1.text:=''; wwDBDateTimePicker2.text:=''; wwDBDateTimePicker3.text:=''; wwDBDateTimePicker4.text:=''; end; procedure Tfrm_cw_pingzheng.bsSkinButton5Click(Sender: TObject); begin close; end; procedure Tfrm_cw_pingzheng.bsSkinButton4Click(Sender: TObject); var str:widestring; begin str:='where 费用状态='+''''+'费用封帐'+''''; // str:='where 1=1 '; if not bsSkinCheckRadioBox2.Checked then str:=str+' and (财务 is null or 财务=0)'; if Edit1.text<>'' then begin if Edit13.text<>'' then str:=str+' and 业务编号>='+''''+Edit1.text+''''+' and 业务编号<='+''''+Edit13.text+'''' else str:=str+' and 业务编号 like '+''''+'%'+Edit1.text+'%'+''''; end; if Edit18.text<>'' then begin if Edit19.text<>'' then str:=str+' and 财务凭证>='+''''+Edit18.text+''''+' and 财务凭证<='+''''+Edit19.text+'''' else str:=str+' and 财务凭证 like '+''''+'%'+Edit18.text+'%'+''''; end; if RxDBLookupCombo8.DisplayValue<>''then str:=str+' and 销售部门='+''''+RxDBLookupCombo8.DisplayValues[0]+''''; if RxDBLookupCombo9.DisplayValue<>''then str:=str+' and 揽货人='+''''+RxDBLookupCombo9.DisplayValues[0]+''''; if RxDBLookupCombo10.DisplayValue<>''then str:=str+' and 业务编号 in (select distinct bsno from v_vouitems where prepared='+''''+RxDBLookupCombo10.DisplayValues[0]+''''+')'; if Edit3.text<>''then str:=str+' and 主提单号 like '+''''+'%'+Edit3.text+'%'+''''; if wwDBDateTimePicker5.text<>''then str:=str+' and 进口日期>='+''''+wwDBDateTimePicker5.text+''''; if wwDBDateTimePicker6.text<>''then str:=str+' and 进口日期<='+''''+wwDBDateTimePicker6.text+''''; if wwDBDateTimePicker7.text<>''then str:=str+' and 会计期间>='+''''+wwDBDateTimePicker7.text+''''; if wwDBDateTimePicker8.text<>''then str:=str+' and 会计期间<='+''''+wwDBDateTimePicker8.text+''''; t_op_seai.close; t_op_seai.sql.clear; t_op_seai.sql.add('select * from t_op_seai '+str+' order by 业务编号'); t_op_seai.open; end; procedure Tfrm_cw_pingzheng.bsSkinButton6Click(Sender: TObject); begin Edit1.text:=''; Edit3.text:=''; wwDBDateTimePicker5.text:=''; wwDBDateTimePicker6.text:=''; wwDBDateTimePicker7.text:=''; wwDBDateTimePicker8.text:=''; end; procedure Tfrm_cw_pingzheng.bsSkinButton7Click(Sender: TObject); var i,ordno:integer; aQuery:TAdoQuery; begin if wwDBDateTimePicker21.Text='' then begin MessageDlg('请首先设置记账日期!',mterror,[mbyes],0); exit; end; if RxDBLookupCombo6.DisplayValue='' then begin MessageDlg('请首先设置制单人!',mterror,[mbyes],0); exit; end; dmacc:=TdmAcc.Create(self); aQuery:=CreateAdoQuery; try dmAcc.ADOtblVou.Open; dmAcc.ADOtblVouItems.Open; aVKNO:=1; aQuery.Close; aQuery.SQL.Clear; aQuery.SQL.add('update t_op_seai set 财务=1,财务凭证=:财务凭证 where 业务编号=:业务编号'); VoucherDate:=wwDBDateTimePicker21.Date; if DBGridEh4.SelectedRows.Count>1 then begin if not ASSIGNED(frm_sys_progress) then frm_sys_progress:=tfrm_sys_progress.Create(self); try frm_sys_progress.bsSkinGauge1.ProgressText:='正在生成凭证请稍后。。。'; frm_sys_progress.Show; frm_sys_progress.bsSkinGauge1.MaxValue:=DBGridEh4.SelectedRows.Count; frm_sys_progress.bsSkinGauge1.MinValue:=0; frm_sys_progress.bsSkinGauge1.Value:=0; frm_sys_progress.Update; for i:=0 to DBGridEh4.SelectedRows.Count-1 do begin t_op_seai.GotoBookmark(Pointer(DBGridEh4.SelectedRows.Items[I])); if t_op_seai['财务'] then begin MessageDlg('业务编号:'+t_op_seai['业务编号']+'已经生成凭证,无法重新生成!',mterror,[mbyes],0); end else begin NewDrCrVou(t_op_seai,t_op_seai['主提单号'],t_op_seai.fieldbyname('船名').AsString+'/'+t_op_seai.fieldbyname('航次').AsString,wwDBDateTimePicker21.Date); aQuery.Parameters.ParamByName('财务凭证').Value:=dmacc.ADOTblVou.fieldbyname('ordno').AsString; aQuery.Parameters.ParamByName('业务编号').Value:=t_op_seai.fieldbyname('业务编号').AsString; aQuery.ExecSQL; end; frm_sys_progress.bsSkinGauge1.Value:=frm_sys_progress.bsSkinGauge1.Value+1; end; finally freeAndNil(frm_sys_progress); end; end else begin NewDrCrVou(t_op_seai,t_op_seai['主提单号'],t_op_seai.fieldbyname('船名').AsString+'/'+t_op_seai.fieldbyname('航次').AsString,wwDBDateTimePicker21.Date); aQuery.Parameters.ParamByName('财务凭证').Value:=dmacc.ADOTblVou.fieldbyname('ordno').AsString; aQuery.Parameters.ParamByName('业务编号').Value:=t_op_seai.fieldbyname('业务编号').AsString; aQuery.ExecSQL; end; // ordno:=dmAcc.AdotblVou.fieldbyname('ordno').asinteger; { except dmAcc.TempQuery.Close; dmAcc.TempQuery.SQL.Clear; dmAcc.TempQuery.SQL.Add('delete from vouchers where ordno=:mOrdNo'); dmAcc.TempQuery.Parameters.ParamByName('mOrdNo').value:=OrdNo; dmAcc.TempQuery.ExecSQL; end; } finally dmAcc.AdotblVouItems.Close; dmAcc.AdotblVou.Close; freeAndNil(dmacc); end; bsSkinButton4.OnClick(sender); end; procedure Tfrm_cw_pingzheng.bsSkinButton8Click(Sender: TObject); var aQuery:TADOQuery; Str:String; begin if not bsSkinCheckRadioBox6.checked then str:=str+' and v.Status=0 '; if wwDBDateTimePicker19.text<>''then str:=str+' and v.voudate>='+''''+wwDBDateTimePicker19.text+''''; if wwDBDateTimePicker20.text<>''then str:=str+' and v.voudate<='+''''+wwDBDateTimePicker20.text+''''; if EditOrdNoFrm.text<>''then str:=str+' and v.ordno>='+''+EditOrdNoFrm.text+''; if EditOrdNoTo.text<>''then str:=str+' and v.ordno<='+''+EditOrdNoTo.text+''; if RxDBLookupCombo5.DisplayValue<>''then str:=str+' and v.prepared='+''''+RxDBLookupCombo5.DisplayValues[0]+''''; aQuery:=CreateAdoQuery; try with aQuery do begin Close;SQL.Clear; SQL.Add('Select 0 selected,V.* from Vouchers V where 1=1 '); SQL.Add(str); SQL.Add('Order by V.ORDNO'); Open; end; memTblVou.LoadFromDataSet(aQuery,[]); finally freeAndNil(aQuery); end; if memtblvou.IsEmpty then exit; qryVouitems.Close; qryVouitems.sql.Clear; qryVouitems.SQL.Add('select * from vouitems where ordno=:ordno order by ordno,itemno'); qryVouitems.Open; end; procedure Tfrm_cw_pingzheng.bsSkinButton9Click(Sender: TObject); var str:widestring; begin str:='where 费用状态='+''''+'费用封帐'+''''; // str:='where 1=1 '; if not bsSkinCheckRadioBox3.Checked then str:=Str+' and (财务 is null or 财务=0)'; if Edit5.text<>'' then begin if Edit14.text<>'' then str:=str+' and 业务编号>='+''''+Edit5.text+''''+' and 业务编号<='+''''+Edit14.text+'''' else str:=str+' and 业务编号 like '+''''+'%'+Edit5.text+'%'+''''; end; if Edit20.text<>'' then begin if Edit21.text<>'' then str:=str+' and 财务凭证>='+''''+Edit20.text+''''+' and 财务凭证<='+''''+Edit21.text+'''' else str:=str+' and 财务凭证 like '+''''+'%'+Edit20.text+'%'+''''; end; if RxDBLookupCombo11.DisplayValue<>''then str:=str+' and 销售部门='+''''+RxDBLookupCombo11.DisplayValues[0]+''''; if RxDBLookupCombo12.DisplayValue<>''then str:=str+' and 揽货人='+''''+RxDBLookupCombo12.DisplayValues[0]+''''; if RxDBLookupCombo13.DisplayValue<>''then str:=str+' and 业务编号 in (select distinct bsno from v_vouitems where prepared='+''''+RxDBLookupCombo13.DisplayValues[0]+''''+')'; if Edit6.text<>''then str:=str+' and 主运单号 like '+''''+'%'+Edit6.text+'%'+''''; if wwDBDateTimePicker9.text<>''then str:=str+' and 一程开航日期>='+''''+wwDBDateTimePicker9.text+''''; if wwDBDateTimePicker10.text<>''then str:=str+' and 一程开航日期<='+''''+wwDBDateTimePicker10.text+''''; if wwDBDateTimePicker11.text<>''then str:=str+' and 会计期间>='+''''+wwDBDateTimePicker11.text+''''; if wwDBDateTimePicker12.text<>''then str:=str+' and 会计期间<='+''''+wwDBDateTimePicker12.text+''''; t_op_aire.close; t_op_aire.sql.clear; t_op_aire.sql.add('select * from t_op_aire '+str+' order by 业务编号'); t_op_aire.open; end; procedure Tfrm_cw_pingzheng.bsSkinButton11Click(Sender: TObject); begin Edit5.text:=''; Edit6.text:=''; wwDBDateTimePicker9.text:=''; wwDBDateTimePicker10.text:=''; wwDBDateTimePicker11.text:=''; wwDBDateTimePicker12.text:=''; end; procedure Tfrm_cw_pingzheng.bsSkinButton14Click(Sender: TObject); var str:widestring; begin str:='where 费用状态='+''''+'费用封帐'+''''; // str:='where 1=1 '; if not bsSkinCheckRadioBox4.Checked then str:=Str+' and (财务 is null or 财务=0)'; if Edit7.text<>'' then begin if Edit15.text<>'' then str:=str+' and 业务编号>='+''''+Edit7.text+''''+' and 业务编号<='+''''+Edit15.text+'''' else str:=str+' and 业务编号 like '+''''+'%'+Edit7.text+'%'+''''; end; if Edit22.text<>'' then begin if Edit23.text<>'' then str:=str+' and 财务凭证>='+''''+Edit22.text+''''+' and 财务凭证<='+''''+Edit23.text+'''' else str:=str+' and 财务凭证 like '+''''+'%'+Edit22.text+'%'+''''; end; if RxDBLookupCombo14.DisplayValue<>''then str:=str+' and 销售部门='+''''+RxDBLookupCombo14.DisplayValues[0]+''''; if RxDBLookupCombo15.DisplayValue<>''then str:=str+' and 揽货人='+''''+RxDBLookupCombo15.DisplayValues[0]+''''; if RxDBLookupCombo16.DisplayValue<>''then str:=str+' and 业务编号 in (select distinct bsno from v_vouitems where prepared='+''''+RxDBLookupCombo16.DisplayValues[0]+''''+')'; if Edit8.text<>''then str:=str+' and 主运单号 like '+''''+'%'+Edit8.text+'%'+''''; if wwDBDateTimePicker13.text<>''then str:=str+' and 进口日期>='+''''+wwDBDateTimePicker13.text+''''; if wwDBDateTimePicker14.text<>''then str:=str+' and 进口日期<='+''''+wwDBDateTimePicker14.text+''''; if wwDBDateTimePicker15.text<>''then str:=str+' and 会计期间>='+''''+wwDBDateTimePicker15.text+''''; if wwDBDateTimePicker16.text<>''then str:=str+' and 会计期间<='+''''+wwDBDateTimePicker16.text+''''; t_op_airi.close; t_op_airi.sql.clear; t_op_airi.sql.add('select * from t_op_airi '+str+' order by 业务编号'); t_op_airi.open; end; procedure Tfrm_cw_pingzheng.bsSkinButton15Click(Sender: TObject); begin Edit7.text:=''; Edit8.text:=''; wwDBDateTimePicker13.text:=''; wwDBDateTimePicker14.text:=''; wwDBDateTimePicker15.text:=''; wwDBDateTimePicker16.text:=''; end; procedure Tfrm_cw_pingzheng.bsSkinButton1Click(Sender: TObject); var i,ordno:integer; aQuery:TAdoQuery; begin if wwDBDateTimePicker21.Text='' then begin MessageDlg('请首先设置记账日期!',mterror,[mbyes],0); exit; end; if RxDBLookupCombo6.DisplayValue='' then begin MessageDlg('请首先设置制单人!',mterror,[mbyes],0); exit; end; dmacc:=TdmAcc.Create(self); aQuery:=CreateAdoQuery; // try dmAcc.ADOtblVou.Open; dmAcc.ADOtblVouItems.Open; aVKNO:=1; aQuery.Close; aQuery.SQL.Clear; aQuery.SQL.add('update t_op_seae set 财务=1,财务凭证=:财务凭证 where 业务编号=:业务编号'); VoucherDate:=wwDBDateTimePicker21.Date; if DBGridEh1.SelectedRows.Count>1 then begin if not ASSIGNED(frm_sys_progress) then frm_sys_progress:=tfrm_sys_progress.Create(self); try frm_sys_progress.bsSkinGauge1.ProgressText:='正在生成凭证请稍后。。。'; frm_sys_progress.Show; frm_sys_progress.bsSkinGauge1.MaxValue:=DBGridEh1.SelectedRows.Count; frm_sys_progress.bsSkinGauge1.MinValue:=0; frm_sys_progress.bsSkinGauge1.Value:=0; frm_sys_progress.Update; for i:=0 to DBGridEh1.SelectedRows.Count-1 do begin t_op_seae.GotoBookmark(Pointer(DBGridEh1.SelectedRows.Items[I])); if t_op_seae['财务'] then begin MessageDlg('业务编号:'+t_op_seae['业务编号']+'已经生成凭证,无法重新生成!',mterror,[mbyes],0); end else begin NewDrCrVou(t_op_seae,t_op_seae['主提单号'],t_op_seae.fieldbyname('船名').AsString+'/'+t_op_seae.fieldbyname('航次').AsString,wwDBDateTimePicker21.Date); aQuery.Parameters.ParamByName('财务凭证').Value:=dmacc.ADOTblVou.fieldbyname('ordno').AsString; aQuery.Parameters.ParamByName('业务编号').Value:=t_op_seae.fieldbyname('业务编号').AsString; aQuery.ExecSQL; end; frm_sys_progress.bsSkinGauge1.Value:=frm_sys_progress.bsSkinGauge1.Value+1; end; finally freeAndNil(frm_sys_progress); end; end else begin if t_op_seae['财务'] then begin MessageDlg('业务编号:'+t_op_seae['业务编号']+'已经生成凭证,无法重新生成!',mterror,[mbyes],0); end else begin NewDrCrVou(t_op_seae,t_op_seae['主提单号'],t_op_seae.fieldbyname('船名').AsString+'/'+t_op_seae.fieldbyname('航次').AsString,wwDBDateTimePicker21.Date); aQuery.Parameters.ParamByName('财务凭证').Value:=dmacc.ADOTblVou.fieldbyname('ordno').AsString; aQuery.Parameters.ParamByName('业务编号').Value:=t_op_seae.fieldbyname('业务编号').AsString; aQuery.ExecSQL; end; end; { except dmAcc.TempQuery.Close; dmAcc.TempQuery.SQL.Clear; dmAcc.TempQuery.SQL.Add('delete from vouchers where ordno=:mOrdNo'); dmAcc.TempQuery.Parameters.ParamByName('mOrdNo').value:=OrdNo; dmAcc.TempQuery.ExecSQL; end; } // finally dmAcc.AdotblVouItems.Close; dmAcc.AdotblVou.Close; freeAndNil(dmacc); // end; bsSkinButton10.OnClick(sender); // showmessage('完成'); end; procedure Tfrm_cw_pingzheng.bsSkinButton18Click(Sender: TObject); var Str:String; begin str:='where 1=1 '; if not bsSkinCheckRadioBox5.Checked then str:=str+' and (财务 is null or 财务=0)'; if Edit4.text<>''then str:=str+' and 帐单编号 like '+''''+'%'+Edit4.text+'%'+''''; if Edit12.text<>''then str:=str+' and 结算金额='+Trim(Edit12.text); if RxDBLookupCombo2.DisplayValue<>''then str:=str+' and 客户名称 ='+''''+RxDBLookupCombo2.DisplayValues[1]+''''; if RxDBLookupCombo7.DisplayValue<>''then str:=str+' and 结算人 ='+''''+RxDBLookupCombo7.DisplayValues[0]+''''; if wwDBDateTimePicker17.text<>''then str:=str+' and 结算日期>='+''''+wwDBDateTimePicker17.text+''''; if wwDBDateTimePicker18.text<>''then str:=str+' and 结算日期<='+''''+wwDBDateTimePicker18.text+''''; if wwDBComboBox1.Text<>'' then begin if wwDBComboBox1.ItemIndex=0 then str:=str+' and 类型=''收''' else str:=str+' and 类型=''付'''; end; t_op_balance.close; t_op_balance.sql.clear; t_op_balance.sql.add('select * from t_ch_balance '+str+' order by 帐单编号'); t_op_balance.open; end; procedure Tfrm_cw_pingzheng.bsSkinButton20Click(Sender: TObject); var i,ordno:integer; aQuery:TAdoQuery; aModal:TModalResult; mAccOK:boolean; begin if wwDBDateTimePicker21.Text='' then begin MessageDlg('请首先设置记账日期!',mterror,[mbyes],0); exit; end; if RxDBLookupCombo6.DisplayValue='' then begin MessageDlg('请首先设置制单人!',mterror,[mbyes],0); exit; end; dmacc:=TdmAcc.Create(self); aQuery:=CreateAdoQuery; // try dmAcc.ADOtblVou.Open; dmAcc.ADOtblVouItems.Open; aVKNO:=1; aQuery.Close; aQuery.SQL.Clear; aQuery.SQL.add('update t_ch_balance set 财务=1,财务凭证=:财务凭证 where 帐单编号=:帐单编号'); VoucherDate:=wwDBDateTimePicker21.Date; // try dmAcc.AdotblVou.Insert; dmAcc.AdotblVou.FieldByName('SourceType').AsInteger:=2; dmAcc.AdotblVou.FieldByName('ATTACHS').AsInteger:=1; dmAcc.AdotblVou.FieldByName('VKNO').AsString:='记'; dmAcc.AdotblVou.FieldByName('PREPARED').AsString:=RxDBLookupCombo6.DisplayValues[0]; dmAcc.AdotblVou.Post; dmAcc.AdotblVou.Edit; if DBGridEh7.SelectedRows.Count>1 then begin if not ASSIGNED(frm_sys_progress) then frm_sys_progress:=tfrm_sys_progress.Create(self); // try frm_sys_progress.bsSkinGauge1.ProgressText:='正在生成凭证请稍后。。。'; frm_sys_progress.Show; frm_sys_progress.bsSkinGauge1.MaxValue:=DBGridEh7.SelectedRows.Count; frm_sys_progress.bsSkinGauge1.MinValue:=0; frm_sys_progress.bsSkinGauge1.Value:=0; frm_sys_progress.Update; for i:=0 to DBGridEh7.SelectedRows.Count-1 do begin t_op_balance.GotoBookmark(Pointer(DBGridEh7.SelectedRows.Items[I])); if t_op_balance['财务'] then begin MessageDlg('帐单编号:'+t_op_balance['帐单编号']+'已经生成凭证,无法重新生成!',mterror,[mbyes],0); end else begin NewDCVou(t_op_balance,RxDBLookupCombo6.DisplayValues[0],wwDBDateTimePicker21.Date); aQuery.Parameters.ParamByName('财务凭证').Value:=dmacc.ADOTblVou.fieldbyname('ordno').AsString; aQuery.Parameters.ParamByName('帐单编号').Value:=t_op_balance.fieldbyname('帐单编号').AsString; aQuery.ExecSQL; end; frm_sys_progress.bsSkinGauge1.Value:=frm_sys_progress.bsSkinGauge1.Value+1; end; // finally freeAndNil(frm_sys_progress); // end; end else begin NewDCVou(t_op_balance,RxDBLookupCombo6.DisplayValues[0],wwDBDateTimePicker21.Date); aQuery.Parameters.ParamByName('财务凭证').Value:=dmacc.ADOTblVou.fieldbyname('ordno').AsString; aQuery.Parameters.ParamByName('帐单编号').Value:=t_op_balance.fieldbyname('帐单编号').AsString; aQuery.ExecSQL; end; ordno:=dmAcc.AdotblVou.fieldbyname('ordno').asinteger; dmAcc.AdotblVou.Post; FrmVouItemStl:=TFrmVouItemStl.Create(Application); // try dmACC.AdotblVouItems.Last; FrmVouItemStl.DBGridVouItems.SelectedField:=dmACC.AdotblVouItems.FieldByName('AccID'); FrmVouItemStl.ShowModal; mAccOK:=false; aModal:=frmVouItemStl.ModalResult; mAccOK:=aModal=mrok; if mAccOK then begin if dmAcc.AdotblVouItems.State in [dsEdit,dsInsert] then dmAcc.AdotblVouItems.Post; if dmAcc.AdotblVou.State in [dsEdit,dsInsert] then dmAcc.AdotblVou.Post; end else begin dmAcc.TempQuery.Close; dmAcc.TempQuery.SQL.Clear; dmAcc.TempQuery.SQL.Add('delete from vouchers where ordno=:mOrdNo'); dmAcc.TempQuery.Parameters.ParamByName('mOrdNo').value:=OrdNo; dmAcc.TempQuery.ExecSQL; dmAcc.TempQuery.Close; dmAcc.TempQuery.SQL.Clear; dmAcc.TempQuery.SQL.Add('update t_ch_balance set 财务=0,财务凭证='''' where 财务凭证='''+inttostr(OrdNo)+''''); // dmAcc.TempQuery.Parameters.ParamByName('mOrdNo').value:=OrdNo; dmAcc.TempQuery.ExecSQL; end; // finally freeAndNil(FrmVouItemStl); // end; { except dmAcc.TempQuery.Close; dmAcc.TempQuery.SQL.Clear; dmAcc.TempQuery.SQL.Add('delete from vouchers where ordno=:mOrdNo'); dmAcc.TempQuery.Parameters.ParamByName('mOrdNo').value:=OrdNo; dmAcc.TempQuery.ExecSQL; end; } // finally dmAcc.AdotblVouItems.Close; dmAcc.AdotblVou.Close; freeAndNil(dmacc); // end; bsSkinButton18.OnClick(sender); end; procedure Tfrm_cw_pingzheng.bsSkinButton2Click(Sender: TObject); var aQuery:TADOQuery; Str,source,dbffile,exepath,adbftable:String; connectstr:wideString; selcount,itemno:integer; function GetSelCount:integer; begin result:=0; memtblvou.First; while not memtblvou.Eof do begin result:=result+1; memtblvou.Next; end; end; begin { if not selectDirectory('选择导出文件目录','',source) then begin messagedlg( '必须选择导出路径才能导出凭证文件',mterro,mbyes,0); exit; end; } if not memtblVou.Active then exit; selcount:=GetSelCount; if selcount=0 then begin messagedlg( '没有选择要导出的凭证,不能导出',mtError,[mbyes],0); exit; end; { cwconnect.Connected:=false; tblvouitems.Active:=false; exepath:=extractfilepath(paramstr(0))+'vouitems.dbf'; if not fileexists(exepath) then begin messagedlg( '原始凭证文件不存在,请重新设置',mtError,[mbyes],0); exit; end; source:=extractfilepath(exepath); adbftable:=extractfilename(exepath); connectstr:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='+source+';Mode=Share Deny None;'; connectstr:=connectstr+'Extended Properties=dBase 5.0;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=18;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;'; connectstr:=connectstr+'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';// 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+source+';Extended Properties=dBase 5.0;Persist Security Info=False'; cwconnect.ConnectionString:=connectstr; tblvouitems.TableName:=adbftable; cwconnect.Connected:=true; } DatabaseVouitems.Connected:=true; // tblvouitems.Active:=true; { Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('delete from vouitems'); Query1.ExecSQL; } tblVouitems.Active:=true; tblVouitems.First; while not tblVouitems.Eof do begin tblvouitems.Delete; end; memtblVou.First; aQuery:=CreateADOQuery; aQuery.SQL.Add('Update Vouchers set Status=1 where ordno=:OrdNo'); if not ASSIGNED(frm_sys_progress) then frm_sys_progress:=tfrm_sys_progress.Create(self); // try frm_sys_progress.bsSkinGauge1.ProgressText:='正在生成凭证请稍后。。。'; frm_sys_progress.Show; frm_sys_progress.bsSkinGauge1.MaxValue:=selcount; frm_sys_progress.bsSkinGauge1.MinValue:=0; frm_sys_progress.bsSkinGauge1.Value:=0; frm_sys_progress.Update; while not memtblVou.Eof do begin if memtblVou.FieldByName('Selected').AsInteger=1 then begin qryVouitems.First; itemno:=0; while not qryVouitems.Eof do begin tblVouitems.Insert; tblVouitems.FieldByName('FDATE').AsDateTime:=memTblVou.fieldByName('VouDate').AsDateTime; // tblVouitems.FieldByName('FTRANSDATE').AsDateTime:=memTblVou.fieldByName('VouDate').AsDateTime; tblVouitems.FieldByName('FPeriod').Asinteger:=memTblVou.fieldByName('AccMonth').AsInteger; tblVouitems.FieldByName('FGROUP').AsString:=memTblVou.FieldByName('VKNO').AsString; tblVouitems.FieldByName('FNUM').AsInteger:=qryVouitems.FieldByName('OrdNO').AsInteger; tblVouitems.FieldByName('FENTRYID').AsInteger:=itemno; itemno:=itemno+1; tblVouitems.FieldByName('FEXP').AsString:=qryVouitems.FieldByName('ExPlan').AsString; tblVouitems.FieldByName('FACCTID').AsString:=qryVouitems.fieldByName('ACCID').AsString; tblVouitems.FieldByName('FTRANSID').AsString:=qryVouitems.FieldByName('bsNo').AsString; if (trim(qryVouitems.FieldByName('AccID').AsString)=trim(AccInfo.DebitAccID)) or (trim(qryVouitems.FieldByName('AccID').AsString)=trim(AccInfo.CreditAccID)) or (trim(qryVouitems.FieldByName('AccID').AsString)=trim(AccInfo.DebitAccIDU)) or (trim(qryVouitems.FieldByName('AccID').AsString)=trim(AccInfo.CreditAccIDU)) then begin tblVouitems.FieldByName('FCLSNAME1').AsString:=qryVouitems.FieldByName('FIELD7').AsString; tblVouitems.FieldByName('FOBJID1').AsString:=qryVouitems.FieldByName('CorpID').AsString; tblVouitems.FieldByName('FOBJNAME1').AsString:=qryVouitems.FieldByName('CorpID').AsString; { tblVouitems.FieldByName('FCLSNAME2').AsString:='往来单位'; tblVouitems.FieldByName('FOBJID2').AsString:=qryVouitems.FieldByName('CorpID').AsString; tblVouitems.FieldByName('FOBJNAME2').AsString:=qryVouitems.FieldByName('CorpID').AsString; } end; if (qryVouitems.FieldByName('FCYDR').AsFloat<>0) OR (qryVouitems.FieldByName('FCYCR').AsFloat<>0) then begin tblVouitems.FieldByName('FCYID').AsString:='USD'; tblVouitems.FieldByName('FFCYAMT').AsFloat:=qryVouitems.fieldByName('FCYDR').AsFloat+qryVouitems.fieldByName('FCYCR').AsFloat; tblVouitems.FieldByName('FEXCHRATE').AsFloat:=qryVouitems.fieldByName('FCYEXRATE').AsFloat; end else begin tblVouitems.FieldByName('FCYID').AsString:='RMB'; tblVouitems.FieldByName('FFCYAMT').AsFloat:=qryVouitems.fieldByName('AMTDR').AsFloat+qryVouitems.fieldByName('AMTCR').AsFloat; tblVouitems.FieldByName('FEXCHRATE').AsFloat:=1; end; tblVouitems.FieldByName('FPRICE').AsFloat:=0; tblVouitems.FieldByName('FDebit').AsFloat:=qryVouitems.fieldByName('AMTDR').AsFloat; tblVouitems.FieldByName('FCredit').AsFloat:=qryVouitems.fieldByName('AMTCR').AsFloat; tblVouitems.FieldByName('FDC').AsString:=qryVouitems.FieldByName('DC').AsString; tblVouitems.FieldByName('FATTCHMENT').Asinteger:=memTblVou.FieldByName('ATTACHS').Asinteger;; tblVouitems.FieldByName('FPOSTED').AsBoolean:=False; tblVouitems.FieldByName('FDELETED').AsBoolean:=False; tblVouitems.FieldByName('FSERIALNO').Asinteger:=qryVouitems.FieldByName('OrdNO').AsInteger; tblVouitems.FieldByName('FPREPARE').AsString:=memtblVou.FieldByName('PREPARED').AsString; tblVouitems.FieldByName('FSETTLCODE').AsString:=qryVouitems.FieldByName('FSETTLCODE').AsString; tblVouitems.Post; qryVouitems.Next; end; aQuery.Parameters.ParamByName('OrdNO').value:=qryVouitems.fieldByName('OrdNO').AsInteger; aQuery.ExecSQL; frm_sys_progress.bsSkinGauge1.Value:=frm_sys_progress.bsSkinGauge1.Value+1; end; memTblVou.Next; end; // finally FreeAndNil(aQuery); freeandnil(frm_sys_progress); // end; tblVouitems.Active:=false; // cwconnect.Connected:=false; DatabaseVouitems.Connected:=false; MessageDlg('已经将凭证输出到文件凭证文件中',mtInformation,[mbOK],0); // GetVouitems; bsSkinButton8Click(sender); end; procedure Tfrm_cw_pingzheng.DBGridEh2DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); begin with TDBGridEh(Sender), Canvas, Brush do begin case memTblVou.FieldByName('Status').AsInteger of 1 : Color:=$00FBE8FF;//完成 end; if (gdSelected in State)or(gdFocused in State) then begin Font.Color:=Color; Color:=$00C08080; end; DefaultDrawColumnCell(Rect, dataCol,Column, State); end; end; procedure Tfrm_cw_pingzheng.DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); begin with TDBGridEh(Sender), Canvas, Brush do begin if t_op_seae['财务'] then Color:=$00FBE8FF;//完成 if (gdSelected in State)or(gdFocused in State) then begin Font.Color:=Color; Color:=$00C08080; end; DefaultDrawColumnCell(Rect, dataCol,Column, State); end; end; procedure Tfrm_cw_pingzheng.DBGridEh4DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); begin with TDBGridEh(Sender), Canvas, Brush do begin if t_op_seai['财务'] then Color:=$00FBE8FF;//完成 if (gdSelected in State)or(gdFocused in State) then begin Font.Color:=Color; Color:=$00C08080; end; DefaultDrawColumnCell(Rect, dataCol,Column, State); end; end; procedure Tfrm_cw_pingzheng.DBGridEh5DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); begin with TDBGridEh(Sender), Canvas, Brush do begin if t_op_aire['财务'] then Color:=$00FBE8FF;//完成 if (gdSelected in State)or(gdFocused in State) then begin Font.Color:=Color; Color:=$00C08080; end; DefaultDrawColumnCell(Rect, dataCol,Column, State); end; end; procedure Tfrm_cw_pingzheng.DBGridEh6DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); begin with TDBGridEh(Sender), Canvas, Brush do begin if t_op_airi['财务'] then Color:=$00FBE8FF;//完成 if (gdSelected in State)or(gdFocused in State) then begin Font.Color:=Color; Color:=$00C08080; end; DefaultDrawColumnCell(Rect, dataCol,Column, State); end; end; procedure Tfrm_cw_pingzheng.DBGridEh7DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); begin with TDBGridEh(Sender), Canvas, Brush do begin if t_op_balance['财务'] then Color:=$00FBE8FF;//完成 if (gdSelected in State)or(gdFocused in State) then begin Font.Color:=Color; Color:=$00C08080; end; DefaultDrawColumnCell(Rect, dataCol,Column, State); end; end; procedure Tfrm_cw_pingzheng.bsSkinButton12Click(Sender: TObject); var i,ordno:integer; aQuery:TAdoQuery; begin if wwDBDateTimePicker21.Text='' then begin MessageDlg('请首先设置记账日期!',mterror,[mbyes],0); exit; end; if RxDBLookupCombo6.DisplayValue='' then begin MessageDlg('请首先设置制单人!',mterror,[mbyes],0); exit; end; dmacc:=TdmAcc.Create(self); aQuery:=CreateAdoQuery; try dmAcc.ADOtblVou.Open; dmAcc.ADOtblVouItems.Open; aVKNO:=1; aQuery.Close; aQuery.SQL.Clear; aQuery.SQL.add('update t_op_aire set 财务=1,财务凭证=:财务凭证 where 业务编号=:业务编号'); VoucherDate:=wwDBDateTimePicker21.Date; { try dmAcc.AdotblVou.Insert; dmAcc.AdotblVou.FieldByName('SourceType').AsInteger:=1; dmAcc.AdotblVou.FieldByName('ATTACHS').AsInteger:=1; dmAcc.AdotblVou.FieldByName('VKNO').AsInteger:=1; dmAcc.AdotblVou.FieldByName('PREPARED').AsString:=RxDBLookupCombo6.DisplayValues[0]; dmAcc.AdotblVou.Post; dmAcc.AdotblVou.Edit; } if DBGridEh5.SelectedRows.Count>1 then begin if not ASSIGNED(frm_sys_progress) then frm_sys_progress:=tfrm_sys_progress.Create(self); try frm_sys_progress.bsSkinGauge1.ProgressText:='正在生成凭证请稍后。。。'; frm_sys_progress.Show; frm_sys_progress.bsSkinGauge1.MaxValue:=DBGridEh5.SelectedRows.Count; frm_sys_progress.bsSkinGauge1.MinValue:=0; frm_sys_progress.bsSkinGauge1.Value:=0; frm_sys_progress.Update; for i:=0 to DBGridEh5.SelectedRows.Count-1 do begin t_op_aire.GotoBookmark(Pointer(DBGridEh5.SelectedRows.Items[I])); if t_op_aire['财务'] then begin MessageDlg('业务编号:'+t_op_aire['业务编号']+'已经生成凭证,无法重新生成!',mterror,[mbyes],0); end else begin NewDrCrVou(t_op_aire,t_op_aire['主运单号'],t_op_aire.fieldbyname('一程航班').AsString,wwDBDateTimePicker21.Date); aQuery.Parameters.ParamByName('财务凭证').Value:=dmacc.ADOTblVou.fieldbyname('ordno').AsString; aQuery.Parameters.ParamByName('业务编号').Value:=t_op_aire.fieldbyname('业务编号').AsString; aQuery.ExecSQL; end; frm_sys_progress.bsSkinGauge1.Value:=frm_sys_progress.bsSkinGauge1.Value+1; end; finally freeAndNil(frm_sys_progress); end; end else begin NewDrCrVou(t_op_aire,t_op_aire['主运单号'],t_op_aire.fieldbyname('一程航班').AsString,wwDBDateTimePicker21.Date); aQuery.Parameters.ParamByName('财务凭证').Value:=dmacc.ADOTblVou.fieldbyname('ordno').AsString; aQuery.Parameters.ParamByName('业务编号').Value:=t_op_aire.fieldbyname('业务编号').AsString; aQuery.ExecSQL; end; // ordno:=dmAcc.AdotblVou.fieldbyname('ordno').asinteger; // dmAcc.AdotblVou.Post; { except dmAcc.TempQuery.Close; dmAcc.TempQuery.SQL.Clear; dmAcc.TempQuery.SQL.Add('delete from vouchers where ordno=:mOrdNo'); dmAcc.TempQuery.Parameters.ParamByName('mOrdNo').value:=OrdNo; dmAcc.TempQuery.ExecSQL; end; } finally dmAcc.AdotblVouItems.Close; dmAcc.AdotblVou.Close; freeAndNil(dmacc); end; bsSkinButton9.OnClick(sender); end; procedure Tfrm_cw_pingzheng.bsSkinButton16Click(Sender: TObject); var i,ordno:integer; aQuery:TAdoQuery; begin if wwDBDateTimePicker21.Text='' then begin MessageDlg('请首先设置记账日期!',mterror,[mbyes],0); exit; end; if RxDBLookupCombo6.DisplayValue='' then begin MessageDlg('请首先设置制单人!',mterror,[mbyes],0); exit; end; dmacc:=TdmAcc.Create(self); aQuery:=CreateAdoQuery; try dmAcc.ADOtblVou.Open; dmAcc.ADOtblVouItems.Open; aVKNO:=1; aQuery.Close; aQuery.SQL.Clear; aQuery.SQL.add('update t_op_airi set 财务=1,财务凭证=:财务凭证 where 业务编号=:业务编号'); VoucherDate:=wwDBDateTimePicker21.Date; { try dmAcc.AdotblVou.Insert; dmAcc.AdotblVou.FieldByName('SourceType').AsInteger:=1; dmAcc.AdotblVou.FieldByName('ATTACHS').AsInteger:=1; dmAcc.AdotblVou.FieldByName('VKNO').AsInteger:=1; dmAcc.AdotblVou.FieldByName('PREPARED').AsString:=RxDBLookupCombo6.DisplayValues[0]; dmAcc.AdotblVou.Post; dmAcc.AdotblVou.Edit; } if DBGridEh6.SelectedRows.Count>1 then begin if not ASSIGNED(frm_sys_progress) then frm_sys_progress:=tfrm_sys_progress.Create(self); try frm_sys_progress.bsSkinGauge1.ProgressText:='正在生成凭证请稍后。。。'; frm_sys_progress.Show; frm_sys_progress.bsSkinGauge1.MaxValue:=DBGridEh6.SelectedRows.Count; frm_sys_progress.bsSkinGauge1.MinValue:=0; frm_sys_progress.bsSkinGauge1.Value:=0; frm_sys_progress.Update; for i:=0 to DBGridEh6.SelectedRows.Count-1 do begin t_op_airi.GotoBookmark(Pointer(DBGridEh6.SelectedRows.Items[I])); if t_op_airi['财务'] then begin MessageDlg('业务编号:'+t_op_airi['业务编号']+'已经生成凭证,无法重新生成!',mterror,[mbyes],0); end else begin NewDrCrVou(t_op_airi,t_op_airi['主运单号'],t_op_airi.fieldbyname('航班号').AsString,wwDBDateTimePicker21.Date); aQuery.Parameters.ParamByName('财务凭证').Value:=dmacc.ADOTblVou.fieldbyname('ordno').AsString; aQuery.Parameters.ParamByName('业务编号').Value:=t_op_airi.fieldbyname('业务编号').AsString; aQuery.ExecSQL; end; frm_sys_progress.bsSkinGauge1.Value:=frm_sys_progress.bsSkinGauge1.Value+1; end; finally freeAndNil(frm_sys_progress); end; end else begin NewDrCrVou(t_op_airi,t_op_airi['主运单号'],t_op_airi.fieldbyname('航班号').AsString,wwDBDateTimePicker21.Date); aQuery.Parameters.ParamByName('财务凭证').Value:=dmacc.ADOTblVou.fieldbyname('ordno').AsString; aQuery.Parameters.ParamByName('业务编号').Value:=t_op_airi.fieldbyname('业务编号').AsString; aQuery.ExecSQL; end; { ordno:=dmAcc.AdotblVou.fieldbyname('ordno').asinteger; dmAcc.AdotblVou.Post; except dmAcc.TempQuery.Close; dmAcc.TempQuery.SQL.Clear; dmAcc.TempQuery.SQL.Add('delete from vouchers where ordno=:mOrdNo'); dmAcc.TempQuery.Parameters.ParamByName('mOrdNo').value:=OrdNo; dmAcc.TempQuery.ExecSQL; end; } finally dmAcc.AdotblVouItems.Close; dmAcc.AdotblVou.Close; freeAndNil(dmacc); end; bsSkinButton14.OnClick(sender); end; procedure Tfrm_cw_pingzheng.bsSkinButton17Click(Sender: TObject); procedure deleteBusiCardVt(ordno:integer); var aQuery:TAdoQuery; begin aQuery:=CreateAdoQuery; try with aQuery do begin close;SQl.Clear; SQL.Add('delete from vouchers where ORDNO='+inttostr(OrdNo)); ExecSQL; close;SQl.Clear; SQL.Add('update t_op_seae set 财务=0,财务凭证='''' where 财务凭证='''+inttostr(OrdNo)+''''); ExecSQL; close;SQl.Clear; SQL.Add('update t_op_seai set 财务=0,财务凭证='''' where 财务凭证='''+inttostr(OrdNo)+''''); ExecSQL; close;SQl.Clear; SQL.Add('update t_op_aire set 财务=0,财务凭证='''' where 财务凭证='''+inttostr(OrdNo)+''''); ExecSQL; close;SQl.Clear; SQL.Add('update t_op_airi set 财务=0,财务凭证='''' where 财务凭证='''+inttostr(OrdNo)+''''); ExecSQL; end; finally FreeAndNil(aQuery); end; end; procedure deleteStlVt(ordno:integer); var aQuery:TAdoQuery; begin aQuery:=CreateAdoQuery; try with aQuery do begin close;SQl.Clear; SQL.Add('update t_ch_balance set 财务=0,财务凭证='''' where 财务凭证='''+inttostr(OrdNo)+''''); ExecSQL; close;SQl.Clear; SQL.Add('delete from vouchers where ORDNO='+inttostr(OrdNo)); ExecSQL; end; finally FreeAndNil(aQuery); end; end; begin memtblVou.First; while not memtblVou.Eof do begin if memtblVou.FieldByName('Selected').AsInteger=1 then begin if memTblVou.FieldByName('SOURCETYPE').AsInteger=2 then deleteStlVt(memTblVou.fieldByName('ordno').AsInteger) else deleteBusiCardVt(memTblVou.fieldByName('ordno').AsInteger); end; memtblvou.Next; end; bsSkinButton8Click(sender); end; procedure Tfrm_cw_pingzheng.bsSkinButton21Click(Sender: TObject); var str:widestring; i:integer; begin if t_op_seae.IsEmpty then exit; if DBGridEh1.SelectedRows.Count<1 then begin showmessage('请选择要打印的业务!!'); exit; end; if (t_op_seae.State=dsinsert)or(t_op_seae.State=dsedit) then t_op_seae.post; try frm_ch_piliang_seae:=tfrm_ch_piliang_seae.Create (self); t_op_seae.DisableControls; for i:=0 to DBGridEh1.SelectedRows.Count-1 do begin t_op_seae.GotoBookmark(pointer(DBGridEh1.SelectedRows.Items[I])); if str='' then str:=''''+t_op_seae.fieldbyname('编号').AsString+'''' else str:=str+','+''''+t_op_seae.fieldbyname('编号').AsString+''''; end; str:='('+str+')'; str:='select * from t_op_seae where 编号 in '+str+default_sort(53,'t_op_seae','','desc'); frm_ch_piliang_seae.t_op_seae.Parameters.ParamByName('SQLStr').value:=str; frm_ch_piliang_seae.t_op_seae.open; frm_ch_piliang_seae.ShowModal; finally t_op_seae.EnableControls; frm_ch_piliang_seae.Free; frm_ch_piliang_seae:=nil; end; end; procedure Tfrm_cw_pingzheng.bsSkinButton22Click(Sender: TObject); var str:widestring; i:integer; begin if t_op_seai.IsEmpty then exit; if DBGridEh4.SelectedRows.Count<1 then begin showmessage('请选择要打印的业务帐单!!'); exit; end; if (t_op_seai.State=dsinsert)or(t_op_seai.State=dsedit) then t_op_seai.post; try frm_ch_piliang_seai:=tfrm_ch_piliang_seai.Create (self); t_op_seai.DisableControls; for i:=0 to DBGridEh4.SelectedRows.Count-1 do begin t_op_seai.GotoBookmark(pointer(DBGridEh4.SelectedRows.items[i])); if str='' then str:=''''+t_op_seai.fieldbyname('编号').AsString+'''' else str:=str+','+''''+t_op_seai.fieldbyname('编号').AsString+''''; end; str:='('+str+')'; str:='select * from t_op_seai where 编号 in '+str+default_sort(54,'t_op_seai','','desc'); frm_ch_piliang_seai.t_op_seai.Parameters.ParamByName('SQLStr').value:=str; frm_ch_piliang_seai.t_op_seai.open; frm_ch_piliang_seai.ShowModal; finally t_op_seai.EnableControls; frm_ch_piliang_seai.Free; frm_ch_piliang_seai:=nil; end; end; procedure Tfrm_cw_pingzheng.bsSkinButton23Click(Sender: TObject); var str:widestring; i:integer; begin if t_op_aire.IsEmpty then exit; if DBGridEh5.SelectedRows.Count<1 then begin showmessage('请选择要打印的业务帐单!!'); exit; end; if (t_op_aire.State=dsinsert)or(t_op_aire.State=dsedit) then t_op_aire.post; try frm_ch_piliang_aire:=tfrm_ch_piliang_aire.Create (self); t_op_aire.DisableControls; for i:=0 to DBGridEh5.SelectedRows.Count-1 do begin t_op_aire.GotoBookmark(pointer(DBGridEh5.SelectedRows.items[i])); if str='' then str:=''''+t_op_aire.fieldbyname('编号').AsString+'''' else str:=str+','+''''+t_op_aire.fieldbyname('编号').AsString+''''; end; str:='('+str+')'; str:='select * from t_op_aire where 编号 in '+str+default_sort(55,'t_op_aire','','desc'); frm_ch_piliang_aire.t_op_aire.Parameters.ParamByName('SQLStr').value:=str; frm_ch_piliang_aire.t_op_aire.open; frm_ch_piliang_aire.ShowModal; finally t_op_aire.EnableControls; frm_ch_piliang_aire.Free; frm_ch_piliang_aire:=nil; end; end; procedure Tfrm_cw_pingzheng.bsSkinButton24Click(Sender: TObject); var str:widestring; i:integer; begin if t_op_airi.IsEmpty then exit; if DBGridEh6.SelectedRows.Count<1 then begin showmessage('请选择要打印的业务帐单!!'); exit; end; if (t_op_airi.State=dsinsert)or(t_op_airi.State=dsedit) then t_op_airi.post; try frm_ch_piliang_airi:=tfrm_ch_piliang_airi.Create (self); t_op_airi.DisableControls; for i:=0 to DBGridEh6.SelectedRows.Count-1 do begin t_op_airi.GotoBookmark(pointer(DBGridEh6.SelectedRows.items[i])); if str='' then str:=''''+t_op_airi.fieldbyname('编号').AsString+'''' else str:=str+','+''''+t_op_airi.fieldbyname('编号').AsString+''''; end; str:='('+str+')'; str:='select * from t_op_airi where 编号 in '+str+default_sort(56,'t_op_airi','','desc'); frm_ch_piliang_airi.t_op_airi.Parameters.ParamByName('SQLStr').value:=str; frm_ch_piliang_airi.t_op_airi.open; frm_ch_piliang_airi.ShowModal; finally t_op_airi.EnableControls; frm_ch_piliang_airi.Free; frm_ch_piliang_airi:=nil; end; end; procedure Tfrm_cw_pingzheng.bsSkinButton13Click(Sender: TObject); begin memTblVou.First; while not memtblvou.Eof do begin memtblVou.Edit; memtblVou.FieldByName('Selected').AsInteger:=1; memtblVou.Post; memtblvou.Next; end; end; procedure Tfrm_cw_pingzheng.bsSkinButton25Click(Sender: TObject); begin memTblVou.First; while not memtblvou.Eof do begin memtblVou.Edit; memtblVou.FieldByName('Selected').AsInteger:=0; memtblVou.Post; memtblvou.Next; end; end; procedure Tfrm_cw_pingzheng.Edit12KeyPress(Sender: TObject; var Key: Char); begin if not (key in ['0'..'9','.','-']) then key:=#0; end; procedure Tfrm_cw_pingzheng.Edit10KeyPress(Sender: TObject; var Key: Char); begin if not (key in ['0'..'9','.','-']) then key:=#0; end; procedure Tfrm_cw_pingzheng.SQLConnectionAccBeforeConnect(Sender: TObject); begin // SQLConnectionAcc.ConnectionString:=connect_string('dsacc.ini'); end; procedure Tfrm_cw_pingzheng.SQLConnectionAcc2BeforeConnect( Sender: TObject); begin // SQLConnectionAcc2.ConnectionString:=connect_string('dsacc2.ini'); end; end.