unit u_rp_zl_seae; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, ComCtrls, bsSkinTabs, bsSkinCtrls, StdCtrls, wwdbdatetimepicker, DB, ADODB, dxExEdtr, dxCntner, dxTL, dxDBCtrl, dxDBGrid, dxDBTLCl, dxGrClms; type Tfrm_rp_zl_seae = class(TForm) Panel1: TPanel; bsSkinPageControl1: TbsSkinPageControl; bsSkinTabSheet1: TbsSkinTabSheet; bsSkinTabSheet2: TbsSkinTabSheet; bsSkinPageControl2: TbsSkinPageControl; bsSkinTabSheet3: TbsSkinTabSheet; bsSkinTabSheet4: TbsSkinTabSheet; bsSkinPageControl3: TbsSkinPageControl; bsSkinTabSheet5: TbsSkinTabSheet; bsSkinTabSheet6: TbsSkinTabSheet; 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; dxDBGrid1: TdxDBGrid; dxDBGrid1Column1: TdxDBGridMaskColumn; dxDBGrid1Column2: TdxDBGridColumn; dxDBGrid1Column3: TdxDBGridColumn; dxDBGrid1Column4: TdxDBGridColumn; dxDBGrid1Column5: TdxDBGridColumn; dxDBGrid1Column6: TdxDBGridColumn; dxDBGrid1Column7: TdxDBGridColumn; dxDBGrid1Column8: TdxDBGridColumn; dxDBGrid2: TdxDBGrid; dxDBGridMaskColumn1: TdxDBGridMaskColumn; dxDBGridColumn1: TdxDBGridColumn; dxDBGridColumn2: TdxDBGridColumn; dxDBGridColumn3: TdxDBGridColumn; dxDBGridColumn4: TdxDBGridColumn; dxDBGridColumn5: TdxDBGridColumn; dxDBGridColumn6: TdxDBGridColumn; dxDBGridColumn7: TdxDBGridColumn; dxDBGrid3: TdxDBGrid; dxDBGridMaskColumn2: TdxDBGridMaskColumn; dxDBGridColumn8: TdxDBGridColumn; dxDBGridColumn9: TdxDBGridColumn; dxDBGridColumn10: TdxDBGridColumn; dxDBGridColumn11: TdxDBGridColumn; dxDBGridColumn12: TdxDBGridColumn; dxDBGridColumn13: TdxDBGridColumn; dxDBGridColumn14: TdxDBGridColumn; 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; bsSkinCheckRadioBox3: TbsSkinCheckRadioBox; 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); private { Private declarations } public { Public declarations } end; var frm_rp_zl_seae: Tfrm_rp_zl_seae; implementation uses u_main, my_sys_function, u_data_share; {$R *.dfm} procedure Tfrm_rp_zl_seae.bsSkinButton5Click(Sender: TObject); begin close; end; procedure Tfrm_rp_zl_seae.FormClose(Sender: TObject; var Action: TCloseAction); begin frm_rp_zl_seae.Hide; frm_rp_zl_seae.ManualFloat(frm_rp_zl_seae.BoundsRect ); frm_main.freeTabs('frm_rp_zl_seae'); action:=cafree; frm_rp_zl_seae:=nil; end; procedure Tfrm_rp_zl_seae.bsSkinButton10Click(Sender: TObject); var str_accept,str_pay:widestring; str_date:string; begin if bsSkinCheckRadioBox1.Checked then str_date:='会计期间' else if bsSkinCheckRadioBox3.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_seae.'+str_date+'>='+''''+wwDBDateTimePicker1.Text+''''; str_pay:=str_pay+' and t_op_seae.'+str_date+'>='+''''+wwDBDateTimePicker1.Text+''''; end; if wwDBDateTimePicker2.Text<>''then begin if (str_date='预抵日期') then begin str_accept:=str_accept+' and t_op_seae.'+str_date+'<'+''''+FormatDateTime('YYYY-MM-DD',(wwDBDateTimePicker2.Date+1))+''''; str_pay:=str_pay+' and t_op_seae.'+str_date+'<'+''''+FormatDateTime('YYYY-MM-DD',(wwDBDateTimePicker2.Date+1))+''''; end else begin str_accept:=str_accept+' and t_op_seae.'+str_date+'<='+''''+wwDBDateTimePicker2.Text+''''; str_pay:=str_pay+' and t_op_seae.'+str_date+'<='+''''+wwDBDateTimePicker2.Text+''''; end; end; str_accept:=str_accept+' and '+open_data('0034','t_op_seae.'+'揽货人','t_op_seae.'+'操作员','t_op_seae.'+'客服员','no','no'); str_pay:=str_pay+' and '+open_data('0034','t_op_seae.'+'揽货人','t_op_seae.'+'操作员','t_op_seae.'+'客服员','no','no'); p_accept_client.close; p_accept_client.Parameters.ParamByName('SQLStr').value:= 'select t_ch_fee.客户名称,' +'sum(case when datediff(day,t_op_seae.'+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_seae.'+str_date+',getdate())<=60' +' and datediff(day,t_op_seae.'+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_seae.'+str_date+',getdate())<=90' +' and datediff(day,t_op_seae.'+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_seae.'+str_date+',getdate())<=180' +' and datediff(day,t_op_seae.'+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_seae.'+str_date+',getdate())<=360' +' and datediff(day,t_op_seae.'+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_seae.'+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_seae on t_ch_fee.编号=t_op_seae.编号 ' +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_seae.'+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_seae.'+str_date+',getdate())<=60' +' and datediff(day,t_op_seae.'+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_seae.'+str_date+',getdate())<=90' +' and datediff(day,t_op_seae.'+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_seae.'+str_date+',getdate())<=180' +' and datediff(day,t_op_seae.'+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_seae.'+str_date+',getdate())<=360' +' and datediff(day,t_op_seae.'+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_seae.'+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_seae on t_ch_fee.编号=t_op_seae.编号 ' +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_seae.揽货人,' +'sum(case when datediff(day,t_op_seae.'+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_seae.'+str_date+',getdate())<=60' +' and datediff(day,t_op_seae.'+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_seae.'+str_date+',getdate())<=90' +' and datediff(day,t_op_seae.'+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_seae.'+str_date+',getdate())<=180' +' and datediff(day,t_op_seae.'+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_seae.'+str_date+',getdate())<=360' +' and datediff(day,t_op_seae.'+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_seae.'+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_seae on t_ch_fee.编号=t_op_seae.编号 ' +str_accept +' group by t_op_seae.揽货人 order by t_op_seae.揽货人'; p_accept_sales.Open; p_pay_sales.close; p_pay_sales.Parameters.ParamByName('SQLStr').value:= 'select t_op_seae.揽货人,' +'sum(case when datediff(day,t_op_seae.'+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_seae.'+str_date+',getdate())<=60' +' and datediff(day,t_op_seae.'+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_seae.'+str_date+',getdate())<=90' +' and datediff(day,t_op_seae.'+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_seae.'+str_date+',getdate())<=180' +' and datediff(day,t_op_seae.'+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_seae.'+str_date+',getdate())<=360' +' and datediff(day,t_op_seae.'+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_seae.'+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_seae on t_ch_fee.编号=t_op_seae.编号 ' +str_pay +' group by t_op_seae.揽货人 order by t_op_seae.揽货人'; p_pay_sales.Open; end; procedure Tfrm_rp_zl_seae.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_seae.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_seae.dxDBGrid1ColumnSorting(Sender: TObject; Column: TdxDBTreeListColumn; var Allow: Boolean); begin Column_sort_pro(Column,p_accept_client,'客户名称'); end; procedure Tfrm_rp_zl_seae.dxDBGrid2ColumnSorting(Sender: TObject; Column: TdxDBTreeListColumn; var Allow: Boolean); begin Column_sort_pro(Column,p_accept_sales,'揽货人'); end; procedure Tfrm_rp_zl_seae.dxDBGrid3ColumnSorting(Sender: TObject; Column: TdxDBTreeListColumn; var Allow: Boolean); begin Column_sort_pro(Column,p_pay_client,'客户名称'); end; procedure Tfrm_rp_zl_seae.dxDBGrid4ColumnSorting(Sender: TObject; Column: TdxDBTreeListColumn; var Allow: Boolean); begin Column_sort_pro(Column,p_pay_sales,'揽货人'); end; procedure Tfrm_rp_zl_seae.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; end.