unit u_rp_aire_query; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, dxExEdtr, DB, ADODB, BusinessSkinForm, dxDBCtrl, dxDBGrid, dxTL, dxDBTLCl, dxGrClms, dxCntner, RxLookup, wwdbdatetimepicker, StdCtrls, Mask, wwdbedit, Wwdotdot, Wwdbcomb, bsSkinCtrls, ComCtrls, bsSkinTabs; type Tfrm_rp_aire_query = class(TForm) bsSkinPageControl1: TbsSkinPageControl; bsSkinTabSheet1: TbsSkinTabSheet; bsSkinGroupBox1: TbsSkinGroupBox; bsSkinPanel1: TbsSkinPanel; bsSkinButton2: TbsSkinButton; bsSkinButton4: TbsSkinButton; bsSkinPanel2: TbsSkinPanel; Label33: TLabel; Label34: TLabel; Label35: TLabel; Label36: TLabel; RxDBLookupCombo14: TRxDBLookupCombo; wwDBComboBox39: TwwDBComboBox; wwDBComboBox40: TwwDBComboBox; query_bit: TwwDBComboBox; query_str_int: TEdit; query_date: TwwDBDateTimePicker; RxDBLookupList1: TRxDBLookupList; bsSkinGroupBox2: TbsSkinGroupBox; bsSkinPanel3: TbsSkinPanel; bsSkinButton3: TbsSkinButton; bsSkinButton7: TbsSkinButton; bsSkinButton6: TbsSkinButton; bsSkinButton9: TbsSkinButton; dxDBGrid1: TdxDBGrid; dxDBGrid1Column1: TdxDBGridPickColumn; dxDBGrid1Column2: TdxDBGridMaskColumn; dxDBGrid1Column3: TdxDBGridPickColumn; dxDBGrid1Column4: TdxDBGridMaskColumn; dxDBGrid2: TdxDBGrid; dxDBGrid2SQ_ID: TdxDBGridMaskColumn; bsSkinTabSheet2: TbsSkinTabSheet; bsSkinButton10: TbsSkinButton; bsSkinButton5: TbsSkinButton; bsSkinButton1: TbsSkinButton; bsBusinessSkinForm1: TbsBusinessSkinForm; t_sys_queryfields: TADOQuery; t_sys_queryfields1: TDataSource; t_sys_query_detail: TADOQuery; t_sys_query: TADOQuery; t_sys_query1: TDataSource; t_sys_query_detail1: TDataSource; bsSkinGroupBox3: TbsSkinGroupBox; Label6: TLabel; wwDBComboBox15: TwwDBComboBox; Edit1: TEdit; Edit2: TEdit; wwDBComboBox16: TwwDBComboBox; Label1: TLabel; Label7: TLabel; wwDBComboBox17: TwwDBComboBox; wwDBComboBox1: TwwDBComboBox; wwDBDateTimePicker1: TwwDBDateTimePicker; wwDBComboBox18: TwwDBComboBox; Label10: TLabel; Label8: TLabel; wwDBComboBox19: TwwDBComboBox; wwDBDateTimePicker3: TwwDBDateTimePicker; RxDBLookupCombo2: TRxDBLookupCombo; wwDBComboBox21: TwwDBComboBox; Label9: TLabel; Label19: TLabel; wwDBComboBox22: TwwDBComboBox; RxDBLookupCombo9: TRxDBLookupCombo; RxDBLookupCombo13: TRxDBLookupCombo; wwDBComboBox32: TwwDBComboBox; Label26: TLabel; Label20: TLabel; wwDBComboBox26: TwwDBComboBox; Edit5: TEdit; Edit6: TEdit; wwDBComboBox27: TwwDBComboBox; Label124: TLabel; Label15: TLabel; wwDBComboBox24: TwwDBComboBox; RxDBLookupCombo4: TRxDBLookupCombo; RxDBLookupCombo6: TRxDBLookupCombo; wwDBComboBox25: TwwDBComboBox; Label16: TLabel; Label3: TLabel; wwDBComboBox4: TwwDBComboBox; Edit4: TEdit; Edit3: TEdit; wwDBComboBox5: TwwDBComboBox; Label2: TLabel; Label4: TLabel; wwDBComboBox7: TwwDBComboBox; wwDBComboBox2: TwwDBComboBox; wwDBDateTimePicker2: TwwDBDateTimePicker; wwDBComboBox6: TwwDBComboBox; Label5: TLabel; Label11: TLabel; wwDBComboBox11: TwwDBComboBox; wwDBDateTimePicker4: TwwDBDateTimePicker; RxDBLookupCombo1: TRxDBLookupCombo; wwDBComboBox9: TwwDBComboBox; Label12: TLabel; Label18: TLabel; wwDBComboBox8: TwwDBComboBox; RxDBLookupCombo8: TRxDBLookupCombo; Edit9: TEdit; wwDBComboBox38: TwwDBComboBox; Label32: TLabel; Label22: TLabel; wwDBComboBox28: TwwDBComboBox; RxDBLookupCombo10: TRxDBLookupCombo; RxDBLookupCombo12: TRxDBLookupCombo; wwDBComboBox29: TwwDBComboBox; Label23: TLabel; Label14: TLabel; wwDBComboBox14: TwwDBComboBox; RxDBLookupCombo3: TRxDBLookupCombo; RxDBLookupCombo5: TRxDBLookupCombo; wwDBComboBox13: TwwDBComboBox; Label13: TLabel; bsSkinGroupBox4: TbsSkinGroupBox; Label27: TLabel; Label29: TLabel; Label37: TLabel; Label38: TLabel; wwDBComboBox31: TwwDBComboBox; RxDBLookupCombo15: TRxDBLookupCombo; wwDBComboBox33: TwwDBComboBox; wwDBComboBox34: TwwDBComboBox; RxDBLookupCombo16: TRxDBLookupCombo; wwDBComboBox41: TwwDBComboBox; wwDBComboBox42: TwwDBComboBox; RxDBLookupCombo17: TRxDBLookupCombo; procedure FormShow(Sender: TObject); procedure bsSkinButton10Click(Sender: TObject); procedure bsSkinButton1Click(Sender: TObject); procedure bsSkinButton5Click(Sender: TObject); procedure RxDBLookupCombo14Change(Sender: TObject); procedure bsSkinButton2Click(Sender: TObject); procedure bsSkinButton4Click(Sender: TObject); procedure RxDBLookupList1DblClick(Sender: TObject); procedure t_sys_queryAfterInsert(DataSet: TDataSet); procedure t_sys_query_detailAfterScroll(DataSet: TDataSet); procedure t_sys_query_detailBeforePost(DataSet: TDataSet); procedure bsSkinButton6Click(Sender: TObject); procedure bsSkinButton9Click(Sender: TObject); procedure do_1(str_bill:widestring); procedure do_2(str_bill:widestring); private { Private declarations } public { Public declarations } end; var frm_rp_aire_query: Tfrm_rp_aire_query; rp_aire_query_num,rp_aire_query_type:integer; rp_aire_query_str,rp_aire_query_limited:string; implementation uses u_main, u_rp_in_aire, u_rp_no_aire, u_data_share, my_sys_function; {$R *.dfm} procedure Tfrm_rp_aire_query.do_2(str_bill:widestring); begin frm_rp_in_aire.p_bill.close; frm_rp_in_aire.p_bill.Parameters.ParamByName('SQLStr').value:= 'SELECT t_ch_fee.编号, t_ch_fee.客户名称,SUM(case t_ch_fee.币别' +' when '+''''+'USD'+''''+' then t_ch_fee.金额 else 0 end) as 应开USD,' +'SUM(case t_ch_fee.币别 when '+''''+'USD'+''''+' then t_ch_fee.开票金额' +' else 0 end) as 已开USD,SUM(case t_ch_fee.币别' +' when '+''''+'USD'+''''+' then t_ch_fee.金额-t_ch_fee.开票金额' +' else 0 end) as 未开USD,SUM(case t_ch_fee.币别' +' when '+''''+'USD'+''''+' then 0 else t_ch_fee.金额*t_ch_fee.汇率' +' end) as 应开RMB,SUM(case t_ch_fee.币别' +' when '+''''+'USD'+''''+' then 0 else t_ch_fee.开票金额*t_ch_fee.汇率' +' end) as 已开RMB,SUM(case t_ch_fee.币别 when '+''''+'USD'+''''+' then 0' +' else (t_ch_fee.金额-t_ch_fee.开票金额)*t_ch_fee.汇率' +' end) as 未开RMB,sum(t_ch_fee.金额*t_ch_fee.汇率) as 应开合计,' +' sum(t_ch_fee.开票金额*t_ch_fee.汇率) as 已开合计,' +' sum((t_ch_fee.金额-t_ch_fee.开票金额)*t_ch_fee.汇率) as 未开合计,' +'t_op_aire.业务编号, t_op_aire.周次, t_op_aire.会计期间, t_op_aire.主运单号,' +'t_op_aire.分运单号, t_op_aire.委托编号,' +'t_op_aire.委托单位, t_op_aire.代理, ' +'t_op_aire.一程航班, t_op_aire.一程开航日期,' +'t_op_aire.始发港, t_op_aire.目的港, t_op_aire.货物名称,' +'t_op_aire.件数, t_op_aire.计价重量,t_op_aire.操作员,' +'t_op_aire.揽货人, t_op_aire.客服员,' +'t_op_aire.航空公司,t_op_aire.报关行' +' FROM t_ch_fee inner join t_op_aire on t_op_aire.编号=t_ch_fee.编号 ' +str_bill+' and t_ch_fee.类型='+''''+'收'+'''' +' GROUP BY t_ch_fee.编号, t_ch_fee.客户名称,' +'t_op_aire.业务编号, t_op_aire.周次, t_op_aire.会计期间, t_op_aire.主运单号,' +'t_op_aire.分运单号, t_op_aire.委托编号,' +'t_op_aire.委托单位, t_op_aire.代理,' +'t_op_aire.一程航班, t_op_aire.一程开航日期,' +'t_op_aire.始发港, t_op_aire.目的港, t_op_aire.货物名称,' +'t_op_aire.件数, t_op_aire.计价重量,t_op_aire.操作员,' +'t_op_aire.揽货人, t_op_aire.客服员,' +'t_op_aire.航空公司, t_op_aire.报关行' +default_sort_two(55,'t_op_aire','t_ch_fee.客户名称','',''); frm_rp_in_aire.p_bill.open; frm_rp_in_aire.p_client.close; frm_rp_in_aire.p_client.Parameters.ParamByName('SQLStr').value:= 'SELECT t_ch_fee.客户名称,SUM(case t_ch_fee.币别' +' when '+''''+'USD'+''''+' then t_ch_fee.金额 else 0 end) as 应开USD,' +'SUM(case t_ch_fee.币别 when '+''''+'USD'+''''+' then t_ch_fee.开票金额' +' else 0 end) as 已开USD,SUM(case t_ch_fee.币别' +' when '+''''+'USD'+''''+' then t_ch_fee.金额-t_ch_fee.开票金额' +' else 0 end) as 未开USD,SUM(case t_ch_fee.币别' +' when '+''''+'USD'+''''+' then 0 else t_ch_fee.金额*t_ch_fee.汇率' +' end) as 应开RMB,SUM(case t_ch_fee.币别' +' when '+''''+'USD'+''''+' then 0 else t_ch_fee.开票金额*t_ch_fee.汇率' +' end) as 已开RMB,SUM(case t_ch_fee.币别 when '+''''+'USD'+''''+' then 0' +' else (t_ch_fee.金额-t_ch_fee.开票金额)*t_ch_fee.汇率' +' end) as 未开RMB,sum(t_ch_fee.金额*t_ch_fee.汇率) as 应开合计,' +' sum(t_ch_fee.开票金额*t_ch_fee.汇率) as 已开合计,' +' sum((t_ch_fee.金额-t_ch_fee.开票金额)*t_ch_fee.汇率) as 未开合计' +' FROM t_ch_fee inner join t_op_aire on t_op_aire.编号=t_ch_fee.编号 ' +str_bill+' and t_ch_fee.类型='+''''+'收'+'''' +' GROUP BY t_ch_fee.客户名称' +' order by t_ch_fee.客户名称'; frm_rp_in_aire.p_client.open; frm_rp_in_aire.p_sales.close; frm_rp_in_aire.p_sales.Parameters.ParamByName('SQLStr').value:= 'SELECT t_op_aire.揽货人,SUM(case t_ch_fee.币别' +' when '+''''+'USD'+''''+' then t_ch_fee.金额 else 0 end) as 应开USD,' +'SUM(case t_ch_fee.币别 when '+''''+'USD'+''''+' then t_ch_fee.开票金额' +' else 0 end) as 已开USD,SUM(case t_ch_fee.币别' +' when '+''''+'USD'+''''+' then t_ch_fee.金额-t_ch_fee.开票金额' +' else 0 end) as 未开USD,SUM(case t_ch_fee.币别' +' when '+''''+'USD'+''''+' then 0 else t_ch_fee.金额*t_ch_fee.汇率' +' end) as 应开RMB,SUM(case t_ch_fee.币别' +' when '+''''+'USD'+''''+' then 0 else t_ch_fee.开票金额*t_ch_fee.汇率' +' end) as 已开RMB,SUM(case t_ch_fee.币别 when '+''''+'USD'+''''+' then 0' +' else (t_ch_fee.金额-t_ch_fee.开票金额)*t_ch_fee.汇率' +' end) as 未开RMB,sum(t_ch_fee.金额*t_ch_fee.汇率) as 应开合计,' +' sum(t_ch_fee.开票金额*t_ch_fee.汇率) as 已开合计,' +' sum((t_ch_fee.金额-t_ch_fee.开票金额)*t_ch_fee.汇率) as 未开合计' +' FROM t_ch_fee inner join t_op_aire on t_op_aire.编号=t_ch_fee.编号 ' +str_bill+' and t_ch_fee.类型='+''''+'收'+'''' +' GROUP BY t_op_aire.揽货人' +' order by t_op_aire.揽货人'; frm_rp_in_aire.p_sales.open; end; procedure Tfrm_rp_aire_query.do_1(str_bill:widestring); begin frm_rp_no_aire.p_accept_bill.close; frm_rp_no_aire.p_accept_bill.Parameters.ParamByName('SQLStr').value:= 'SELECT t_ch_fee.编号, t_ch_fee.客户名称,SUM(case t_ch_fee.币别' +' when '+''''+'USD'+''''+' then t_ch_fee.金额 else 0 end) as 应收USD,' +'SUM(case t_ch_fee.币别 when '+''''+'USD'+''''+' then t_ch_fee.结算金额' +' else 0 end) as 已收USD,SUM(case t_ch_fee.币别' +' when '+''''+'USD'+''''+' then t_ch_fee.金额-t_ch_fee.结算金额' +' else 0 end) as 未收USD,SUM(case t_ch_fee.币别' +' when '+''''+'USD'+''''+' then 0 else t_ch_fee.金额*t_ch_fee.汇率' +' end) as 应收RMB,SUM(case t_ch_fee.币别' +' when '+''''+'USD'+''''+' then 0 else t_ch_fee.结算金额*t_ch_fee.汇率' +' end) as 已收RMB,SUM(case t_ch_fee.币别 when '+''''+'USD'+''''+' then 0' +' else (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' end) as 未收RMB,sum(t_ch_fee.金额*t_ch_fee.汇率) as 应收合计,' +' sum(t_ch_fee.结算金额*t_ch_fee.汇率) as 已收合计,' +' sum((t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率) as 未收合计,' +'t_op_aire.业务编号, t_op_aire.周次, t_op_aire.会计期间, t_op_aire.主运单号,' +'t_op_aire.分运单号, t_op_aire.委托编号, ' +'t_op_aire.委托单位, t_op_aire.代理, ' +'t_op_aire.一程航班,t_op_aire.一程开航日期,' +'t_op_aire.始发港, t_op_aire.目的港, t_op_aire.货物名称,' +'t_op_aire.件数, t_op_aire.计价重量, t_op_aire.操作员,' +'t_op_aire.揽货人, t_op_aire.客服员,' +'t_op_aire.航空公司, t_op_aire.报关行, DATEDIFF([day],t_op_aire.一程开航日期, GETDATE()) AS 实际天数,' +'isnull(t_crm_client.结费期限,0) as 结费期限,' +'(DATEDIFF([day],t_op_aire.一程开航日期, GETDATE())-isnull(t_crm_client.结费期限,0)) as 超期天数' +' FROM t_ch_fee inner join t_op_aire on t_op_aire.编号=t_ch_fee.编号 left join t_crm_client ' +' on t_ch_fee.客户名称=t_crm_client.客户简称 ' +str_bill+' and t_ch_fee.类型='+''''+'收'+'''' +' GROUP BY t_ch_fee.编号, t_ch_fee.客户名称,' +'t_op_aire.业务编号, t_op_aire.周次, t_op_aire.会计期间, t_op_aire.主运单号,' +'t_op_aire.分运单号, t_op_aire.委托编号, ' +'t_op_aire.委托单位, t_op_aire.代理, ' +'t_op_aire.一程航班,t_op_aire.一程开航日期,' +'t_op_aire.始发港, t_op_aire.目的港, t_op_aire.货物名称,' +'t_op_aire.件数, t_op_aire.计价重量, t_op_aire.操作员,' +'t_op_aire.揽货人, t_op_aire.客服员,' +'t_op_aire.航空公司, t_op_aire.报关行 , DATEDIFF([day],t_op_aire.一程开航日期, GETDATE()),' +'isnull(t_crm_client.结费期限,0),' +'(DATEDIFF([day],t_op_aire.一程开航日期, GETDATE())-isnull(t_crm_client.结费期限,0))' +default_sort_two(55,'t_op_aire','t_ch_fee.客户名称','',''); frm_rp_no_aire.p_accept_bill.Open; frm_rp_no_aire.p_accept_fee.close; frm_rp_no_aire.p_accept_fee.Parameters.ParamByName('SQLStr').value:= 'SELECT t_ch_fee.编号, t_ch_fee.客户名称, t_ch_fee.费用名称,t_ch_fee.币别,t_ch_fee.金额 as 应收金额,' +'t_ch_fee.结算金额 as 已收金额,(t_ch_fee.金额-t_ch_fee.结算金额) as 未收金额,' +'t_op_aire.业务编号, t_op_aire.周次, t_op_aire.会计期间, t_op_aire.主运单号,' +'t_op_aire.分运单号, t_op_aire.委托编号, ' +'t_op_aire.委托单位, t_op_aire.代理, ' +'t_op_aire.一程航班,t_op_aire.一程开航日期,' +'t_op_aire.始发港, t_op_aire.目的港, t_op_aire.货物名称,' +'t_op_aire.件数, t_op_aire.计价重量,t_op_aire.操作员,' +'t_op_aire.揽货人, t_op_aire.客服员,' +'t_op_aire.航空公司, t_op_aire.报关行' +' FROM t_ch_fee inner join t_op_aire on t_op_aire.编号=t_ch_fee.编号 ' +str_bill+' and t_ch_fee.类型='+''''+'收'+'''' +default_sort_two(55,'t_op_aire','t_ch_fee.客户名称','',''); frm_rp_no_aire.p_accept_fee.Open; frm_rp_no_aire.p_pay_bill.close; frm_rp_no_aire.p_pay_bill.Parameters.ParamByName('SQLStr').value:= 'SELECT t_ch_fee.编号, t_ch_fee.客户名称,SUM(case t_ch_fee.币别' +' when '+''''+'USD'+''''+' then t_ch_fee.金额 else 0 end) as 应付USD,' +'SUM(case t_ch_fee.币别 when '+''''+'USD'+''''+' then t_ch_fee.结算金额' +' else 0 end) as 已付USD,SUM(case t_ch_fee.币别' +' when '+''''+'USD'+''''+' then t_ch_fee.金额-t_ch_fee.结算金额' +' else 0 end) as 未付USD,SUM(case t_ch_fee.币别' +' when '+''''+'USD'+''''+' then 0 else t_ch_fee.金额*t_ch_fee.汇率' +' end) as 应付RMB,SUM(case t_ch_fee.币别' +' when '+''''+'USD'+''''+' then 0 else t_ch_fee.结算金额*t_ch_fee.汇率' +' end) as 已付RMB,SUM(case t_ch_fee.币别 when '+''''+'USD'+''''+' then 0' +' else (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' end) as 未付RMB,sum(t_ch_fee.金额*t_ch_fee.汇率) as 应付合计,' +' sum(t_ch_fee.结算金额*t_ch_fee.汇率) as 已付合计,' +' sum((t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率) as 未付合计,' +'t_op_aire.业务编号, t_op_aire.周次, t_op_aire.会计期间, t_op_aire.主运单号,' +'t_op_aire.分运单号, t_op_aire.委托编号, ' +'t_op_aire.委托单位, t_op_aire.代理, ' +'t_op_aire.一程航班,t_op_aire.一程开航日期,' +'t_op_aire.始发港, t_op_aire.目的港, t_op_aire.货物名称,' +'t_op_aire.件数, t_op_aire.计价重量,t_op_aire.操作员,' +'t_op_aire.揽货人, t_op_aire.客服员,' +'t_op_aire.航空公司, t_op_aire.报关行' +' FROM t_ch_fee inner join t_op_aire on t_op_aire.编号=t_ch_fee.编号 ' +str_bill+' and t_ch_fee.类型='+''''+'付'+'''' +' GROUP BY t_ch_fee.编号, t_ch_fee.客户名称,' +'t_op_aire.业务编号, t_op_aire.周次, t_op_aire.会计期间, t_op_aire.主运单号,' +'t_op_aire.分运单号, t_op_aire.委托编号, ' +'t_op_aire.委托单位, t_op_aire.代理, ' +'t_op_aire.一程航班,t_op_aire.一程开航日期,' +'t_op_aire.始发港, t_op_aire.目的港, t_op_aire.货物名称,' +'t_op_aire.件数, t_op_aire.计价重量,t_op_aire.操作员,' +'t_op_aire.揽货人, t_op_aire.客服员,' +'t_op_aire.航空公司, t_op_aire.报关行' +default_sort_two(55,'t_op_aire','t_ch_fee.客户名称','',''); frm_rp_no_aire.p_pay_bill.Open; frm_rp_no_aire.p_pay_fee.close; frm_rp_no_aire.p_pay_fee.Parameters.ParamByName('SQLStr').value:= 'SELECT t_ch_fee.编号, t_ch_fee.客户名称, t_ch_fee.费用名称,t_ch_fee.币别,t_ch_fee.金额 as 应付金额,' +'t_ch_fee.结算金额 as 已付金额,(t_ch_fee.金额-t_ch_fee.结算金额) as 未付金额,' +'t_op_aire.业务编号, t_op_aire.周次, t_op_aire.会计期间, t_op_aire.主运单号,' +'t_op_aire.分运单号, t_op_aire.委托编号, ' +'t_op_aire.委托单位, t_op_aire.代理, ' +'t_op_aire.一程航班,t_op_aire.一程开航日期,' +'t_op_aire.始发港, t_op_aire.目的港, t_op_aire.货物名称,' +'t_op_aire.件数, t_op_aire.计价重量,t_op_aire.操作员,' +'t_op_aire.揽货人, t_op_aire.客服员,' +'t_op_aire.航空公司, t_op_aire.报关行' +' FROM t_ch_fee inner join t_op_aire on t_op_aire.编号=t_ch_fee.编号 ' +str_bill+' and t_ch_fee.类型='+''''+'付'+'''' +default_sort_two(55,'t_op_aire','t_ch_fee.客户名称','',''); frm_rp_no_aire.p_pay_fee.Open; frm_rp_no_aire.p_total_client.close; frm_rp_no_aire.p_total_client.Parameters.ParamByName('SQLStr').value:= 'SELECT t_ch_fee.客户名称,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.金额 else 0 end) ELSE 0 END) as 应收USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.结算金额 else 0 end) ELSE 0 END) as 已收USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.金额-t_ch_fee.结算金额 else 0 end) ELSE 0 END) as 未收USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else t_ch_fee.金额*t_ch_fee.汇率 end) ELSE 0 END) as 应收RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else t_ch_fee.结算金额*t_ch_fee.汇率 end) ELSE 0 END) as 已收RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 end) ELSE 0 END) as 未收RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN t_ch_fee.金额*t_ch_fee.汇率 ELSE 0 END) as 应收合计,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN t_ch_fee.结算金额*t_ch_fee.汇率 ELSE 0 END) as 已收合计,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 ELSE 0 END) as 未收合计,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.金额 else 0 end) ELSE 0 END) as 应付USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.结算金额 else 0 end) ELSE 0 END) as 已付USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.金额-t_ch_fee.结算金额 else 0 end) ELSE 0 END) as 未付USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else t_ch_fee.金额*t_ch_fee.汇率 end) ELSE 0 END) as 应付RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else t_ch_fee.结算金额*t_ch_fee.汇率 end) ELSE 0 END) as 已付RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 end) ELSE 0 END) as 未付RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN t_ch_fee.金额*t_ch_fee.汇率 ELSE 0 END) as 应付合计,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN t_ch_fee.结算金额*t_ch_fee.汇率 ELSE 0 END) as 已付合计,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 ELSE 0 END) as 未付合计,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.金额-t_ch_fee.结算金额 else 0 end) ELSE 0 END' +'-CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.金额-t_ch_fee.结算金额 else 0 end) ELSE 0 END) as 差额USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 end) ELSE 0 END' +'-CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 end) ELSE 0 END) as 差额RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 ELSE 0 END' +'-CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (t_ch_fee.金额-t_ch_fee.结算金额)*汇率 ELSE 0 END) as 差额合计' +' FROM t_ch_fee inner join t_op_aire on t_op_aire.编号=t_ch_fee.编号 ' +str_bill+' GROUP BY t_ch_fee.客户名称 order by t_ch_fee.客户名称'; frm_rp_no_aire.p_total_client.Open; frm_rp_no_aire.p_total_sales.close; frm_rp_no_aire.p_total_sales.Parameters.ParamByName('SQLStr').value:= 'SELECT t_op_aire.揽货人,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.金额 else 0 end) ELSE 0 END) as 应收USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.结算金额 else 0 end) ELSE 0 END) as 已收USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.金额-t_ch_fee.结算金额 else 0 end) ELSE 0 END) as 未收USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else t_ch_fee.金额*t_ch_fee.汇率 end) ELSE 0 END) as 应收RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else t_ch_fee.结算金额*t_ch_fee.汇率 end) ELSE 0 END) as 已收RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 end) ELSE 0 END) as 未收RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN t_ch_fee.金额*t_ch_fee.汇率 ELSE 0 END) as 应收合计,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN t_ch_fee.结算金额*t_ch_fee.汇率 ELSE 0 END) as 已收合计,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 ELSE 0 END) as 未收合计,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.金额 else 0 end) ELSE 0 END) as 应付USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.结算金额 else 0 end) ELSE 0 END) as 已付USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.金额-t_ch_fee.结算金额 else 0 end) ELSE 0 END) as 未付USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else t_ch_fee.金额*t_ch_fee.汇率 end) ELSE 0 END) as 应付RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else t_ch_fee.结算金额*t_ch_fee.汇率 end) ELSE 0 END) as 已付RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 end) ELSE 0 END) as 未付RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN t_ch_fee.金额*t_ch_fee.汇率 ELSE 0 END) as 应付合计,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN t_ch_fee.结算金额*t_ch_fee.汇率 ELSE 0 END) as 已付合计,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 ELSE 0 END) as 未付合计,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.金额-t_ch_fee.结算金额 else 0 end) ELSE 0 END' +'-CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.金额-t_ch_fee.结算金额 else 0 end) ELSE 0 END) as 差额USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 end) ELSE 0 END' +'-CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 end) ELSE 0 END) as 差额RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 ELSE 0 END' +'-CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (t_ch_fee.金额-t_ch_fee.结算金额)*汇率 ELSE 0 END) as 差额合计' +' FROM t_ch_fee inner join t_op_aire on t_op_aire.编号=t_ch_fee.编号 ' +str_bill+' GROUP BY t_op_aire.揽货人 order by t_op_aire.揽货人'; frm_rp_no_aire.p_total_sales.Open; frm_rp_no_aire.p_total.close; frm_rp_no_aire.p_total.Parameters.ParamByName('SQLStr').value:= 'SELECT '+''''+'合计'+''''+' as 顺序,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.金额 else 0 end) ELSE 0 END) as 应收USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.结算金额 else 0 end) ELSE 0 END) as 已收USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.金额-t_ch_fee.结算金额 else 0 end) ELSE 0 END) as 未收USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else t_ch_fee.金额*t_ch_fee.汇率 end) ELSE 0 END) as 应收RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else t_ch_fee.结算金额*t_ch_fee.汇率 end) ELSE 0 END) as 已收RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 end) ELSE 0 END) as 未收RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN t_ch_fee.金额*t_ch_fee.汇率 ELSE 0 END) as 应收合计,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN t_ch_fee.结算金额*t_ch_fee.汇率 ELSE 0 END) as 已收合计,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 ELSE 0 END) as 未收合计,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.金额 else 0 end) ELSE 0 END) as 应付USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.结算金额 else 0 end) ELSE 0 END) as 已付USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.金额-t_ch_fee.结算金额 else 0 end) ELSE 0 END) as 未付USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else t_ch_fee.金额*t_ch_fee.汇率 end) ELSE 0 END) as 应付RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else t_ch_fee.结算金额*t_ch_fee.汇率 end) ELSE 0 END) as 已付RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 end) ELSE 0 END) as 未付RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN t_ch_fee.金额*t_ch_fee.汇率 ELSE 0 END) as 应付合计,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN t_ch_fee.结算金额*t_ch_fee.汇率 ELSE 0 END) as 已付合计,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 ELSE 0 END) as 未付合计,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.金额-t_ch_fee.结算金额 else 0 end) ELSE 0 END' +'-CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then t_ch_fee.金额-t_ch_fee.结算金额 else 0 end) ELSE 0 END) as 差额USD,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 end) ELSE 0 END' +'-CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (case t_ch_fee.币别 when '+''''+'USD'+'''' +' then 0 else (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 end) ELSE 0 END) as 差额RMB,' +'SUM(CASE t_ch_fee.类型 WHEN '+''''+'收'+'''' +' THEN (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率 ELSE 0 END' +'-CASE t_ch_fee.类型 WHEN '+''''+'付'+'''' +' THEN (t_ch_fee.金额-t_ch_fee.结算金额)*汇率 ELSE 0 END) as 差额合计' +' FROM t_ch_fee inner join t_op_aire on t_op_aire.编号=t_ch_fee.编号 ' +str_bill; frm_rp_no_aire.p_total.Open; end; procedure Tfrm_rp_aire_query.FormShow(Sender: TObject); begin wwDBComboBox15.text:='模糊'; wwDBComboBox16.text:='模糊'; wwDBComboBox4.text:='模糊'; wwDBComboBox5.text:='模糊'; wwDBComboBox17.text:='等于'; wwDBComboBox7.text:='等于'; wwDBComboBox18.text:='大于'; wwDBComboBox6.text:='小于'; wwDBComboBox11.text:='小于'; wwDBComboBox19.text:='大于'; wwDBComboBox21.text:='等于'; wwDBComboBox22.text:='等于'; wwDBComboBox24.text:='等于'; wwDBComboBox25.text:='等于'; wwDBComboBox26.text:='模糊'; wwDBComboBox27.text:='模糊'; wwDBComboBox9.text:='等于'; wwDBComboBox8.text:='等于'; wwDBComboBox13.text:='等于'; wwDBComboBox14.text:='等于'; wwDBComboBox28.text:='等于'; wwDBComboBox29.text:='等于'; wwDBComboBox32.text:='等于'; wwDBComboBox38.text:='等于'; wwDBComboBox31.text:='等于'; wwDBComboBox33.text:='等于'; wwDBComboBox41.text:='等于'; wwDBComboBox42.text:='等于'; frm_data_share.t_code_state.Filtered:=false; frm_data_share.t_code_state.Filter:='业务种类='+''''+'空运出口'+''''; frm_data_share.t_code_state.Filtered:=true; frm_data_share.t_code_fee.Filtered:=false; frm_data_share.t_code_fee.Filter:='空运=1'; frm_data_share.t_code_fee.Filtered:=true; frm_data_share.t_code_state.first; while not frm_data_share.t_code_state.eof do begin wwDBComboBox1.Items.Add(frm_data_share.t_code_state.fieldbyname('业务状态').asstring); frm_data_share.t_code_state.next; end; wwDBComboBox1.Items.Add('业务封帐'); t_sys_query.Parameters.ParamByName('查询类型').Value:=rp_aire_query_str; t_sys_query.Parameters.ParamByName('录入人').Value:=employee; t_sys_query.open; t_sys_query_detail.open; t_sys_queryfields.open; wwDBComboBox39.ItemIndex:=0; end; procedure Tfrm_rp_aire_query.bsSkinButton10Click(Sender: TObject); begin Edit1.text:=''; Edit2.text:=''; Edit3.text:=''; Edit4.text:=''; Edit5.text:=''; Edit6.text:=''; wwDBComboBox1.text:=''; wwDBComboBox2.text:=''; wwDBDateTimePicker1.Clear; wwDBDateTimePicker2.Clear; wwDBDateTimePicker3.Clear; wwDBDateTimePicker4.Clear; RxDBLookupCombo2.ClearValue; RxDBLookupCombo1.ClearValue; RxDBLookupCombo9.ClearValue; RxDBLookupCombo8.ClearValue; RxDBLookupCombo4.ClearValue; RxDBLookupCombo3.ClearValue; RxDBLookupCombo6.ClearValue; RxDBLookupCombo5.ClearValue; RxDBLookupCombo10.ClearValue; RxDBLookupCombo12.ClearValue; RxDBLookupCombo15.ClearValue; wwDBComboBox34.text:=''; RxDBLookupCombo16.ClearValue; RxDBLookupCombo17.ClearValue; end; procedure Tfrm_rp_aire_query.bsSkinButton1Click(Sender: TObject); var str:widestring; begin str:=''; if bsSkinTabSheet2.Showing then begin str:=query_tiaojian(1,str,'t_op_aire.业务编号',wwDBComboBox15.text,Edit1.text); str:=query_tiaojian(1,str,'t_op_aire.委托编号',wwDBComboBox4.text,Edit4.text); str:=query_tiaojian(1,str,'t_op_aire.主运单号',wwDBComboBox16.text,Edit2.text); str:=query_tiaojian(1,str,'t_op_aire.分运单号',wwDBComboBox5.text,Edit3.text); str:=query_tiaojian(1,str,'t_op_aire.业务状态',wwDBComboBox17.text,wwDBComboBox1.text); str:=query_tiaojian(1,str,'t_op_aire.费用状态',wwDBComboBox7.text,wwDBComboBox2.text); str:=query_tiaojian(1,str,'t_op_aire.一程开航日期',wwDBComboBox18.text,wwDBDateTimePicker1.text); str:=query_tiaojian(1,str,'t_op_aire.一程开航日期',wwDBComboBox6.text,wwDBDateTimePicker2.text); str:=query_tiaojian(1,str,'t_op_aire.会计期间',wwDBComboBox19.text,wwDBDateTimePicker3.text); str:=query_tiaojian(1,str,'t_op_aire.会计期间',wwDBComboBox11.text,wwDBDateTimePicker4.text); str:=query_tiaojian(1,str,'t_op_aire.委托单位',wwDBComboBox21.text,RxDBLookupCombo2.DisplayValues[1]); str:=query_tiaojian(1,str,'t_op_aire.航空公司',wwDBComboBox9.text,RxDBLookupCombo1.DisplayValues[1]); str:=query_tiaojian(1,str,'t_op_aire.报关行',wwDBComboBox22.text,RxDBLookupCombo9.DisplayValues[1]); str:=query_tiaojian(1,str,'t_op_aire.代理',wwDBComboBox8.text,RxDBLookupCombo8.DisplayValues[1]); str:=query_tiaojian(1,str,'t_op_aire.始发港',wwDBComboBox26.text,edit5.text); str:=query_tiaojian(1,str,'t_op_aire.目的港',wwDBComboBox27.text,edit6.text); str:=query_tiaojian(1,str,'t_op_aire.客服员',wwDBComboBox24.text,RxDBLookupCombo4.DisplayValue); str:=query_tiaojian(1,str,'t_op_aire.揽货人',wwDBComboBox14.text,RxDBLookupCombo3.DisplayValue); str:=query_tiaojian(1,str,'t_op_aire.操作员',wwDBComboBox25.text,RxDBLookupCombo6.DisplayValue); str:=query_tiaojian(1,str,'t_op_aire.录入人',wwDBComboBox13.text,RxDBLookupCombo5.DisplayValue); str:=query_tiaojian(1,str,'t_op_aire.销售部门',wwDBComboBox28.text,RxDBLookupCombo10.DisplayValue); str:=query_tiaojian(1,str,'t_op_aire.操作部门',wwDBComboBox29.text,RxDBLookupCombo12.DisplayValue); str:=query_tiaojian(1,str,'t_op_aire.货物名称',wwDBComboBox32.text,RxDBLookupCombo13.DisplayValues[1]); str:=query_tiaojian(2,str,'t_op_aire.周次',wwDBComboBox38.text,Edit9.text); str:=query_tiaojian(1,str,'t_ch_fee.客户名称',wwDBComboBox31.text,RxDBLookupCombo15.DisplayValues[1]); str:=query_tiaojian(1,str,'t_ch_fee.币别',wwDBComboBox41.text,RxDBLookupCombo16.DisplayValues[0]); str:=query_tiaojian(1,str,'t_ch_fee.费用名称',wwDBComboBox42.text,RxDBLookupCombo17.DisplayValues[1]); str:=query_tiaojian(1,str,'t_ch_fee.类型',wwDBComboBox33.text,wwDBComboBox34.text); end else begin if query_wanneng_error(t_sys_query_detail)then begin showmessage('‘或’的条件必须在2个以上!!'); exit; end; str:=query_wanneng(t_sys_query_detail); end; if rp_aire_query_limited<>'no'then begin if trim(str)='' then begin str:='where '+open_data(rp_aire_query_limited,'t_op_aire.揽货人','t_op_aire.操作员','t_op_aire.客服员','no','no'); end else begin str:=str+' and '+open_data(rp_aire_query_limited,'t_op_aire.揽货人','t_op_aire.操作员','t_op_aire.客服员','no','no'); end; end; case rp_aire_query_type of 1: begin if str='' then str:='where t_ch_fee.金额<>t_ch_fee.结算金额' else str:=str+' and t_ch_fee.金额<>t_ch_fee.结算金额'; end; 2: begin if str='' then str:='where t_ch_fee.结算金额<>0' else str:=str+' and t_ch_fee.结算金额<>0'; end; end; case rp_aire_query_num of 1: begin frm_rp_aire_query.do_1(str); end; 2: begin frm_rp_aire_query.do_2(str); end; end; close; end; procedure Tfrm_rp_aire_query.bsSkinButton5Click(Sender: TObject); begin close; end; procedure Tfrm_rp_aire_query.RxDBLookupCombo14Change(Sender: TObject); begin query_str_int.text:=''; query_bit.text:=''; query_date.text:=''; if t_sys_queryfields.Locate('字段名称',RxDBLookupCombo14.DisplayValue,[])then begin wwDBComboBox40.ItemIndex:=-1; wwDBComboBox40.Items.Clear; if (t_sys_queryfields.FieldByName('类型').asstring='varchar') then begin query_str_int.Visible:=true; query_bit.Visible:=false; query_date.Visible:=false; wwDBComboBox40.Items.Add('等于'); wwDBComboBox40.Items.Add('不等于'); wwDBComboBox40.Items.Add('模糊'); wwDBComboBox40.ItemIndex:=2; end; if (t_sys_queryfields.FieldByName('类型').asstring='int') then begin query_str_int.Visible:=true; query_bit.Visible:=false; query_date.Visible:=false; wwDBComboBox40.Items.Add('等于'); wwDBComboBox40.Items.Add('不等于'); wwDBComboBox40.Items.Add('大于'); wwDBComboBox40.Items.Add('小于'); wwDBComboBox40.ItemIndex:=0; end; if (t_sys_queryfields.FieldByName('类型').asstring='bit') then begin query_str_int.Visible:=false; query_bit.Visible:=true; query_date.Visible:=false; wwDBComboBox40.Items.Add('等于'); wwDBComboBox40.Items.Add('不等于'); wwDBComboBox40.ItemIndex:=0; end; if (t_sys_queryfields.FieldByName('类型').asstring='date') then begin query_str_int.Visible:=false; query_bit.Visible:=false; query_date.Visible:=true; wwDBComboBox40.Items.Add('等于'); wwDBComboBox40.Items.Add('不等于'); wwDBComboBox40.Items.Add('大于'); wwDBComboBox40.Items.Add('小于'); wwDBComboBox40.ItemIndex:=0; end; end else begin query_str_int.Visible:=false; query_bit.Visible:=false; query_date.Visible:=false; end; end; procedure Tfrm_rp_aire_query.bsSkinButton2Click(Sender: TObject); begin if RxDBLookupCombo14.DisplayValue='' then begin showmessage('请输入条件名称!!'); exit; end; if wwDBComboBox39.ItemIndex=-1 then begin showmessage('请输入条件关系!!'); exit; end; if wwDBComboBox40.ItemIndex=-1 then begin showmessage('请输入查询类型!!'); exit; end; if query_str_int.Visible then begin if query_str_int.text='' then begin showmessage('请输入条件值!!'); exit; end; if (t_sys_queryfields.FieldByName('类型').asstring='int') then begin try strtoint(query_str_int.text); except showmessage('条件值只能输入数字!!'); exit; end; end; end; if query_bit.Visible then begin if query_bit.ItemIndex=-1 then begin showmessage('请输入条件值!!'); exit; end; end; if query_date.Visible then begin if query_date.text='' then begin showmessage('请输入条件值!!'); exit; end; end; if t_sys_query.IsEmpty then begin t_sys_query.Insert; t_sys_query.post; end; t_sys_query_detail.Append; t_sys_query_detail['表']:=t_sys_queryfields['表']; t_sys_query_detail['字段名']:=t_sys_queryfields['字段名称']; if query_str_int.Visible then begin t_sys_query_detail['条件值']:=query_str_int.text; end; if query_bit.Visible then begin t_sys_query_detail['条件值']:=query_bit.text; end; if query_date.Visible then begin t_sys_query_detail['条件值']:=query_date.text; end; t_sys_query_detail['字段类型']:=t_sys_queryfields['类型']; t_sys_query_detail['条件关系']:=wwDBComboBox39.text; t_sys_query_detail['查询类型']:=wwDBComboBox40.text; t_sys_query_detail.post; end; procedure Tfrm_rp_aire_query.bsSkinButton4Click(Sender: TObject); begin if not t_sys_query_detail.IsEmpty then t_sys_query_detail.Delete; end; procedure Tfrm_rp_aire_query.RxDBLookupList1DblClick(Sender: TObject); begin RxDBLookupCombo14.DisplayValue:=RxDBLookupList1.DisplayValue; end; procedure Tfrm_rp_aire_query.t_sys_queryAfterInsert(DataSet: TDataSet); begin t_sys_query['查询类型']:=rp_aire_query_str; t_sys_query['录入人']:=employee; t_sys_query['录入日期']:=date; end; procedure Tfrm_rp_aire_query.t_sys_query_detailAfterScroll( DataSet: TDataSet); begin if (t_sys_query_detail.fieldbyname('字段类型').asstring='varchar') then begin dxDBGrid1Column3.Items.Clear; dxDBGrid1Column3.Items.Add('等于'); dxDBGrid1Column3.Items.Add('不等于'); dxDBGrid1Column3.Items.Add('模糊'); end; if (t_sys_query_detail.fieldbyname('字段类型').asstring='int') then begin dxDBGrid1Column3.Items.Clear; dxDBGrid1Column3.Items.Add('等于'); dxDBGrid1Column3.Items.Add('不等于'); dxDBGrid1Column3.Items.Add('大于'); dxDBGrid1Column3.Items.Add('小于'); end; if (t_sys_query_detail.fieldbyname('字段类型').asstring='bit') then begin dxDBGrid1Column3.Items.Clear; dxDBGrid1Column3.Items.Add('等于'); dxDBGrid1Column3.Items.Add('不等于'); end; if (t_sys_query_detail.fieldbyname('字段类型').asstring='date') then begin dxDBGrid1Column3.Items.Clear; dxDBGrid1Column3.Items.Add('等于'); dxDBGrid1Column3.Items.Add('不等于'); dxDBGrid1Column3.Items.Add('大于'); dxDBGrid1Column3.Items.Add('小于'); end; end; procedure Tfrm_rp_aire_query.t_sys_query_detailBeforePost( DataSet: TDataSet); begin if t_sys_query_detail.fieldbyname('字段类型').asstring='int' then begin try strtoint(t_sys_query_detail.fieldbyname('条件值').asstring); except showmessage('条件值只能输入数字!!'); abort; end; end; if t_sys_query_detail.fieldbyname('字段类型').asstring='date' then begin try strtodate(t_sys_query_detail.fieldbyname('条件值').asstring); except showmessage('条件值只能输入日期!!'); abort; end; end; if t_sys_query_detail.fieldbyname('字段类型').asstring='bit' then begin if (t_sys_query_detail.fieldbyname('条件值').asstring<>'否') and(t_sys_query_detail.fieldbyname('条件值').asstring<>'是')then begin showmessage('条件值只能输入是\否!!'); abort; end; end; if (t_sys_query_detail.fieldbyname('条件关系').asstring<>'且') and(t_sys_query_detail.fieldbyname('条件关系').asstring<>'或')then begin showmessage('条件关系只能输入且\或!!'); abort; end; if (dxDBGrid1Column3.Items.IndexOf(t_sys_query_detail.fieldbyname('查询类型').asstring)=-1) and (t_sys_query_detail.state<>dsinsert) then begin showmessage('查询类型只能输入'+dxDBGrid1Column3.Items.text+'!!'); abort; end; end; procedure Tfrm_rp_aire_query.bsSkinButton6Click(Sender: TObject); begin t_sys_query.Insert; t_sys_query.post; end; procedure Tfrm_rp_aire_query.bsSkinButton9Click(Sender: TObject); begin while not t_sys_query_detail.eof do begin t_sys_query_detail.Delete; end; if not t_sys_query.Eof then t_sys_query.delete; end; end.