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,inifiles, 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; t_op_seaeDSDesigner: TStringField; t_op_seaeDSDesigner2: TStringField; t_op_seaeDSDesigner3: TStringField; t_op_seaeDSDesigner4: TDateTimeField; t_op_seaeDSDesigner6: TStringField; t_op_seaeDSDesigner7: TStringField; t_op_seaeDSDesigner8: TStringField; t_op_seaeDSDesigner9: TStringField; t_op_seaeDSDesigner10: TStringField; t_op_seaeDSDesigner19: TStringField; t_op_seaeDSDesigner20: TStringField; t_op_seaeDSDesigner21: TStringField; t_op_seaeDSDesigner22: TDateTimeField; t_op_seaeDSDesigner25: TStringField; t_op_seaeDSDesigner26: TStringField; t_op_seaeDSDesigner28: TStringField; t_op_seaeDSDesigner34: TStringField; t_op_seaeDSDesigner52: TIntegerField; t_op_seaeDSDesigner53: TStringField; t_op_seaeDSDesigner54: TBCDField; t_op_seaeDSDesigner55: TBCDField; t_op_seaeTEU: TIntegerField; t_op_seaeDSDesigner60: TStringField; t_op_seaeDSDesigner61: TStringField; t_op_seaeDSDesigner63: TDateTimeField; t_op_seaeDSDesigner64: TStringField; t_op_seaeDSDesigner65: TStringField; t_op_seaeDSDesigner66: TStringField; t_op_seaeDSDesigner67: TStringField; t_op_seaeDSDesigner68: TStringField; t_op_seaeDSDesigner69: TStringField; t_op_seaeDSDesigner107: TStringField; t_op_seaeDSDesigner108: TStringField; t_op_seaeDSDesigner109: TIntegerField; t_op_seaeDSDesigner110: TStringField; t_op_seaeDSDesigner141: TStringField; t_op_seaeDSDesigner142: TBooleanField; DBGridEh7: TDBGridEh; TBVouList: TbsSkinTabSheet; t_op_aireDSDesigner2: TStringField; t_op_aireDSDesigner3: TStringField; t_op_aireDSDesigner4: TStringField; t_op_aireDSDesigner5: TDateTimeField; t_op_aireDSDesigner6: TIntegerField; t_op_aireDSDesigner7: TStringField; t_op_aireDSDesigner8: TStringField; t_op_aireDSDesigner9: TStringField; t_op_aireDSDesigner10: TStringField; t_op_aireDSDesigner22: TStringField; t_op_aireDSDesigner23: TStringField; t_op_aireDSDesigner24: TStringField; t_op_aireDSDesigner25: TStringField; t_op_aireDSDesigner26: TStringField; t_op_aireDSDesigner27: TDateTimeField; t_op_aireDSDesigner37: TDateTimeField; t_op_aireDSDesigner46: TIntegerField; t_op_aireDSDesigner47: TBCDField; t_op_aireDSDesigner48: TStringField; t_op_aireDSDesigner49: TStringField; t_op_aireDSDesigner50: TBCDField; t_op_aireDSDesigner64: TStringField; t_op_aireDSDesigner65: TStringField; t_op_aireDSDesigner66: TStringField; t_op_aireDSDesigner67: TStringField; t_op_aireDSDesigner68: TDateTimeField; t_op_aireDSDesigner69: TStringField; t_op_aireDSDesigner71: TStringField; t_op_aireDSDesigner72: TStringField; t_op_aireDSDesigner73: TIntegerField; t_op_aireDSDesigner74: TStringField; t_op_aireDSDesigner75: TStringField; t_op_aireDSDesigner76: TBooleanField; t_op_aireDSDesigner77: TStringField; t_op_airiDSDesigner2: TStringField; t_op_airiDSDesigner3: TStringField; t_op_airiDSDesigner4: TStringField; t_op_airiDSDesigner5: TDateTimeField; t_op_airiDSDesigner6: TIntegerField; t_op_airiDSDesigner7: TStringField; t_op_airiDSDesigner8: TStringField; t_op_airiDSDesigner9: TStringField; t_op_airiDSDesigner10: TStringField; t_op_airiDSDesigner11: TStringField; t_op_airiDSDesigner14: TStringField; t_op_airiDSDesigner15: TStringField; t_op_airiDSDesigner16: TStringField; t_op_airiDSDesigner17: TStringField; t_op_airiDSDesigner18: TDateTimeField; t_op_airiDSDesigner19: TDateTimeField; t_op_airiDSDesigner20: TIntegerField; t_op_airiDSDesigner21: TBCDField; t_op_airiDSDesigner22: TStringField; t_op_airiDSDesigner23: TStringField; t_op_airiDSDesigner24: TStringField; t_op_airiDSDesigner25: TStringField; t_op_airiDSDesigner26: TStringField; t_op_airiDSDesigner27: TStringField; t_op_airiDSDesigner28: TDateTimeField; t_op_airiDSDesigner29: TStringField; t_op_airiDSDesigner30: TStringField; t_op_airiDSDesigner31: TStringField; t_op_airiDSDesigner32: TStringField; t_op_airiDSDesigner33: TStringField; t_op_airiDSDesigner34: TStringField; t_op_airiDSDesigner35: TIntegerField; t_op_airiDSDesigner36: TStringField; t_op_airiDSDesigner37: TBooleanField; t_op_airiDSDesigner38: TStringField; 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; t_op_seaeDSDesigner5: 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; tblVouitems11: TTable; qryVouitems: TADOQuery; Query1: TQuery; bsSkinCheckRadioBox6: TbsSkinCheckRadioBox; tblVouitems11FDATE: TDateField; tblVouitems11FTRANSDATE: TDateField; tblVouitems11FPERIOD: TFloatField; tblVouitems11FGROUP: TStringField; tblVouitems11FNUM: TFloatField; tblVouitems11FENTRYID: TFloatField; tblVouitems11FEXP: TStringField; tblVouitems11FACCTID: TStringField; tblVouitems11FCLSNAME1: TStringField; tblVouitems11FOBJID1: TStringField; tblVouitems11FOBJNAME1: TStringField; tblVouitems11FCLSNAME2: TStringField; tblVouitems11FOBJID2: TStringField; tblVouitems11FOBJNAME2: TStringField; tblVouitems11FCLSNAME3: TStringField; tblVouitems11FOBJID3: TStringField; tblVouitems11FOBJNAME3: TStringField; tblVouitems11FCLSNAME4: TStringField; tblVouitems11FOBJID4: TStringField; tblVouitems11FOBJNAME4: TStringField; tblVouitems11FCLSNAME5: TStringField; tblVouitems11FOBJID5: TStringField; tblVouitems11FOBJNAME5: TStringField; tblVouitems11FCLSNAME6: TStringField; tblVouitems11FOBJID6: TStringField; tblVouitems11FOBJNAME6: TStringField; tblVouitems11FCLSNAME7: TStringField; tblVouitems11FOBJID7: TStringField; tblVouitems11FOBJNAME7: TStringField; tblVouitems11FCLSNAME8: TStringField; tblVouitems11FOBJID8: TStringField; tblVouitems11FOBJNAME8: TStringField; tblVouitems11FTRANSID: TStringField; tblVouitems11FCYID: TStringField; tblVouitems11FEXCHRATE: TFloatField; tblVouitems11FDC: TStringField; tblVouitems11FFCYAMT: TFloatField; tblVouitems11FQTY: TFloatField; tblVouitems11FPRICE: TFloatField; tblVouitems11FDEBIT: TFloatField; tblVouitems11FCREDIT: TFloatField; tblVouitems11FSETTLCODE: TStringField; tblVouitems11FSETTLENO: TStringField; tblVouitems11FPREPARE: TStringField; tblVouitems11FPAY: TStringField; tblVouitems11FCASH: TStringField; tblVouitems11FPOSTER: TStringField; tblVouitems11FCHECKER: TStringField; tblVouitems11FATTCHMENT: TFloatField; tblVouitems11FPOSTED: TBooleanField; tblVouitems11FMODULE: TStringField; tblVouitems11FDELETED: TBooleanField; tblVouitems11FSERIALNO: TFloatField; RxDBLookupCombo2: TRxDBLookupCombo; Label29: TLabel; wwDBDateTimePicker21: TwwDBDateTimePicker; Label36: TLabel; RxDBLookupCombo6: TRxDBLookupCombo; cwconnect: TADOConnection; tblvouitems: TADOTable; SaveDialog1: TSaveDialog; bsSkinButton17: TbsSkinButton; bsSkinButton21: TbsSkinButton; bsSkinButton22: TbsSkinButton; bsSkinButton23: TbsSkinButton; bsSkinButton24: TbsSkinButton; bsSkinButton25: TbsSkinButton; Label37: TLabel; Edit10: TEdit; t_op_seaeDSDesigner11: TStringField; 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; t_op_airiDSDesigner12: TStringField; t_op_aireDSDesigner11: TStringField; 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; t_op_seaiDSDesigner: TStringField; t_op_seaiDSDesigner2: TStringField; t_op_seaiDSDesigner3: TStringField; t_op_seaiDSDesigner5: TStringField; t_op_seaiDSDesigner6: TStringField; t_op_seaiDSDesigner7: TStringField; t_op_seaiDSDesigner8: TStringField; t_op_seaiDSDesigner9: TStringField; t_op_seaiDSDesigner10: TStringField; t_op_seaiDSDesigner11: TStringField; t_op_seaiDSDesigner12: TStringField; t_op_seaiDSDesigner13: TStringField; t_op_seaiDSDesigner14: TStringField; t_op_seaiDSDesigner15: TStringField; t_op_seaiDSDesigner16: TStringField; t_op_seaiDSDesigner17: TDateTimeField; t_op_seaiDSDesigner18: TIntegerField; t_op_seaiDSDesigner19: TDateTimeField; t_op_seaiDSDesigner20: TStringField; t_op_seaiDSDesigner21: TStringField; t_op_seaiDSDesigner22: TStringField; t_op_seaiDSDesigner23: TStringField; t_op_seaiDSDesigner24: TStringField; t_op_seaiDSDesigner25: TStringField; t_op_seaiDSDesigner26: TStringField; t_op_seaiDSDesigner27: TStringField; t_op_seaiDSDesigner28: TStringField; t_op_seaiDSDesigner1: TIntegerField; t_op_seaiDSDesigner29: TIntegerField; t_op_seaiDSDesigner32: TIntegerField; t_op_seaiDSDesigner42: TIntegerField; t_op_seaiDSDesigner52: TIntegerField; t_op_seaiDSDesigner62: TIntegerField; t_op_seaiDSDesigner72: TIntegerField; t_op_seaiDSDesigner82: TIntegerField; t_op_seaiDSDesigner92: TIntegerField; t_op_seaiDSDesigner102: TIntegerField; t_op_seaiDSDesigner30: TIntegerField; t_op_seaiTEU: TIntegerField; t_op_seaiDSDesigner31: TStringField; t_op_seaiDSDesigner33: TStringField; t_op_seaiDSDesigner34: TStringField; t_op_seaiDSDesigner35: TStringField; t_op_seaiDSDesigner36: TStringField; t_op_seaiDSDesigner37: TIntegerField; t_op_seaiDSDesigner38: TStringField; t_op_seaiDSDesigner39: TBCDField; t_op_seaiDSDesigner40: TBCDField; t_op_seaiDSDesigner41: TStringField; t_op_seaiDSDesigner43: TStringField; t_op_seaiDSDesigner44: TStringField; t_op_seaiDSDesigner45: TDateTimeField; t_op_seaiDSDesigner46: TStringField; t_op_seaiDSDesigner47: TStringField; t_op_seaiDSDesigner48: TStringField; t_op_seaiDSDesigner49: TStringField; t_op_seaiDSDesigner51: TStringField; t_op_seaiDSDesigner53: TStringField; t_op_seaiDSDesigner54: TStringField; t_op_seaiDSDesigner55: TStringField; t_op_seaiDSDesigner56: TStringField; t_op_seaiDSDesigner57: TStringField; t_op_seaiDSDesigner59: TStringField; t_op_seaiDSDesigner61: TStringField; t_op_seaiDSDesigner63: TStringField; t_op_seaiDSDesigner64: TIntegerField; t_op_seaiDSDesigner65: TStringField; t_op_seaiDSDesigner71: TStringField; t_op_seaiDSDesigner76: TBooleanField; t_op_seaiDSDesigner77: TStringField; bsSkinCheckRadioBox7: TbsSkinCheckRadioBox; 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); 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, u_cw_load, u_cw_date, 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 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 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 Getprofit(Corp,dc:String):String; var aQuery:TAdoQuery; begin aQuery:=CreateAdoQuery; try with aQuery do begin Close;sql.Clear; sql.Add('select 集团内客户 from t_crm_client where 客户简称='''+Corp+''''); Open; if dc='收' then begin if fieldbyname('集团内客户').AsBoolean then result:=accinfo.DebitAccIDU else result:=accinfo.ProfitAccID; end else begin if fieldbyname('集团内客户').AsBoolean then result:=accinfo.CreditAccIDU else result:=accinfo.ImpProfitAccID; end; end; finally freeAndNil(aQuery); 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.DebitAccID; 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; 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:='应收'+Mblno; 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('FCYDR').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('FCYCr').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=0.0; dmAcc.AdotblVouItems.FieldByName('EXPLAN').AsString:='应收'+Mblno; Dr:=DR+StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat), 0); end; dmAcc.AdotblVouItems.FieldByName('CorpBf').AsString:='F'; dmAcc.AdotblVouItems.FieldByName('CorpID').AsString:=GetCustID(aQuery.fieldByName('客户名称').AsString,aQuery.FieldByName('类型').AsString); 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:=Mblno; 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.CreditAccID; 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:='应付'+Mblno; 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:='应付'+Mblno; Cr:=CR+StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat), 0); end; dmAcc.AdotblVouItems.FieldByName('CorpBf').AsString:='F'; dmAcc.AdotblVouItems.FieldByName('CorpID').AsString:=GetCustID(aQuery.fieldByName('客户名称').AsString,aQuery.FieldByName('类型').AsString); 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:=Mblno; 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,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 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 Getprofit(Corp,dc:String):String; var aQuery:TAdoQuery; begin aQuery:=CreateAdoQuery; try with aQuery do begin Close;sql.Clear; sql.Add('select 集团内客户 from t_crm_client where 客户简称='''+Corp+''''); Open; if dc='收' then begin if fieldbyname('集团内客户').AsBoolean then result:=accinfo.DebitAccIDU else result:=accinfo.ProfitAccID; end else begin if fieldbyname('集团内客户').AsBoolean then result:=accinfo.CreditAccIDU else result:=accinfo.ImpProfitAccID; end; end; finally freeAndNil(aQuery); end; end; function GetBankAccid:String; var aQuery:TAdoQuery; begin if fdataSet.FieldByName('结算方式').AsString='现金' then result:=AccInfo.Cash else if fDataSet.FieldByName('银行').AsString<>'' then 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 else begin result:=''; end; end; begin Result:=false; aQuery:=CreateADOQuery; aQuery2:=CreateADOQuery; StlAmtDR:=0.00; StlAmtCR:=0.00; UsdExRate:=StrToFloatDef(Edit10.Text,7.8); with aQuery,SQL do begin Add('Select 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.汇率'); Add('Order By 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.DebitAccID; 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); dmAcc.AdotblVouItems.FieldByName('EXPLAN').AsString:='收'+aQuery.fieldByName('主提单号').AsString; if bsSkinCheckRadioBox7.Checked then StlAmtDR:=StlAmtDR+StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat*aQuery.fieldByName('汇率').AsFloat), 0) else StlAmtDR:=StlAmtDR+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:=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; dmAcc.AdotblVouItems.FieldByName('EXPLAN').AsString:='收'+aQuery.fieldByName('主提单号').AsString; 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.CreditAccID; 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); dmAcc.AdotblVouItems.FieldByName('EXPLAN').AsString:='付'+aQuery.fieldByName('主提单号').AsString; if bsSkinCheckRadioBox7.Checked then StlAmtCR:=StlAmtCR+StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat*aQuery.fieldByName('汇率').AsFloat), 0) else StlAmtCR:=StlAmtCR+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:=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; dmAcc.AdotblVouItems.FieldByName('EXPLAN').AsString:='付'+aQuery.fieldByName('主提单号').AsString; StlAmtCR:=StlAmtCR+StrToFloatDef(FormatFloat('0.00;-0.00;0.0', aQuery.fieldByName('金额').AsFloat), 0); end; end; dmAcc.AdotblVouItems.FieldByName('CorpBf').AsString:='F'; dmAcc.AdotblVouItems.FieldByName('CorpID').AsString:=GetCustID(aQuery.fieldByName('客户名称').AsString,aQuery.FieldByName('收付').AsString); 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; dmAcc.AdotblVouItems.Insert; dmAcc.AdotblVouItems.FieldByName('AccID').AsString:=GetbankAccid; if fDataSet.FieldByName('币别').AsString='USD'then begin 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; dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=StlAmtDR/StrToFloatDef(FormatFloat('0.00;-0.00;0.0',fdataset.fieldbyname('结算金额').asfloat),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:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0',fdataset.fieldbyname('结算金额').asfloat),0); dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=UsdExRate; dmAcc.AdotblVouItems.FieldByName('AmtCr').AsFloat:=StlAmtCR; dmAcc.AdotblVouItems.FieldByName('AmtDR').AsFloat:=0.00; end; end else begin 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; end; dmAcc.AdotblVouItems.FieldByName('FSETTLCODE').AsString:=fdataset.fieldbyname('结算方式').asstring; dmAcc.AdotblVouItems.FieldByName('FSETTLENO').AsString:=fdataset.fieldbyname('相关号码').asstring; dmAcc.AdotblVouItems.FieldByName('EXPLAN').AsString:=fdataset.fieldbyname('类型').asstring+aQuery.fieldByName('主提单号').AsString; dmAcc.AdotblVouItems.FieldByName('BSNO').AsString:=aQuery.fieldByName('主提单号').AsString; dmAcc.AdotblVouItems.post; 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 { try frm_cw_date:=Tfrm_cw_date.Create(application); frm_cw_date.ShowModal; if frm_cw_date.ModalResult = mrOk then begin if_do:=true; get_date:=frm_cw_date.wwDBDateTimePicker1.Date; end else if_do:=false;; finally frm_cw_date.free; frm_cw_date:=nil; end; if not if_do then exit; T_Voucher_Main.Requery(); T_Voucher_fen.Requery(); try T_Voucher_Main.Insert; T_Voucher_Main['FDate']:=get_date;//t_yingshou.DataSource.DataSet.fieldbyname('会计期间').value; T_Voucher_Main['FYear']:= strtoint(FormatDateTime('yyyy',t_yingshou.DataSource.DataSet.fieldbyname('会计期间').value)); T_Voucher_Main['FPeriod']:= strtoint(FormatDateTime('mm',t_yingshou.DataSource.DataSet.fieldbyname('会计期间').value)); T_Voucher_Main['FGroupID']:=t_cw_design.fieldbyname('转帐凭证字').asinteger; T_Voucher_Max_num.close; T_Voucher_Max_num.Parameters.ParamByName('FYear').value:= strtoint(FormatDateTime('yyyy',t_yingshou.DataSource.DataSet.fieldbyname('会计期间').value)); T_Voucher_Max_num.Parameters.ParamByName('FPeriod').value:= strtoint(FormatDateTime('mm',t_yingshou.DataSource.DataSet.fieldbyname('会计期间').value)); T_Voucher_Max_num.Parameters.ParamByName('FGroupID').value:=t_cw_design.fieldbyname('转帐凭证字').asinteger; T_Voucher_Max_num.open; if T_Voucher_Max_num.IsEmpty then T_Voucher_Main['FNumber']:=1 else T_Voucher_Main['FNumber']:=T_Voucher_Max_num.fieldbyname('FNumber').asinteger+1; T_Voucher_Main['FReference']:=''; T_Voucher_Main['FExplanation']:=frm_cw_pingzheng.get_str(op_type,''); T_Voucher_Main['FAttachments']:=1; T_Voucher_Main['FEntryCount']:=t_yingshou.RecordCount+t_yingfu.RecordCount+t_shouru.RecordCount+t_chengben.RecordCount; T_Voucher_Main['FDebitTotal']:=0; T_Voucher_Main['FCreditTotal']:=0; T_Voucher_Main['FInternalInd']:=''; T_Voucher_Main['FPreparerID']:=cw_load; T_Voucher_Main['FHandler']:=''; T_Voucher_Main['FOwnerGroupID']:=cw_load_group; T_Voucher_Main['FObjectName']:=''; T_Voucher_Main['FParameter']:=''; T_Voucher_Main['FTransDate']:=t_yingshou.DataSource.DataSet.fieldbyname('会计期间').value; T_Voucher_Max_seriel.close; T_Voucher_Max_seriel.Parameters.ParamByName('FYear').value:= strtoint(FormatDateTime('yyyy',t_yingshou.DataSource.DataSet.fieldbyname('会计期间').value)); T_Voucher_Max_seriel.open; if T_Voucher_Max_seriel.isempty then T_Voucher_Main['FSerialNum']:=1 else T_Voucher_Main['FSerialNum']:=T_Voucher_Max_seriel.fieldbyname('FSerialNum').asinteger+1; T_Voucher_Main.post; except if T_Voucher_Main.state=dsinsert then T_Voucher_Main.cancel; showmessage('生成凭证失败!!'); exit; end; T_Voucher_Max.requery; T_Voucher_Main.close; T_Voucher_Main.sql.clear; T_Voucher_Main.sql.add('select * from t_Voucher where FVoucherID='+T_Voucher_Max.fieldbyname('FNext').asstring); T_Voucher_Main.open; //应收帐款 bill_count:=0; t_yingshou.first; while not t_yingshou.eof do begin try T_Voucher_fen.insert; T_Voucher_fen['FVoucherID']:=T_Voucher_Main.fieldbyname('FVoucherID').value; T_Voucher_fen['FEntryID']:=bill_count; T_Voucher_fen['FExplanation']:=frm_cw_pingzheng.get_str(op_type,'应收'); T_Voucher_fen['FAccountID']:=t_yingshou.fieldbyname('科目标示').asinteger; T_Voucher_fen['FAccountID2']:=t_yingshou.fieldbyname('科目标示').asinteger; if t_cw_client.locate('客户简称',t_yingshou.fieldbyname('客户名称').asstring,[]) then begin T_Voucher_fen['FDetailID']:=t_cw_client.fieldbyname('应收客户代码').asinteger; end; case t_cw_design.fieldbyname('生成办法').asinteger of 1: begin T_Voucher_fen['FCurrencyID']:=t_cw_design.fieldbyname('币别RMB').asinteger; T_Voucher_fen['FExchangeRate']:=1; if t_yingshou.fieldbyname('金额').asfloat>0 then begin T_Voucher_fen['FAmountFor']:=s_w(2,t_yingshou.fieldbyname('金额').asfloat); T_Voucher_fen['FAmount']:=s_w(2,t_yingshou.fieldbyname('金额').asfloat); T_Voucher_fen['FDC']:=1; num_accept_all:=num_accept_all+s_w(2,t_yingshou.fieldbyname('金额').asfloat); end else begin T_Voucher_fen['FAmountFor']:=s_w(2,t_yingshou.fieldbyname('金额').asfloat*-1); T_Voucher_fen['FAmount']:=s_w(2,t_yingshou.fieldbyname('金额').asfloat*-1); T_Voucher_fen['FDC']:=0; num_pay_all:=num_pay_all+s_w(2,t_yingshou.fieldbyname('金额').asfloat*-1); end; end; 2: begin if t_yingshou.fieldbyname('币别').asstring='USD'then begin T_Voucher_fen['FCurrencyID']:=t_cw_design.fieldbyname('币别USD').asinteger; if T_Currency.Locate('FCurrencyID',t_cw_design.fieldbyname('币别USD').asinteger,[])then T_Voucher_fen['FExchangeRate']:=T_Currency.fieldbyname('FExchangeRate').asfloat; if t_yingshou.fieldbyname('金额').asfloat>0 then begin T_Voucher_fen['FAmountFor']:=s_w(2,t_yingshou.fieldbyname('金额').asfloat); T_Voucher_fen['FAmount']:=s_w(2,t_yingshou.fieldbyname('金额').asfloat* T_Currency.fieldbyname('FExchangeRate').asfloat); T_Voucher_fen['FDC']:=1; num_accept_all:=num_accept_all+s_w(2,t_yingshou.fieldbyname('金额').asfloat* T_Currency.fieldbyname('FExchangeRate').asfloat); end else begin T_Voucher_fen['FAmountFor']:=s_w(2,t_yingshou.fieldbyname('金额').asfloat*-1); T_Voucher_fen['FAmount']:=s_w(2,t_yingshou.fieldbyname('金额').asfloat*-1* T_Currency.fieldbyname('FExchangeRate').asfloat); T_Voucher_fen['FDC']:=0; num_pay_all:=num_pay_all+s_w(2,t_yingshou.fieldbyname('金额').asfloat* T_Currency.fieldbyname('FExchangeRate').asfloat*-1); end; end else begin T_Voucher_fen['FCurrencyID']:=t_cw_design.fieldbyname('币别RMB').asinteger; T_Voucher_fen['FExchangeRate']:=1; if t_yingshou.fieldbyname('金额').asfloat>0 then begin T_Voucher_fen['FAmountFor']:=s_w(2,t_yingshou.fieldbyname('金额').asfloat); T_Voucher_fen['FAmount']:=s_w(2,t_yingshou.fieldbyname('金额').asfloat); T_Voucher_fen['FDC']:=1; num_accept_all:=num_accept_all+s_w(2,t_yingshou.fieldbyname('金额').asfloat); end else begin T_Voucher_fen['FAmountFor']:=s_w(2,t_yingshou.fieldbyname('金额').asfloat*-1); T_Voucher_fen['FAmount']:=s_w(2,t_yingshou.fieldbyname('金额').asfloat*-1); T_Voucher_fen['FDC']:=0; num_pay_all:=num_pay_all+s_w(2,t_yingshou.fieldbyname('金额').asfloat*-1); end; end; end; end; T_Voucher_fen.post; bill_count:=bill_count+1; except if T_Voucher_fen.state=dsinsert then T_Voucher_fen.cancel; while not T_Voucher_fen.eof do T_Voucher_fen.delete; T_Voucher_main.delete; showmessage('生成凭证失败!!'); exit; end; t_yingshou.next; end; //应付帐款 t_yingfu.first; while not t_yingfu.eof do begin try T_Voucher_fen.insert; T_Voucher_fen['FVoucherID']:=T_Voucher_Main.fieldbyname('FVoucherID').value; T_Voucher_fen['FEntryID']:=bill_count; T_Voucher_fen['FExplanation']:=frm_cw_pingzheng.get_str(op_type,'应付'); T_Voucher_fen['FAccountID']:=t_yingfu.fieldbyname('科目标示').asinteger; T_Voucher_fen['FAccountID2']:=t_yingfu.fieldbyname('科目标示').asinteger; if t_cw_client.locate('客户简称',t_yingfu.fieldbyname('客户名称').asstring,[]) then begin T_Voucher_fen['FDetailID']:=t_cw_client.fieldbyname('应付客户代码').asinteger; end; case t_cw_design.fieldbyname('生成办法').asinteger of 1: begin T_Voucher_fen['FCurrencyID']:=t_cw_design.fieldbyname('币别RMB').asinteger; T_Voucher_fen['FExchangeRate']:=1; if t_yingfu.fieldbyname('金额').asfloat>0 then begin T_Voucher_fen['FAmountFor']:=s_w(2,t_yingfu.fieldbyname('金额').asfloat); T_Voucher_fen['FAmount']:=s_w(2,t_yingfu.fieldbyname('金额').asfloat); T_Voucher_fen['FDC']:=0; num_pay_all:=num_pay_all+s_w(2,t_yingfu.fieldbyname('金额').asfloat); end else begin T_Voucher_fen['FAmountFor']:=s_w(2,t_yingfu.fieldbyname('金额').asfloat*-1); T_Voucher_fen['FAmount']:=s_w(2,t_yingfu.fieldbyname('金额').asfloat*-1); T_Voucher_fen['FDC']:=1; num_accept_all:=num_accept_all+s_w(2,t_yingfu.fieldbyname('金额').asfloat*-1); end; end; 2: begin if t_yingfu.fieldbyname('币别').asstring='USD'then begin T_Voucher_fen['FCurrencyID']:=t_cw_design.fieldbyname('币别USD').asinteger; if T_Currency.Locate('FCurrencyID',t_cw_design.fieldbyname('币别USD').asinteger,[])then T_Voucher_fen['FExchangeRate']:=T_Currency.fieldbyname('FExchangeRate').asfloat; if t_yingfu.fieldbyname('金额').asfloat>0 then begin T_Voucher_fen['FAmountFor']:=s_w(2,t_yingfu.fieldbyname('金额').asfloat); T_Voucher_fen['FAmount']:=s_w(2,t_yingfu.fieldbyname('金额').asfloat* T_Currency.fieldbyname('FExchangeRate').asfloat); T_Voucher_fen['FDC']:=0; num_pay_all:=num_pay_all+s_w(2,t_yingfu.fieldbyname('金额').asfloat* T_Currency.fieldbyname('FExchangeRate').asfloat); end else begin T_Voucher_fen['FAmountFor']:=s_w(2,t_yingfu.fieldbyname('金额').asfloat*-1); T_Voucher_fen['FAmount']:=s_w(2,t_yingfu.fieldbyname('金额').asfloat*-1* T_Currency.fieldbyname('FExchangeRate').asfloat); T_Voucher_fen['FDC']:=1; num_accept_all:=num_accept_all+s_w(2,t_yingfu.fieldbyname('金额').asfloat* T_Currency.fieldbyname('FExchangeRate').asfloat*-1); end; end else begin T_Voucher_fen['FCurrencyID']:=t_cw_design.fieldbyname('币别RMB').asinteger; T_Voucher_fen['FExchangeRate']:=1; if t_yingfu.fieldbyname('金额').asfloat>0 then begin T_Voucher_fen['FAmountFor']:=s_w(2,t_yingfu.fieldbyname('金额').asfloat); T_Voucher_fen['FAmount']:=s_w(2,t_yingfu.fieldbyname('金额').asfloat); T_Voucher_fen['FDC']:=0; num_pay_all:=num_pay_all+s_w(2,t_yingfu.fieldbyname('金额').asfloat); end else begin T_Voucher_fen['FAmountFor']:=s_w(2,t_yingfu.fieldbyname('金额').asfloat*-1); T_Voucher_fen['FAmount']:=s_w(2,t_yingfu.fieldbyname('金额').asfloat*-1); T_Voucher_fen['FDC']:=1; num_accept_all:=num_accept_all+s_w(2,t_yingfu.fieldbyname('金额').asfloat*-1); end; end; end; end; T_Voucher_fen.post; bill_count:=bill_count+1; except if T_Voucher_fen.state=dsinsert then T_Voucher_fen.cancel; while not T_Voucher_fen.eof do T_Voucher_fen.delete; T_Voucher_main.delete; showmessage('生成凭证失败!!'); exit; end; t_yingfu.next; end; //业务收入 t_shouru.first; while not t_shouru.eof do begin if t_shouru.fieldbyname('科目标示').asstring<>''then begin try T_Voucher_fen.insert; T_Voucher_fen['FVoucherID']:=T_Voucher_Main.fieldbyname('FVoucherID').value; T_Voucher_fen['FEntryID']:=bill_count; T_Voucher_fen['FExplanation']:=frm_cw_pingzheng.get_str(op_type,'收入'); T_Voucher_fen['FAccountID']:=t_shouru.fieldbyname('科目标示').asinteger; T_Voucher_fen['FAccountID2']:=t_shouru.fieldbyname('科目标示').asinteger; case t_cw_design.fieldbyname('生成办法').asinteger of 1: begin T_Voucher_fen['FCurrencyID']:=t_cw_design.fieldbyname('币别RMB').asinteger; T_Voucher_fen['FExchangeRate']:=1; if t_shouru.fieldbyname('金额').asfloat>0 then begin T_Voucher_fen['FAmountFor']:=s_w(2,t_shouru.fieldbyname('金额').asfloat); T_Voucher_fen['FAmount']:=s_w(2,t_shouru.fieldbyname('金额').asfloat); T_Voucher_fen['FDC']:=0; num_pay_all:=num_pay_all+s_w(2,t_shouru.fieldbyname('金额').asfloat); end else begin T_Voucher_fen['FAmountFor']:=s_w(2,t_shouru.fieldbyname('金额').asfloat*-1); T_Voucher_fen['FAmount']:=s_w(2,t_shouru.fieldbyname('金额').asfloat*-1); T_Voucher_fen['FDC']:=1; num_accept_all:=num_accept_all+s_w(2,t_shouru.fieldbyname('金额').asfloat*-1); end; end; 2: begin if t_shouru.fieldbyname('币别').asstring='USD'then begin T_Voucher_fen['FCurrencyID']:=t_cw_design.fieldbyname('币别USD').asinteger; if T_Currency.Locate('FCurrencyID',t_cw_design.fieldbyname('币别USD').asinteger,[])then T_Voucher_fen['FExchangeRate']:=T_Currency.fieldbyname('FExchangeRate').asfloat; if t_shouru.fieldbyname('金额').asfloat>0 then begin T_Voucher_fen['FAmountFor']:=s_w(2,t_shouru.fieldbyname('金额').asfloat); T_Voucher_fen['FAmount']:=s_w(2,t_shouru.fieldbyname('金额').asfloat* T_Currency.fieldbyname('FExchangeRate').asfloat); T_Voucher_fen['FDC']:=0; num_pay_all:=num_pay_all+s_w(2,t_shouru.fieldbyname('金额').asfloat* T_Currency.fieldbyname('FExchangeRate').asfloat); end else begin T_Voucher_fen['FAmountFor']:=s_w(2,t_shouru.fieldbyname('金额').asfloat*-1); T_Voucher_fen['FAmount']:=s_w(2,t_shouru.fieldbyname('金额').asfloat*-1* T_Currency.fieldbyname('FExchangeRate').asfloat); T_Voucher_fen['FDC']:=1; num_accept_all:=num_accept_all+s_w(2,t_shouru.fieldbyname('金额').asfloat* T_Currency.fieldbyname('FExchangeRate').asfloat*-1); end; end else begin T_Voucher_fen['FCurrencyID']:=t_cw_design.fieldbyname('币别RMB').asinteger; T_Voucher_fen['FExchangeRate']:=1; if t_shouru.fieldbyname('金额').asfloat>0 then begin T_Voucher_fen['FAmountFor']:=s_w(2,t_shouru.fieldbyname('金额').asfloat); T_Voucher_fen['FAmount']:=s_w(2,t_shouru.fieldbyname('金额').asfloat); T_Voucher_fen['FDC']:=0; num_pay_all:=num_pay_all+s_w(2,t_shouru.fieldbyname('金额').asfloat); end else begin T_Voucher_fen['FAmountFor']:=s_w(2,t_shouru.fieldbyname('金额').asfloat*-1); T_Voucher_fen['FAmount']:=s_w(2,t_shouru.fieldbyname('金额').asfloat*-1); T_Voucher_fen['FDC']:=1; num_accept_all:=num_accept_all+s_w(2,t_shouru.fieldbyname('金额').asfloat*-1); end; end; end; end; T_Voucher_fen.post; bill_count:=bill_count+1; except if T_Voucher_fen.state=dsinsert then T_Voucher_fen.cancel; while not T_Voucher_fen.eof do T_Voucher_fen.delete; T_Voucher_main.delete; showmessage('生成凭证失败!!'); exit; end; end; t_shouru.next; end; //业务成本 t_chengben.first; while not t_chengben.eof do begin if t_chengben.fieldbyname('科目标示').asstring<>''then begin try T_Voucher_fen.insert; T_Voucher_fen['FVoucherID']:=T_Voucher_Main.fieldbyname('FVoucherID').value; T_Voucher_fen['FEntryID']:=bill_count; T_Voucher_fen['FExplanation']:=frm_cw_pingzheng.get_str(op_type,'成本'); T_Voucher_fen['FAccountID']:=t_chengben.fieldbyname('科目标示').asinteger; T_Voucher_fen['FAccountID2']:=t_chengben.fieldbyname('科目标示').asinteger; case t_cw_design.fieldbyname('生成办法').asinteger of 1: begin T_Voucher_fen['FCurrencyID']:=t_cw_design.fieldbyname('币别RMB').asinteger; T_Voucher_fen['FExchangeRate']:=1; if t_chengben.fieldbyname('金额').asfloat>0 then begin T_Voucher_fen['FAmountFor']:=s_w(2,t_chengben.fieldbyname('金额').asfloat); T_Voucher_fen['FAmount']:=s_w(2,t_chengben.fieldbyname('金额').asfloat); T_Voucher_fen['FDC']:=1; num_accept_all:=num_accept_all+s_w(2,t_chengben.fieldbyname('金额').asfloat); end else begin T_Voucher_fen['FAmountFor']:=s_w(2,t_chengben.fieldbyname('金额').asfloat*-1); T_Voucher_fen['FAmount']:=s_w(2,t_chengben.fieldbyname('金额').asfloat*-1); T_Voucher_fen['FDC']:=0; num_pay_all:=num_pay_all+s_w(2,t_chengben.fieldbyname('金额').asfloat*-1); end; end; 2: begin if t_chengben.fieldbyname('币别').asstring='USD'then begin T_Voucher_fen['FCurrencyID']:=t_cw_design.fieldbyname('币别USD').asinteger; if T_Currency.Locate('FCurrencyID',t_cw_design.fieldbyname('币别USD').asinteger,[])then T_Voucher_fen['FExchangeRate']:=T_Currency.fieldbyname('FExchangeRate').asfloat; if t_chengben.fieldbyname('金额').asfloat>0 then begin T_Voucher_fen['FAmountFor']:=s_w(2,t_chengben.fieldbyname('金额').asfloat); T_Voucher_fen['FAmount']:=s_w(2,t_chengben.fieldbyname('金额').asfloat* T_Currency.fieldbyname('FExchangeRate').asfloat); T_Voucher_fen['FDC']:=1; num_accept_all:=num_accept_all+s_w(2,t_chengben.fieldbyname('金额').asfloat* T_Currency.fieldbyname('FExchangeRate').asfloat); end else begin T_Voucher_fen['FAmountFor']:=s_w(2,t_chengben.fieldbyname('金额').asfloat*-1); T_Voucher_fen['FAmount']:=s_w(2,t_chengben.fieldbyname('金额').asfloat*-1* T_Currency.fieldbyname('FExchangeRate').asfloat); T_Voucher_fen['FDC']:=0; num_pay_all:=num_pay_all+s_w(2,t_chengben.fieldbyname('金额').asfloat* T_Currency.fieldbyname('FExchangeRate').asfloat*-1); end; end else begin T_Voucher_fen['FCurrencyID']:=t_cw_design.fieldbyname('币别RMB').asinteger; T_Voucher_fen['FExchangeRate']:=1; if t_chengben.fieldbyname('金额').asfloat>0 then begin T_Voucher_fen['FAmountFor']:=s_w(2,t_chengben.fieldbyname('金额').asfloat); T_Voucher_fen['FAmount']:=s_w(2,t_chengben.fieldbyname('金额').asfloat); T_Voucher_fen['FDC']:=1; num_accept_all:=num_accept_all+s_w(2,t_chengben.fieldbyname('金额').asfloat); end else begin T_Voucher_fen['FAmountFor']:=s_w(2,t_chengben.fieldbyname('金额').asfloat*-1); T_Voucher_fen['FAmount']:=s_w(2,t_chengben.fieldbyname('金额').asfloat*-1); T_Voucher_fen['FDC']:=0; num_pay_all:=num_pay_all+s_w(2,t_chengben.fieldbyname('金额').asfloat*-1); end; end; end; end; T_Voucher_fen.post; bill_count:=bill_count+1; except if T_Voucher_fen.state=dsinsert then T_Voucher_fen.cancel; while not T_Voucher_fen.eof do T_Voucher_fen.delete; T_Voucher_main.delete; showmessage('生成凭证失败!!'); exit; end; end; t_chengben.next; end; if round(num_accept_all)<>round(num_pay_all) then begin showmessage('凭证借:'+floattostr(num_accept_all)+',贷:'+floattostr(num_pay_all)+',借贷不平!!'); T_Voucher_fen.first; while not T_Voucher_fen.eof do begin T_Voucher_fen.delete; end; T_Voucher_main.delete; exit; end; T_Voucher_main.edit; T_Voucher_main['FDebitTotal']:=num_accept_all; T_Voucher_main['FCreditTotal']:=num_pay_all; T_Voucher_main.post; try t_chengben.DataSource.DataSet.edit; t_chengben.DataSource.DataSet['财务']:=1; t_chengben.DataSource.DataSet['财务凭证']:=T_Voucher_Main.fieldbyname('FVoucherID').asstring; t_chengben.DataSource.DataSet.post; except if T_Voucher_fen.state=dsinsert then T_Voucher_fen.cancel; if T_Voucher_main.state=dsinsert then T_Voucher_main.cancel; if t_chengben.DataSource.DataSet.state=dsinsert then t_chengben.DataSource.DataSet.cancel; while not T_Voucher_fen.eof do T_Voucher_fen.delete; T_Voucher_main.delete; showmessage('生成凭证失败!!'); exit; end; } end; procedure Tfrm_cw_pingzheng.FormShow(Sender: TObject); var str:widestring; inifile1:Tinifile; begin inifile1:=Tinifile.Create(ExtractFilePath(application.ExeName)+'main.ini'); Edit10.Text:=inifile1.ReadString('other','Exrate','7.7'); inifile1.free; t_cw_design.open; AccInfo.DebitAccID:=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.Cash:=t_cw_design.fieldbyname('应收核算一').AsString; AccInfo.RMB:=t_cw_design.fieldbyname('应收核算二').AsString; AccInfo.USD:=t_cw_design.fieldbyname('应收核算三').AsString; CreateMemTbl; wwDBDateTimePicker21.Date:=now; RxDBLookupCombo6.DisplayValue:=employee; end; procedure Tfrm_cw_pingzheng.FormClose(Sender: TObject; var Action: TCloseAction); var inifile1:Tinifile; begin inifile1:=Tinifile.Create(ExtractFilePath(application.ExeName)+'main.ini'); inifile1.WriteString('other','Exrate',Edit10.Text); inifile1.free; 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['船名']+'/'+t_op_seai['航次'],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['船名']+'/'+t_op_seai['航次'],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['船名']+'/'+t_op_seae['航次'],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['船名']+'/'+t_op_seae['航次'],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:=t_op_balance['类型']; 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; if SaveDialog1.Execute then begin dbffile:=SaveDialog1.FileName+'.dbf'; if not copyfile(pchar(exepath),pchar(dbffile),true) then begin messagedlg( '无法保存凭证文件,请重试!',mtError,[mbyes],0); exit; end; end; source:=extractfilepath(dbffile); adbftable:=extractfilename(dbffile); // 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; tblvouitems.Active:=true; // DatabaseVouitems.Connected:=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').AsFloat:=memTblVou.fieldByName('AccMonth').AsFloat; 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)) then begin tblVouitems.FieldByName('FCLSNAME1').AsString:='客户'; tblVouitems.FieldByName('FOBJID1').AsString:=qryVouitems.FieldByName('CorpID').AsString; tblVouitems.FieldByName('FOBJNAME1').AsString:=qryVouitems.FieldByName('CorpID').AsString; end; if (trim(qryVouitems.FieldByName('AccID').AsString)=trim(AccInfo.CreditAccID)) then begin tblVouitems.FieldByName('FCLSNAME1').AsString:='客户'; tblVouitems.FieldByName('FOBJID1').AsString:=qryVouitems.FieldByName('CorpID').AsString; tblVouitems.FieldByName('FOBJNAME1').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; if qryVouitems.FieldByName('DC').AsString='D' then tblVouitems.FieldByName('FDC').AsString:='1' else tblVouitems.FieldByName('FDC').AsString:='0'; tblVouitems.FieldByName('FATTCHMENT').Asinteger:=1; 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.FieldByName('FSETTLENO').AsString:=qryVouitems.FieldByName('FSETTLENO').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['一程航班'],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['一程航班'],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['航班号'],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['航班号'],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; end.