unit u_ch_piliang_zhuprnfee; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, bsSkinCtrls, BusinessSkinForm, dxExEdtr, dxDBTLCl, dxGrClms, dxDBGrid, dxTL, dxDBCtrl, dxCntner, DB, ADODB, StdCtrls, Grids, DBGrids; type Tfrm_ch_piliang_zhuprnfee = class(TForm) bsSkinPanel1: TbsSkinPanel; bsBusinessSkinForm1: TbsBusinessSkinForm; dxDBGrid1: TdxDBGrid; dxDBGrid1Column1: TdxDBGridMaskColumn; dxDBGrid1Column4: TdxDBGridMaskColumn; dxDBGrid1Column5: TdxDBGridMaskColumn; dxDBGrid1Column6: TdxDBGridMaskColumn; dxDBGrid1Column7: TdxDBGridMaskColumn; dxDBGrid1Column13: TdxDBGridMaskColumn; dxDBGrid1Column14: TdxDBGridMaskColumn; dxDBGrid1Column15: TdxDBGridMaskColumn; dxDBGrid1Column16: TdxDBGridDateColumn; dxDBGrid1Column19: TdxDBGridMaskColumn; dxDBGrid1Column20: TdxDBGridMaskColumn; dxDBGrid1TEU: TdxDBGridMaskColumn; dxDBGrid1Column63: TdxDBGridMaskColumn; dxDBGrid1Column64: TdxDBGridMaskColumn; dxDBGrid1Column65: TdxDBGridDateColumn; dxDBGrid1Column66: TdxDBGridMaskColumn; dxDBGrid1Column67: TdxDBGridMaskColumn; v_op_bscard1: TDataSource; v_op_bscard: TADOQuery; tv_bscard_all1: TDataSource; t_ch_pay: TADOQuery; t_ch_pay1: TDataSource; t_sys_report: TADOQuery; t_sys_report1: TDataSource; dxDBGrid2: TdxDBGrid; dxDBGridMaskColumn1: TdxDBGridMaskColumn; dxDBGrid1Column2: TdxDBGridCheckColumn; tv_bscard_all: TADOStoredProc; t_op_gain: TADOQuery; t_op_gain1: TDataSource; bsSkinButton8: TbsSkinButton; bsSkinButton5: TbsSkinButton; t_op_gain_main1: TDataSource; t_op_gain_main: TADOQuery; qrytmp: TADOQuery; t_pin_accept: TADOStoredProc; t_pin_accept1: TDataSource; t_pin_pay: TADOStoredProc; t_pin_pay1: TDataSource; t_pin_gain: TADOStoredProc; t_pin_gain1: TDataSource; procedure bsSkinButton5Click(Sender: TObject); procedure bsSkinButton8Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure tv_bscard_allAfterScroll(DataSet: TDataSet); private op:boolean; { Private declarations } procedure setprntrue ; procedure sys_frprint_piliang(sx:string;report_str:string;table:TDataSet;one_1:TDataSource;one_2:TDataSource;one_3:TDataSource;one_4:TDataSource;all_1:TDataSource;all_2:TDataSource;all_3:TDataSource;all_4:TDataSource;all_5:TDataSource;all_6:TDataSource;all_7:TDataSource);//打印 public { Public declarations } end; var frm_ch_piliang_zhuprnfee: Tfrm_ch_piliang_zhuprnfee; implementation uses u_main, my_sys_function, u_sys_frprint; {$R *.dfm} procedure Tfrm_ch_piliang_zhuprnfee.sys_frprint_piliang(sx:string;report_str:string;table:TDataSet;one_1:TDataSource;one_2:TDataSource;one_3:TDataSource;one_4:TDataSource;all_1:TDataSource;all_2:TDataSource;all_3:TDataSource;all_4:TDataSource;all_5:TDataSource;all_6:TDataSource;all_7:TDataSource);//打印 var print_str:string; if_first:boolean; template : TStream; begin try if not assigned(frm_sys_frprint) then frm_sys_frprint:=Tfrm_sys_frprint.Create(application); frm_sys_frprint.Caption:=sx; with frm_sys_frprint do begin begin // t_sys_report.close; // t_sys_report.sql.clear; // t_sys_report.sql.add('select * from t_sys_report where 报表属性=:报表属性 order by 报表名称'); // t_sys_report.Parameters[0].value:=sx; // t_sys_report.open; end; t_sys_reporthead.Close; t_sys_reporthead.sql.Clear; t_sys_reporthead.sql.Add('select * from t_sys_report_head where 分部名称='''+subComp+''''); t_sys_reporthead.Open; if t_sys_reporthead.IsEmpty then begin t_sys_reporthead.Close; t_sys_reporthead.sql.Clear; t_sys_reporthead.sql.Add('select * from t_sys_report_head '); t_sys_reporthead.Open; end; print_head.DataSource:=ds_sys_reporthead1 end; tv_bscard_all.first; if_first:=true; while not tv_bscard_all.eof do begin v_op_bscard.close; v_op_bscard.open; t_pin_accept.close; t_pin_accept.Parameters[1].value:=tv_bscard_all.fieldbyname('编号').asstring; t_pin_accept.open; t_pin_pay.close; t_pin_pay.Parameters[1].value:=tv_bscard_all.fieldbyname('编号').asstring; t_pin_pay.open; t_pin_gain.close; t_pin_gain.Parameters[1].value:=tv_bscard_all.fieldbyname('编号').asstring; t_pin_gain.open; t_op_gain_main.Close; t_op_gain_main.open; frm_sys_frprint.one_table_1.DataSource:=v_op_bscard1; frm_sys_frprint.one_table_2.DataSource:=one_2; frm_sys_frprint.one_table_3.DataSource:=one_3; frm_sys_frprint.one_table_4.DataSource:=one_4; frm_sys_frprint.all_table_1.DataSource:=t_pin_accept1; frm_sys_frprint.all_table_2.DataSource:=t_pin_pay1; frm_sys_frprint.all_table_3.DataSource:=t_pin_gain1; frm_sys_frprint.all_table_4.DataSource:=t_op_gain_main1; frm_sys_frprint.all_table_5.DataSource:=all_5; frm_sys_frprint.all_table_6.DataSource:=all_6; frm_sys_frprint.all_table_7.DataSource:=all_7; if if_first then begin // frm_sys_frprint.t_sys_reportfile.Close; // frm_sys_frprint.t_sys_reportfile.SQL.Clear; // frm_sys_frprint.t_sys_reportfile.SQL.Add('select * from t_sys_report where CH_ID='+inttostr(frm_sys_frprint.t_sys_report['CH_ID'])); // frm_sys_frprint.t_sys_reportfile.Open; try template := t_sys_report.CreateBlobStream(t_sys_report.FieldByName('report'), bmRead); template.Position := 0; frm_sys_frprint.frxReport1.LoadFromStream(template); finally template.Free; end; frm_sys_frprint.frxReport1.PrepareReport; frm_sys_frprint.frxReport1.PrintOptions.ShowDialog:=true; frm_sys_frprint.frxReport1.Print; print_str:=frm_sys_frprint.frxReport1.PrintOptions.Printer; if_first:=false; end else begin { try template := t_sys_report.CreateBlobStream(t_sys_report.FieldByName('report'), bmRead); template.Position := 0; frm_sys_frprint.frxReport1.LoadFromStream(template); finally template.Free; end; } frm_sys_frprint.frxReport1.PrintOptions.ShowDialog:=false; frm_sys_frprint.frxReport1.PrintOptions.Printer:=print_str; frm_sys_frprint.frxReport1.PrepareReport; frm_sys_frprint.frxReport1.Print; end; frm_sys_frprint.one_table_1.DataSource:=nil; frm_sys_frprint.one_table_2.DataSource:=nil; frm_sys_frprint.one_table_3.DataSource:=nil; frm_sys_frprint.one_table_4.DataSource:=nil; frm_sys_frprint.all_table_1.DataSource:=nil; frm_sys_frprint.all_table_2.DataSource:=nil; frm_sys_frprint.all_table_3.DataSource:=nil; frm_sys_frprint.all_table_4.DataSource:=nil; frm_sys_frprint.all_table_5.DataSource:=nil; frm_sys_frprint.all_table_6.DataSource:=nil; frm_sys_frprint.all_table_7.DataSource:=nil; tv_bscard_all.next; end; finally frm_sys_frprint.free; frm_sys_frprint:=nil; end; end; procedure Tfrm_ch_piliang_zhuprnfee.bsSkinButton5Click(Sender: TObject); begin close; end; procedure Tfrm_ch_piliang_zhuprnfee.bsSkinButton8Click(Sender: TObject); begin if t_sys_report.IsEmpty then begin showmessage('没有帐单格式,无法打印!!'); exit; end; setprntrue; op:=true; sys_frprint_piliang('主票核算单打印',t_sys_report.fieldbyname('报表名称').asstring, tv_bscard_all,v_op_bscard1,nil,nil,nil, t_pin_accept1,t_pin_pay1,t_pin_gain1,t_op_gain_main1,nil,nil,nil); end; procedure Tfrm_ch_piliang_zhuprnfee.FormShow(Sender: TObject); begin t_sys_report.Parameters[0].value:='主票核算单打印'; t_sys_report.open; t_op_gain_main.Open ; op:=false; end; procedure Tfrm_ch_piliang_zhuprnfee.setprntrue; var tblname:string ; begin with tv_bscard_all do begin First ; while not eof do begin tblname:='' ; if tv_bscard_all.FieldByName('业务类别').asstring='海运出口' then tblname:='t_op_seae' else if tv_bscard_all.FieldByName('业务类别').asstring='海运进口' then tblname:='t_op_seai' else if tv_bscard_all.FieldByName('业务类别').asstring='空运出口' then tblname:='t_op_aire' else if tv_bscard_all.FieldByName('业务类别').asstring='空运进口' then tblname:='t_op_airi' else raise exception.Create('发生不可预知错误!') ; qrytmp.Close ; qrytmp.sql.clear ; qrytmp.sql.add('update '+tblname+' set 是否打印=1 '); if strtobool(get_parameters_value(63,'false'))then qrytmp.sql.add(' ,费用状态=''费用封帐'''); qrytmp.sql.add('where 编号=:bianhao'); qrytmp.parameters.parambyname('bianhao').value:=FieldByName('编号').asstring ; qrytmp.execsql ; next ; end ; first ; end ; end; procedure Tfrm_ch_piliang_zhuprnfee.tv_bscard_allAfterScroll( DataSet: TDataSet); begin if not op then exit; { t_pin_accept.close; t_pin_accept.Parameters[1].value:=tv_bscard_all.fieldbyname('编号').asstring; t_pin_accept.open; t_pin_pay.close; t_pin_pay.Parameters[1].value:=tv_bscard_all.fieldbyname('编号').asstring; t_pin_pay.open; t_pin_gain.close; t_pin_gain.Parameters[1].value:=tv_bscard_all.fieldbyname('编号').asstring; t_pin_gain.open; } end; end.