unit u_rp_zl_airi; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, dxExEdtr, DB, ADODB, StdCtrls, wwdbdatetimepicker, bsSkinCtrls, dxDBGrid, dxTL, dxDBCtrl, dxCntner, ComCtrls, bsSkinTabs, ExtCtrls, Menus, dxDBTLCl, dxGrClms; type Tfrm_rp_zl_airi = class(TForm) Panel1: TPanel; bsSkinPageControl1: TbsSkinPageControl; bsSkinTabSheet1: TbsSkinTabSheet; bsSkinPageControl2: TbsSkinPageControl; bsSkinTabSheet3: TbsSkinTabSheet; dxDBGrid1: TdxDBGrid; dxDBGrid1Column1: TdxDBGridMaskColumn; dxDBGrid1Column2: TdxDBGridColumn; dxDBGrid1Column3: TdxDBGridColumn; dxDBGrid1Column4: TdxDBGridColumn; dxDBGrid1Column5: TdxDBGridColumn; dxDBGrid1Column6: TdxDBGridColumn; dxDBGrid1Column7: TdxDBGridColumn; dxDBGrid1Column8: TdxDBGridColumn; bsSkinTabSheet4: TbsSkinTabSheet; dxDBGrid2: TdxDBGrid; dxDBGridMaskColumn1: TdxDBGridMaskColumn; dxDBGridColumn1: TdxDBGridColumn; dxDBGridColumn2: TdxDBGridColumn; dxDBGridColumn3: TdxDBGridColumn; dxDBGridColumn4: TdxDBGridColumn; dxDBGridColumn5: TdxDBGridColumn; dxDBGridColumn6: TdxDBGridColumn; dxDBGridColumn7: TdxDBGridColumn; bsSkinTabSheet2: TbsSkinTabSheet; bsSkinPageControl3: TbsSkinPageControl; bsSkinTabSheet5: TbsSkinTabSheet; dxDBGrid3: TdxDBGrid; dxDBGridMaskColumn2: TdxDBGridMaskColumn; dxDBGridColumn8: TdxDBGridColumn; dxDBGridColumn9: TdxDBGridColumn; dxDBGridColumn10: TdxDBGridColumn; dxDBGridColumn11: TdxDBGridColumn; dxDBGridColumn12: TdxDBGridColumn; dxDBGridColumn13: TdxDBGridColumn; dxDBGridColumn14: TdxDBGridColumn; bsSkinTabSheet6: TbsSkinTabSheet; dxDBGrid4: TdxDBGrid; dxDBGridMaskColumn3: TdxDBGridMaskColumn; dxDBGridColumn15: TdxDBGridColumn; dxDBGridColumn16: TdxDBGridColumn; dxDBGridColumn17: TdxDBGridColumn; dxDBGridColumn18: TdxDBGridColumn; dxDBGridColumn19: TdxDBGridColumn; dxDBGridColumn20: TdxDBGridColumn; dxDBGridColumn21: TdxDBGridColumn; bsSkinPanel2: TbsSkinPanel; bsSkinButton10: TbsSkinButton; bsSkinButton9: TbsSkinButton; bsSkinButton5: TbsSkinButton; bsSkinCheckRadioBox2: TbsSkinCheckRadioBox; bsSkinCheckRadioBox1: TbsSkinCheckRadioBox; bsSkinPanel1: TbsSkinPanel; Label1: TLabel; Label2: TLabel; wwDBDateTimePicker1: TwwDBDateTimePicker; wwDBDateTimePicker2: TwwDBDateTimePicker; p_accept_client: TADOStoredProc; p_accept_client1: TDataSource; p_accept_sales: TADOStoredProc; p_accept_sales1: TDataSource; p_pay_client: TADOStoredProc; p_pay_client1: TDataSource; p_pay_sales: TADOStoredProc; p_pay_sales1: TDataSource; SaveDialog: TSaveDialog; PopupMenu2: TPopupMenu; N16: TMenuItem; tabs3: TbsSkinTabSheet; tabs4: TbsSkinTabSheet; p_accept_bill: TADOStoredProc; p_accept_bill1: TDataSource; p_pay_bill: TADOStoredProc; p_pay_bill1: TDataSource; dxDBGrid5: TdxDBGrid; dxDBGridMaskColumn4: TdxDBGridMaskColumn; dxDBGrid1Column54: TdxDBGridMaskColumn; dxDBGrid1Column11: TdxDBGridMaskColumn; dxDBGrid1Column13: TdxDBGridMaskColumn; dxDBGrid1Column61: TdxDBGridColumn; dxDBGrid1Column15: TdxDBGridMaskColumn; dxDBGrid1Column32: TdxDBGridColumn; dxDBGrid1Column33: TdxDBGridColumn; dxDBGrid1Column34: TdxDBGridColumn; dxDBGrid1USD: TdxDBGridColumn; dxDBGridColumn22: TdxDBGridColumn; dxDBGridColumn23: TdxDBGridColumn; dxDBGrid1RMB: TdxDBGridColumn; dxDBGridColumn24: TdxDBGridColumn; dxDBGridColumn25: TdxDBGridColumn; dxDBGridColumn26: TdxDBGridColumn; dxDBGrid1Column9: TdxDBGridColumn; dxDBGrid1Column10: TdxDBGridColumn; dxDBGrid1Column12: TdxDBGridDateColumn; dxDBGrid1Column31: TdxDBGridColumn; dxDBGrid1Column18: TdxDBGridMaskColumn; dxDBGrid1Column21: TdxDBGridMaskColumn; dxDBGrid1Column22: TdxDBGridDateColumn; dxDBGrid1Column23: TdxDBGridMaskColumn; dxDBGrid1Column24: TdxDBGridMaskColumn; dxDBGrid1Column25: TdxDBGridMaskColumn; dxDBGrid1Column26: TdxDBGridMaskColumn; dxDBGrid1Column28: TdxDBGridColumn; dxDBGrid1Column53: TdxDBGridMaskColumn; dxDBGrid1Column55: TdxDBGridMaskColumn; dxDBGrid1Column57: TdxDBGridMaskColumn; dxDBGrid1Column59: TdxDBGridMaskColumn; dxDBGrid1Column29: TdxDBGridColumn; dxDBGrid1Column30: TdxDBGridColumn; dxDBGrid6: TdxDBGrid; dxDBGridMaskColumn5: TdxDBGridMaskColumn; dxDBGridMaskColumn6: TdxDBGridMaskColumn; dxDBGridMaskColumn7: TdxDBGridMaskColumn; dxDBGridMaskColumn8: TdxDBGridMaskColumn; dxDBGridColumn27: TdxDBGridColumn; dxDBGridMaskColumn9: TdxDBGridMaskColumn; dxDBGridColumn28: TdxDBGridColumn; dxDBGridColumn29: TdxDBGridColumn; dxDBGridColumn30: TdxDBGridColumn; dxDBGridColumn31: TdxDBGridColumn; dxDBGridColumn32: TdxDBGridColumn; dxDBGridColumn33: TdxDBGridColumn; dxDBGridColumn34: TdxDBGridColumn; dxDBGridColumn35: TdxDBGridColumn; dxDBGridColumn36: TdxDBGridColumn; dxDBGridDateColumn1: TdxDBGridDateColumn; dxDBGrid4Column31: TdxDBGridColumn; dxDBGridMaskColumn10: TdxDBGridMaskColumn; dxDBGridMaskColumn11: TdxDBGridMaskColumn; dxDBGridDateColumn2: TdxDBGridDateColumn; dxDBGridMaskColumn12: TdxDBGridMaskColumn; dxDBGridMaskColumn13: TdxDBGridMaskColumn; dxDBGridMaskColumn14: TdxDBGridMaskColumn; dxDBGridMaskColumn15: TdxDBGridMaskColumn; dxDBGridColumn37: TdxDBGridColumn; dxDBGridMaskColumn16: TdxDBGridMaskColumn; dxDBGridMaskColumn17: TdxDBGridMaskColumn; dxDBGridMaskColumn18: TdxDBGridMaskColumn; dxDBGridMaskColumn19: TdxDBGridMaskColumn; dxDBGrid4Column29: TdxDBGridColumn; dxDBGrid4Column30: TdxDBGridColumn; procedure bsSkinButton5Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure bsSkinButton10Click(Sender: TObject); procedure bsSkinButton9Click(Sender: TObject); procedure bsSkinPanel2Resize(Sender: TObject); procedure dxDBGrid1ColumnSorting(Sender: TObject; Column: TdxDBTreeListColumn; var Allow: Boolean); procedure dxDBGrid2ColumnSorting(Sender: TObject; Column: TdxDBTreeListColumn; var Allow: Boolean); procedure dxDBGrid3ColumnSorting(Sender: TObject; Column: TdxDBTreeListColumn; var Allow: Boolean); procedure dxDBGrid4ColumnSorting(Sender: TObject; Column: TdxDBTreeListColumn; var Allow: Boolean); procedure FormShow(Sender: TObject); procedure N16Click(Sender: TObject); procedure dxDBGrid1DblClick(Sender: TObject); procedure dxDBGrid2DblClick(Sender: TObject); procedure dxDBGrid3DblClick(Sender: TObject); procedure dxDBGrid4DblClick(Sender: TObject); private str_accept,str_pay:widestring; { Private declarations } public { Public declarations } end; var frm_rp_zl_airi: Tfrm_rp_zl_airi; implementation uses u_main, my_sys_function, u_data_share; {$R *.dfm} procedure Tfrm_rp_zl_airi.bsSkinButton5Click(Sender: TObject); begin close; end; procedure Tfrm_rp_zl_airi.FormClose(Sender: TObject; var Action: TCloseAction); begin frm_rp_zl_airi.Hide; frm_rp_zl_airi.ManualFloat(frm_rp_zl_airi.BoundsRect ); frm_main.freeTabs('frm_rp_zl_airi'); action:=cafree; frm_rp_zl_airi:=nil; end; procedure Tfrm_rp_zl_airi.bsSkinButton10Click(Sender: TObject); var str_date:string; begin if bsSkinCheckRadioBox1.Checked then str_date:='会计期间' else str_date:='进口日期'; str_accept:='where t_ch_fee.金额<>t_ch_fee.结算金额 and t_ch_fee.类型='+''''+'收'+''''; str_pay:='where t_ch_fee.金额<>t_ch_fee.结算金额 and t_ch_fee.类型='+''''+'付'+''''; if wwDBDateTimePicker1.Text<>''then begin str_accept:=str_accept+' and t_op_airi.'+str_date+'>='+''''+wwDBDateTimePicker1.Text+''''; str_pay:=str_pay+' and t_op_airi.'+str_date+'>='+''''+wwDBDateTimePicker1.Text+''''; end; if wwDBDateTimePicker2.Text<>''then begin str_accept:=str_accept+' and t_op_airi.'+str_date+'<='+''''+wwDBDateTimePicker2.Text+''''; str_pay:=str_pay+' and t_op_airi.'+str_date+'<='+''''+wwDBDateTimePicker2.Text+''''; end; str_accept:=str_accept+' and '+open_data('0034','t_op_airi.'+'揽货人','t_op_airi.'+'操作员','t_op_airi.'+'客服员','no','no'); str_pay:=str_pay+' and '+open_data('0034','t_op_airi.'+'揽货人','t_op_airi.'+'操作员','t_op_airi.'+'客服员','no','no'); p_accept_client.close; p_accept_client.Parameters.ParamByName('SQLStr').value:= 'select t_ch_fee.客户名称,' +'sum(case when datediff(day,t_op_airi.'+str_date+',getdate())<=30 then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 未收一月,' +' sum(case when datediff(day,t_op_airi.'+str_date+',getdate())<=60' +' and datediff(day,t_op_airi.'+str_date+',getdate())>30 then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 未收二月,' +' sum(case when datediff(day,t_op_airi.'+str_date+',getdate())<=90' +' and datediff(day,t_op_airi.'+str_date+',getdate())>60 then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 未收三月,' +' sum(case when datediff(day,t_op_airi.'+str_date+',getdate())<=180' +' and datediff(day,t_op_airi.'+str_date+',getdate())>90 then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 未收半年,' +' sum(case when datediff(day,t_op_airi.'+str_date+',getdate())<=360' +' and datediff(day,t_op_airi.'+str_date+',getdate())>180 then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 未收一年,' +' sum(case when datediff(day,t_op_airi.'+str_date+',getdate())>360 ' +' then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 一年以上,' +' sum((t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率) as 所有未收' +' from t_ch_fee inner join t_op_airi on t_ch_fee.编号=t_op_airi.编号 ' +str_accept +' group by t_ch_fee.客户名称 order by t_ch_fee.客户名称'; p_accept_client.Open; p_pay_client.close; p_pay_client.Parameters.ParamByName('SQLStr').value:= 'select t_ch_fee.客户名称,' +'sum(case when datediff(day,t_op_airi.'+str_date+',getdate())<=30 then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 未付一月,' +' sum(case when datediff(day,t_op_airi.'+str_date+',getdate())<=60' +' and datediff(day,t_op_airi.'+str_date+',getdate())>30 then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 未付二月,' +' sum(case when datediff(day,t_op_airi.'+str_date+',getdate())<=90' +' and datediff(day,t_op_airi.'+str_date+',getdate())>60 then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 未付三月,' +' sum(case when datediff(day,t_op_airi.'+str_date+',getdate())<=180' +' and datediff(day,t_op_airi.'+str_date+',getdate())>90 then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 未付半年,' +' sum(case when datediff(day,t_op_airi.'+str_date+',getdate())<=360' +' and datediff(day,t_op_airi.'+str_date+',getdate())>180 then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 未付一年,' +' sum(case when datediff(day,t_op_airi.'+str_date+',getdate())>360 ' +' then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 一年以上,' +' sum((t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率) as 所有未付' +' from t_ch_fee inner join t_op_airi on t_ch_fee.编号=t_op_airi.编号 ' +str_pay +' group by t_ch_fee.客户名称 order by t_ch_fee.客户名称'; p_pay_client.Open; p_accept_sales.close; p_accept_sales.Parameters.ParamByName('SQLStr').value:= 'select t_op_airi.揽货人,' +'sum(case when datediff(day,t_op_airi.'+str_date+',getdate())<=30 then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 未收一月,' +' sum(case when datediff(day,t_op_airi.'+str_date+',getdate())<=60' +' and datediff(day,t_op_airi.'+str_date+',getdate())>30 then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 未收二月,' +' sum(case when datediff(day,t_op_airi.'+str_date+',getdate())<=90' +' and datediff(day,t_op_airi.'+str_date+',getdate())>60 then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 未收三月,' +' sum(case when datediff(day,t_op_airi.'+str_date+',getdate())<=180' +' and datediff(day,t_op_airi.'+str_date+',getdate())>90 then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 未收半年,' +' sum(case when datediff(day,t_op_airi.'+str_date+',getdate())<=360' +' and datediff(day,t_op_airi.'+str_date+',getdate())>180 then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 未收一年,' +' sum(case when datediff(day,t_op_airi.'+str_date+',getdate())>360 ' +' then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 一年以上,' +' sum((t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率) as 所有未收' +' from t_ch_fee inner join t_op_airi on t_ch_fee.编号=t_op_airi.编号 ' +str_accept +' group by t_op_airi.揽货人 order by t_op_airi.揽货人'; p_accept_sales.Open; p_pay_sales.close; p_pay_sales.Parameters.ParamByName('SQLStr').value:= 'select t_op_airi.揽货人,' +'sum(case when datediff(day,t_op_airi.'+str_date+',getdate())<=30 then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 未付一月,' +' sum(case when datediff(day,t_op_airi.'+str_date+',getdate())<=60' +' and datediff(day,t_op_airi.'+str_date+',getdate())>30 then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 未付二月,' +' sum(case when datediff(day,t_op_airi.'+str_date+',getdate())<=90' +' and datediff(day,t_op_airi.'+str_date+',getdate())>60 then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 未付三月,' +' sum(case when datediff(day,t_op_airi.'+str_date+',getdate())<=180' +' and datediff(day,t_op_airi.'+str_date+',getdate())>90 then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 未付半年,' +' sum(case when datediff(day,t_op_airi.'+str_date+',getdate())<=360' +' and datediff(day,t_op_airi.'+str_date+',getdate())>180 then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 未付一年,' +' sum(case when datediff(day,t_op_airi.'+str_date+',getdate())>360 ' +' then (t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率' +' else 0 end) as 一年以上,' +' sum((t_ch_fee.金额-t_ch_fee.结算金额)*t_ch_fee.汇率) as 所有未付' +' from t_ch_fee inner join t_op_airi on t_ch_fee.编号=t_op_airi.编号 ' +str_pay +' group by t_op_airi.揽货人 order by t_op_airi.揽货人'; p_pay_sales.Open; end; procedure Tfrm_rp_zl_airi.bsSkinButton9Click(Sender: TObject); begin sys_print('空运进口帐龄',2,nil,nil,nil,nil,p_accept_client1,p_accept_sales1,p_pay_client1,p_pay_sales1,nil,nil,nil); end; procedure Tfrm_rp_zl_airi.bsSkinPanel2Resize(Sender: TObject); var i:integer; begin i:=round((bsSkinPanel2.Width-bsSkinPanel1.Width)/5); bsSkinCheckRadioBox2.Width:=i; bsSkinCheckRadioBox1.Width:=i; bsSkinButton10.Width:=i; bsSkinButton9.Width:=i; bsSkinButton5.Width:=i; end; procedure Tfrm_rp_zl_airi.dxDBGrid1ColumnSorting(Sender: TObject; Column: TdxDBTreeListColumn; var Allow: Boolean); begin Column_sort_pro(Column,p_accept_client,'客户名称'); end; procedure Tfrm_rp_zl_airi.dxDBGrid2ColumnSorting(Sender: TObject; Column: TdxDBTreeListColumn; var Allow: Boolean); begin Column_sort_pro(Column,p_accept_sales,'揽货人'); end; procedure Tfrm_rp_zl_airi.dxDBGrid3ColumnSorting(Sender: TObject; Column: TdxDBTreeListColumn; var Allow: Boolean); begin Column_sort_pro(Column,p_pay_client,'客户名称'); end; procedure Tfrm_rp_zl_airi.dxDBGrid4ColumnSorting(Sender: TObject; Column: TdxDBTreeListColumn; var Allow: Boolean); begin Column_sort_pro(Column,p_pay_sales,'揽货人'); end; procedure Tfrm_rp_zl_airi.FormShow(Sender: TObject); begin if frm_data_share.t_load_employee.FieldByName('应收').asboolean then begin bsSkinTabSheet1.TabVisible:=true; end else begin bsSkinTabSheet1.TabVisible:=false; end; if frm_data_share.t_load_employee.FieldByName('应付').asboolean then begin bsSkinTabSheet2.TabVisible:=true; end else begin bsSkinTabSheet2.TabVisible:=false; end; end; procedure Tfrm_rp_zl_airi.N16Click(Sender: TObject); begin with SaveDialog do begin DefaultExt :='xls'; Filter := '(*.xls)|*.xls'; if Execute then begin if bsSkinTabSheet3.Showing then dxDBGrid1.SaveToXLS(FileName,true) else if bsSkinTabSheet4.Showing then dxDBGrid2.SaveToXLS(FileName,true) else if bsSkinTabSheet5.Showing then dxDBGrid3.SaveToXLS(FileName,true) else if bsSkinTabSheet6.Showing then dxDBGrid4.SaveToXLS(FileName,true); end; end; end; procedure Tfrm_rp_zl_airi.dxDBGrid1DblClick(Sender: TObject); var str_bill:widestring; begin str_bill:=str_accept+' and t_ch_fee.客户名称='+''''+p_accept_client.FieldByName('客户名称').AsString+''''; p_accept_bill.close; 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_airi.业务编号, t_op_airi.周次, t_op_airi.会计期间, t_op_airi.主运单号,' +'t_op_airi.分运单号, t_op_airi.委托编号, ' +'t_op_airi.委托单位, t_op_airi.代理, ' +'t_op_airi.航班号,t_op_airi.进口日期,' +'t_op_airi.始发港, t_op_airi.目的港, t_op_airi.货物名称,' +'t_op_airi.件数, t_op_airi.计价重量, t_op_airi.操作员,' +'t_op_airi.揽货人, t_op_airi.客服员,' +'t_op_airi.航空公司, t_op_airi.报关行, DATEDIFF([day],t_op_airi.进口日期, GETDATE()) AS 实际天数,' +'isnull(t_crm_client.结费期限,0) as 结费期限,' +'(DATEDIFF([day],t_op_airi.进口日期, GETDATE())-isnull(t_crm_client.结费期限,0)) as 超期天数' +' FROM t_ch_fee inner join t_op_airi on t_op_airi.编号=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_airi.业务编号, t_op_airi.周次, t_op_airi.会计期间, t_op_airi.主运单号,' +'t_op_airi.分运单号, t_op_airi.委托编号, ' +'t_op_airi.委托单位, t_op_airi.代理, ' +'t_op_airi.航班号,t_op_airi.进口日期,' +'t_op_airi.始发港, t_op_airi.目的港, t_op_airi.货物名称,' +'t_op_airi.件数, t_op_airi.计价重量, t_op_airi.操作员,' +'t_op_airi.揽货人, t_op_airi.客服员,' +'t_op_airi.航空公司, t_op_airi.报关行, DATEDIFF([day],t_op_airi.进口日期, GETDATE()),' +'isnull(t_crm_client.结费期限,0),' +'(DATEDIFF([day],t_op_airi.进口日期, GETDATE())-isnull(t_crm_client.结费期限,0))' +default_sort_two(56,'t_op_airi','t_ch_fee.客户名称','',''); p_accept_bill.Open; bsSkinPageControl1.ActivePage:=tabs3; end; procedure Tfrm_rp_zl_airi.dxDBGrid2DblClick(Sender: TObject); var str_bill:widestring; begin str_bill:=str_accept+' and t_op_aire.揽货人='+''''+p_accept_sales.FieldByName('揽货人').AsString+''''; p_accept_bill.close; 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_airi.业务编号, t_op_airi.周次, t_op_airi.会计期间, t_op_airi.主运单号,' +'t_op_airi.分运单号, t_op_airi.委托编号, ' +'t_op_airi.委托单位, t_op_airi.代理, ' +'t_op_airi.航班号,t_op_airi.进口日期,' +'t_op_airi.始发港, t_op_airi.目的港, t_op_airi.货物名称,' +'t_op_airi.件数, t_op_airi.计价重量, t_op_airi.操作员,' +'t_op_airi.揽货人, t_op_airi.客服员,' +'t_op_airi.航空公司, t_op_airi.报关行, DATEDIFF([day],t_op_airi.进口日期, GETDATE()) AS 实际天数,' +'isnull(t_crm_client.结费期限,0) as 结费期限,' +'(DATEDIFF([day],t_op_airi.进口日期, GETDATE())-isnull(t_crm_client.结费期限,0)) as 超期天数' +' FROM t_ch_fee inner join t_op_airi on t_op_airi.编号=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_airi.业务编号, t_op_airi.周次, t_op_airi.会计期间, t_op_airi.主运单号,' +'t_op_airi.分运单号, t_op_airi.委托编号, ' +'t_op_airi.委托单位, t_op_airi.代理, ' +'t_op_airi.航班号,t_op_airi.进口日期,' +'t_op_airi.始发港, t_op_airi.目的港, t_op_airi.货物名称,' +'t_op_airi.件数, t_op_airi.计价重量, t_op_airi.操作员,' +'t_op_airi.揽货人, t_op_airi.客服员,' +'t_op_airi.航空公司, t_op_airi.报关行, DATEDIFF([day],t_op_airi.进口日期, GETDATE()),' +'isnull(t_crm_client.结费期限,0),' +'(DATEDIFF([day],t_op_airi.进口日期, GETDATE())-isnull(t_crm_client.结费期限,0))' +default_sort_two(56,'t_op_airi','t_ch_fee.客户名称','',''); p_accept_bill.Open; bsSkinPageControl1.ActivePage:=tabs3; end; procedure Tfrm_rp_zl_airi.dxDBGrid3DblClick(Sender: TObject); var str_bill:widestring; begin str_bill:=str_pay+' and t_ch_fee.客户名称='+''''+p_pay_client.FieldByName('客户名称').AsString+''''; p_pay_bill.close; 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_airi.业务编号, t_op_airi.周次, t_op_airi.会计期间, t_op_airi.主运单号,' +'t_op_airi.分运单号, t_op_airi.委托编号, ' +'t_op_airi.委托单位, t_op_airi.代理, ' +'t_op_airi.航班号,t_op_airi.进口日期,' +'t_op_airi.始发港, t_op_airi.目的港, t_op_airi.货物名称,' +'t_op_airi.件数, t_op_airi.计价重量,t_op_airi.操作员,' +'t_op_airi.揽货人, t_op_airi.客服员,' +'t_op_airi.航空公司, t_op_airi.报关行' +' FROM t_ch_fee inner join t_op_airi on t_op_airi.编号=t_ch_fee.编号 ' +str_bill+' and t_ch_fee.类型='+''''+'付'+'''' +' GROUP BY t_ch_fee.编号, t_ch_fee.客户名称,' +'t_op_airi.业务编号, t_op_airi.周次, t_op_airi.会计期间, t_op_airi.主运单号,' +'t_op_airi.分运单号, t_op_airi.委托编号, ' +'t_op_airi.委托单位, t_op_airi.代理, ' +'t_op_airi.航班号,t_op_airi.进口日期,' +'t_op_airi.始发港, t_op_airi.目的港, t_op_airi.货物名称,' +'t_op_airi.件数, t_op_airi.计价重量,t_op_airi.操作员,' +'t_op_airi.揽货人, t_op_airi.客服员,' +'t_op_airi.航空公司, t_op_airi.报关行' +default_sort_two(56,'t_op_airi','t_ch_fee.客户名称','',''); p_pay_bill.Open; bsSkinPageControl1.ActivePage:=tabs4; end; procedure Tfrm_rp_zl_airi.dxDBGrid4DblClick(Sender: TObject); var str_bill:widestring; begin str_bill:=str_pay+' and t_op_aire.揽货人='+''''+p_pay_sales.FieldByName('揽货人').AsString+''''; p_pay_bill.close; 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_airi.业务编号, t_op_airi.周次, t_op_airi.会计期间, t_op_airi.主运单号,' +'t_op_airi.分运单号, t_op_airi.委托编号, ' +'t_op_airi.委托单位, t_op_airi.代理, ' +'t_op_airi.航班号,t_op_airi.进口日期,' +'t_op_airi.始发港, t_op_airi.目的港, t_op_airi.货物名称,' +'t_op_airi.件数, t_op_airi.计价重量,t_op_airi.操作员,' +'t_op_airi.揽货人, t_op_airi.客服员,' +'t_op_airi.航空公司, t_op_airi.报关行' +' FROM t_ch_fee inner join t_op_airi on t_op_airi.编号=t_ch_fee.编号 ' +str_bill+' and t_ch_fee.类型='+''''+'付'+'''' +' GROUP BY t_ch_fee.编号, t_ch_fee.客户名称,' +'t_op_airi.业务编号, t_op_airi.周次, t_op_airi.会计期间, t_op_airi.主运单号,' +'t_op_airi.分运单号, t_op_airi.委托编号, ' +'t_op_airi.委托单位, t_op_airi.代理, ' +'t_op_airi.航班号,t_op_airi.进口日期,' +'t_op_airi.始发港, t_op_airi.目的港, t_op_airi.货物名称,' +'t_op_airi.件数, t_op_airi.计价重量,t_op_airi.操作员,' +'t_op_airi.揽货人, t_op_airi.客服员,' +'t_op_airi.航空公司, t_op_airi.报关行' +default_sort_two(56,'t_op_airi','t_ch_fee.客户名称','',''); p_pay_bill.Open; bsSkinPageControl1.ActivePage:=tabs4; end; end.