unit u_sys_frprint; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, dxExEdtr, ppDB, ppProd, ppClass, ppReport, bsDialogs, bsSkinShellCtrls, ppDsgnDB, ppRelatv, ppDBPipe, DB, ADODB, ppComm, ppEndUsr, BusinessSkinForm, StdCtrls, Mask, bsSkinBoxCtrls, bsdbctrls, bsSkinCtrls, dxTL, dxDBCtrl, dxDBGrid, dxCntner, dxDBTLCl, dxGrClms, DBCtrls, XPMenu, Menus, TXComp, ExtDlgs, ImgList, IdFTP,IdFTPCommon, frxChBox, frxOLE, frxDCtrl, frxCross, frxClass, frxADOComponents, frxRich, frxExportCSV, frxExportImage, frxExportMail, frxGZip, frxCrypt, frxDesgn, frxExportODF, frxExportPDF, frxExportXML, frxExportXLS, frxExportHTML, frxExportText, frxExportRTF, frxDBSet, Grids, DBGrids,inifiles; type Tfrm_sys_frprint = class(TForm) bsBusinessSkinForm1: TbsBusinessSkinForm; dxDBGrid1: TdxDBGrid; dxDBGrid1Column1: TdxDBGridMaskColumn; bsSkinPanel3: TbsSkinPanel; t_sys_report: TADOQuery; t_sys_report1: TDataSource; bsSkinInputDialog1: TbsSkinInputDialog; bsSkinDBEdit1: TbsSkinDBEdit; dxDBGrid1Column2: TdxDBGridCheckColumn; bsSkinPanel1: TbsSkinPanel; Label1: TLabel; DBEdit1: TDBEdit; Label2: TLabel; DBEdit2: TDBEdit; Button5: TButton; PopupMenu1: TPopupMenu; XPMenu1: TXPMenu; N1: TMenuItem; N2: TMenuItem; EXCEL1: TMenuItem; N3: TMenuItem; WORD1: TMenuItem; N4: TMenuItem; PDF1: TMenuItem; N5: TMenuItem; RTF1: TMenuItem; ImageList: TImageList; OpenDialog1: TOpenDialog; t_sys_report_employee: TADOQuery; bsSkinPanel2: TbsSkinPanel; bsSkinButton12: TbsSkinButton; bsSkinPanel4: TbsSkinPanel; bsSkinButton6: TbsSkinButton; bsSkinButton8: TbsSkinButton; bsSkinButton7: TbsSkinButton; bsSkinButton3: TbsSkinButton; bsSkinButton4: TbsSkinButton; bsSkinButton9: TbsSkinButton; bsSkinButton1: TbsSkinButton; bsSkinButton2: TbsSkinButton; bsSkinButton10: TbsSkinButton; bsSkinButton11: TbsSkinButton; bsSkinButton5: TbsSkinButton; t_sys_report_lei: TADOQuery; t_sys_reportfile: TADOQuery; t_sys_reportfile1: TDataSource; frxBMPExport1: TfrxBMPExport; frxJPEGExport1: TfrxJPEGExport; frxTIFFExport1: TfrxTIFFExport; frxRTFExport1: TfrxRTFExport; frxSimpleTextExport1: TfrxSimpleTextExport; frxHTMLExport1: TfrxHTMLExport; frxXLSExport1: TfrxXLSExport; frxPDFExport1: TfrxPDFExport; frxODSExport1: TfrxODSExport; frxODTExport1: TfrxODTExport; frxDesigner1: TfrxDesigner; frxCrypt1: TfrxCrypt; frxGZipCompressor1: TfrxGZipCompressor; frxMailExport1: TfrxMailExport; frxGIFExport1: TfrxGIFExport; frxCSVExport1: TfrxCSVExport; frxRichObject1: TfrxRichObject; frxReport1: TfrxReport; frxADOComponents1: TfrxADOComponents; frxCrossObject1: TfrxCrossObject; frxDialogControls1: TfrxDialogControls; frxOLEObject1: TfrxOLEObject; frxCheckBoxObject1: TfrxCheckBoxObject; one_table_1: TfrxDBDataset; one_table_2: TfrxDBDataset; one_table_3: TfrxDBDataset; one_table_4: TfrxDBDataset; all_table_4: TfrxDBDataset; all_table_3: TfrxDBDataset; all_table_2: TfrxDBDataset; all_table_1: TfrxDBDataset; all_table_7: TfrxDBDataset; all_table_5: TfrxDBDataset; all_table_6: TfrxDBDataset; print_head: TfrxDBDataset; load_employee: TfrxDBDataset; t_sys_cust: TADOQuery; t_sys_cust1: TDataSource; load_cust: TfrxDBDataset; SaveDialog1: TSaveDialog; ds_sys_reporthead1: TDataSource; t_sys_reporthead: TADOQuery; all_table_8: TfrxDBDataset; bsSkinCheckRadioBox1: TbsSkinCheckRadioBox; procedure bsSkinButton8Click(Sender: TObject); procedure bsSkinButton2Click(Sender: TObject); procedure bsSkinButton5Click(Sender: TObject); procedure bsSkinButton3Click(Sender: TObject); procedure bsSkinButton4Click(Sender: TObject); procedure bsSkinButton9Click(Sender: TObject); procedure bsSkinButton1Click(Sender: TObject); procedure bsSkinButton6Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure bsSkinButton7Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure EXCEL1Click(Sender: TObject); procedure WORD1Click(Sender: TObject); procedure PDF1Click(Sender: TObject); procedure RTF1Click(Sender: TObject); procedure bsSkinButton10Click(Sender: TObject); procedure t_sys_reportAfterPost(DataSet: TDataSet); procedure bsSkinButton12Click(Sender: TObject); procedure t_sys_reportAfterOpen(DataSet: TDataSet); procedure t_sys_reportBeforeClose(DataSet: TDataSet); procedure t_sys_reportfileAfterInsert(DataSet: TDataSet); procedure t_sys_reportfileAfterPost(DataSet: TDataSet); function frxDesigner1SaveReport(Report: TfrxReport; SaveAs: Boolean): Boolean; function frxReport1UserFunction(const MethodName: String; var Params: Variant): Variant; procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end; var frm_sys_frprint: Tfrm_sys_frprint; implementation uses u_main, u_data_share, my_sys_function; {$R *.dfm} procedure Tfrm_sys_frprint.bsSkinButton8Click(Sender: TObject); var template : TStream; begin if t_sys_report.isempty then exit; t_sys_reportfile.Close; t_sys_reportfile.SQL.Clear; t_sys_reportfile.SQL.Add('select * from t_sys_report where CH_ID='+inttostr(t_sys_report['CH_ID'])); t_sys_reportfile.Open; if t_sys_reportfile.isempty then begin showmessage('没有打印格式,不能打印输出!'); exit; end; if t_sys_reportfile.fieldbyname('report').IsNull then begin showmessage('没有要预览的格式!'); exit; end; try try template := t_sys_reportfile.CreateBlobStream(t_sys_reportfile.FieldByName('report'), bmRead); template.Position := 0; frxReport1.LoadFromStream(template); finally template.Free; end; frxReport1.PrepareReport; frxReport1.Print; except showmessage('打印输出失败!'); end; if frm_sys_frprint.caption='海运出口单证' then begin if not t_sys_report_employee.Locate('CH_ID',t_sys_report.fieldbyname('CH_ID').asinteger,[])then begin t_sys_report_employee.insert; t_sys_report_employee['CH_ID']:=t_sys_report['CH_ID']; t_sys_report_employee['报表属性']:=t_sys_report['报表属性']; t_sys_report_employee['姓名']:=employee; t_sys_report_employee['日期']:=date; t_sys_report_employee.post; end else begin t_sys_report_employee.edit; t_sys_report_employee['日期']:=date; t_sys_report_employee.post; end; end; end; procedure Tfrm_sys_frprint.bsSkinButton2Click(Sender: TObject); var book1:Tbookmark; str:string; begin try t_sys_report.DisableControls; book1:=t_sys_report.GetBookmark; str:=t_sys_report.fieldbyname('报表名称').asstring; t_sys_report.First; while not t_sys_report.eof do begin if t_sys_report.fieldbyname('报表名称').asstring=str then begin t_sys_report.edit; t_sys_report['是否默认']:=1; t_sys_report.post; end else begin t_sys_report.edit; t_sys_report['是否默认']:=0; t_sys_report.post; end; t_sys_report.next; end; finally t_sys_report.GotoBookmark(book1); t_sys_report.EnableControls; end; end; procedure Tfrm_sys_frprint.bsSkinButton5Click(Sender: TObject); begin close; end; procedure Tfrm_sys_frprint.bsSkinButton3Click(Sender: TObject); begin if t_sys_report.IsEmpty then begin t_sys_reportfile.Close; t_sys_reportfile.SQL.Clear; t_sys_reportfile.SQL.Add('select top 0 * from t_sys_report '); t_sys_reportfile.Open; end else begin t_sys_reportfile.Close; t_sys_reportfile.SQL.Clear; t_sys_reportfile.SQL.Add('select * from t_sys_report where CH_ID='+inttostr(t_sys_report['CH_ID'])); t_sys_reportfile.Open; end; t_sys_reportfile.Insert; t_sys_reportfile['报表名称']:=bsSkinInputDialog1.InputBox('更改名称','新的名称',t_sys_reportfile.fieldbyname('报表名称').asstring); t_sys_reportfile.post; { if frm_sys_frprint.caption='海运出口单证' then begin if not t_sys_report_employee.Locate('CH_ID',t_sys_reportfile.fieldbyname('CH_ID').asinteger,[])then begin t_sys_report_employee.insert; t_sys_report_employee['CH_ID']:=t_sys_reportfile['CH_ID']; t_sys_report_employee['报表属性']:=t_sys_reportfile['报表属性']; t_sys_report_employee['姓名']:=employee; t_sys_report_employee['日期']:=date; t_sys_report_employee.post; end else begin t_sys_report_employee.edit; t_sys_report_employee['日期']:=date; t_sys_report_employee.post; end; end; } frxReport1.DesignReport; end; procedure Tfrm_sys_frprint.bsSkinButton4Click(Sender: TObject); var template : TStream; begin if t_sys_report.isempty then exit; t_sys_reportfile.Close; t_sys_reportfile.SQL.Clear; t_sys_reportfile.SQL.Add('select * from t_sys_report where CH_ID='+inttostr(t_sys_report['CH_ID'])); t_sys_reportfile.Open; if t_sys_reportfile.isempty then begin showmessage('没有要设计的格式!'); exit; end; try if not t_sys_reportfile.fieldbyname('report').IsNull then begin try template := t_sys_reportfile.CreateBlobStream(t_sys_reportfile.FieldByName('report'), bmRead); template.Position := 0; frxReport1.LoadFromStream(template); finally template.Free; end; end; frxReport1.DesignReport; except showmessage('格式设计失败!'); end; if frm_sys_frprint.caption='海运出口单证' then begin if not t_sys_report_employee.Locate('CH_ID',t_sys_reportfile.fieldbyname('CH_ID').asinteger,[])then begin t_sys_report_employee.insert; t_sys_report_employee['CH_ID']:=t_sys_reportfile['CH_ID']; t_sys_report_employee['报表属性']:=t_sys_reportfile['报表属性']; t_sys_report_employee['姓名']:=employee; t_sys_report_employee['日期']:=date; t_sys_report_employee.post; end else begin t_sys_report_employee.edit; t_sys_report_employee['日期']:=date; t_sys_report_employee.post; end; end; end; procedure Tfrm_sys_frprint.bsSkinButton9Click(Sender: TObject); begin if t_sys_report.isempty then begin showmessage('没有要删除的格式!'); exit; end; if application.MessageBox('您确定要删除格式吗?','警告:',MB_OKCANCEL)=IDOK then t_sys_report.delete; end; procedure Tfrm_sys_frprint.bsSkinButton1Click(Sender: TObject); begin if t_sys_report.isempty then begin showmessage('没有要更改名称的格式!'); exit; end; t_sys_report.edit; t_sys_report['报表名称']:=bsSkinInputDialog1.InputBox('更改名称','新的名称',t_sys_report.fieldbyname('报表名称').asstring); t_sys_report.post; end; procedure Tfrm_sys_frprint.bsSkinButton6Click(Sender: TObject); var template : TStream; begin if t_sys_report.isempty then exit; t_sys_reportfile.Close; t_sys_reportfile.SQL.Clear; t_sys_reportfile.SQL.Add('select * from t_sys_report where CH_ID='+inttostr(t_sys_report['CH_ID'])); t_sys_reportfile.Open; if t_sys_reportfile.isempty then exit; if t_sys_reportfile.fieldbyname('report').IsNull then begin showmessage('没有要预览的格式!'); exit; end; try try template := t_sys_reportfile.CreateBlobStream(t_sys_reportfile.FieldByName('report'), bmRead); template.Position := 0; frxReport1.LoadFromStream(template); finally template.Free; end; frxReport1.ShowReport; except showmessage('打印预览失败!'); end; if frm_sys_frprint.caption='海运出口单证' then begin if not t_sys_report_employee.Locate('CH_ID',t_sys_reportfile.fieldbyname('CH_ID').asinteger,[])then begin t_sys_report_employee.insert; t_sys_report_employee['CH_ID']:=t_sys_reportfile['CH_ID']; t_sys_report_employee['报表属性']:=t_sys_reportfile['报表属性']; t_sys_report_employee['姓名']:=employee; t_sys_report_employee['日期']:=date; t_sys_report_employee.post; end else begin t_sys_report_employee.edit; t_sys_report_employee['日期']:=date; t_sys_report_employee.post; end; end; end; procedure Tfrm_sys_frprint.FormShow(Sender: TObject); begin if not if_open('170') then begin bsSkinButton3.Enabled:=false; bsSkinButton4.Enabled:=false; bsSkinButton9.Enabled:=false; bsSkinButton1.Enabled:=false; bsSkinButton2.Enabled:=false; bsSkinButton10.Enabled:=false; bsSkinButton11.Enabled:=false; end; // frm_data_share.t_sys_report_head.Requery(); // frm_data_share.t_load_employee.Requery(); if not t_sys_reporthead.IsEmpty then begin t_sys_reporthead.edit; t_sys_reporthead['台头TO']:=''; t_sys_reporthead['台头ATTN']:=''; t_sys_reporthead.post; end; if frm_sys_frprint.caption='海运出口单证' then bsSkinPanel2.Visible:=true; // rd.XHD_help:=t_sys_report_lei.fieldbyname('报表说明').asstring; end; procedure Tfrm_sys_frprint.bsSkinButton7Click(Sender: TObject); var Pnt:Tpoint; begin Pnt:=bsSkinButton7.ClientToScreen(Point(0,bsSkinButton7.Height)); PopupMenu1.Popup(Pnt.x,Pnt.y); if frm_sys_frprint.caption='海运出口单证' then begin if not t_sys_report_employee.Locate('CH_ID',t_sys_report.fieldbyname('CH_ID').asinteger,[])then begin t_sys_report_employee.insert; t_sys_report_employee['CH_ID']:=t_sys_report['CH_ID']; t_sys_report_employee['报表属性']:=t_sys_report['报表属性']; t_sys_report_employee['姓名']:=employee; t_sys_report_employee['日期']:=date; t_sys_report_employee.post; end else begin t_sys_report_employee.edit; t_sys_report_employee['日期']:=date; t_sys_report_employee.post; end; end; end; procedure Tfrm_sys_frprint.N1Click(Sender: TObject); var template : TStream; begin if t_sys_report.isempty then exit; t_sys_reportfile.Close; t_sys_reportfile.SQL.Clear; t_sys_reportfile.SQL.Add('select * from t_sys_report where CH_ID='+inttostr(t_sys_report['CH_ID'])); t_sys_reportfile.Open; if t_sys_reportfile.isempty then begin showmessage('没有打印格式,不能存为文件!'); exit; end; try try template := t_sys_reportfile.CreateBlobStream(t_sys_reportfile.FieldByName('report'), bmRead); template.Position := 0; frxReport1.LoadFromStream(template); finally template.Free; end; frxReport1.PrepareReport; frxReport1.Export(frxJPEGExport1); except showmessage('存为文件失败!'); end; end; procedure Tfrm_sys_frprint.EXCEL1Click(Sender: TObject); var template : TStream; begin if t_sys_report.isempty then exit; t_sys_reportfile.Close; t_sys_reportfile.SQL.Clear; t_sys_reportfile.SQL.Add('select * from t_sys_report where CH_ID='+inttostr(t_sys_report['CH_ID'])); t_sys_reportfile.Open; if t_sys_reportfile.isempty then begin showmessage('没有打印格式,不能存为文件!'); exit; end; try try template := t_sys_reportfile.CreateBlobStream(t_sys_reportfile.FieldByName('report'), bmRead); template.Position := 0; frxReport1.LoadFromStream(template); finally template.Free; end; frxReport1.PrepareReport; frxReport1.Export(frxXLSExport1); except showmessage('存为文件失败!'); end; end; procedure Tfrm_sys_frprint.WORD1Click(Sender: TObject); var template : TStream; begin if t_sys_report.isempty then exit; t_sys_reportfile.Close; t_sys_reportfile.SQL.Clear; t_sys_reportfile.SQL.Add('select * from t_sys_report where CH_ID='+inttostr(t_sys_report['CH_ID'])); t_sys_reportfile.Open; if t_sys_reportfile.isempty then begin showmessage('没有打印格式,不能存为文件!'); exit; end; try try template := t_sys_reportfile.CreateBlobStream(t_sys_reportfile.FieldByName('report'), bmRead); template.Position := 0; frxReport1.LoadFromStream(template); finally template.Free; end; frxReport1.PrepareReport; frxReport1.Export(frxHTMLExport1); except showmessage('存为文件失败!'); end; end; procedure Tfrm_sys_frprint.PDF1Click(Sender: TObject); var template : TStream; begin if t_sys_report.isempty then exit; t_sys_reportfile.Close; t_sys_reportfile.SQL.Clear; t_sys_reportfile.SQL.Add('select * from t_sys_report where CH_ID='+inttostr(t_sys_report['CH_ID'])); t_sys_reportfile.Open; if t_sys_reportfile.isempty then begin showmessage('没有打印格式,不能存为文件!'); exit; end; try try template := t_sys_reportfile.CreateBlobStream(t_sys_reportfile.FieldByName('report'), bmRead); template.Position := 0; frxReport1.LoadFromStream(template); finally template.Free; end; frxReport1.PrepareReport; frxReport1.Export(frxPDFExport1); except showmessage('存为文件失败!'); end; end; procedure Tfrm_sys_frprint.RTF1Click(Sender: TObject); var template : TStream; begin if t_sys_report.isempty then exit; t_sys_reportfile.Close; t_sys_reportfile.SQL.Clear; t_sys_reportfile.SQL.Add('select * from t_sys_report where CH_ID='+inttostr(t_sys_report['CH_ID'])); t_sys_reportfile.Open; if t_sys_reportfile.isempty then begin showmessage('没有打印格式,不能存为文件!'); exit; end; try try template := t_sys_reportfile.CreateBlobStream(t_sys_reportfile.FieldByName('report'), bmRead); template.Position := 0; frxReport1.LoadFromStream(template); finally template.Free; end; frxReport1.PrepareReport; frxReport1.Export(frxRTFExport1); except showmessage('存为文件失败!'); end; end; procedure Tfrm_sys_frprint.bsSkinButton10Click(Sender: TObject); var template : TStream; begin if t_sys_report.isempty then exit; t_sys_reportfile.Close; t_sys_reportfile.SQL.Clear; t_sys_reportfile.SQL.Add('select * from t_sys_report where CH_ID='+inttostr(t_sys_report['CH_ID'])); t_sys_reportfile.Open; if t_sys_reportfile.isempty then begin showmessage('没有打印格式,不能打印输出!'); exit; end; if t_sys_reportfile.fieldbyname('report').IsNull then begin showmessage('没有要预览的格式!'); exit; end; try try template := t_sys_reportfile.CreateBlobStream(t_sys_reportfile.FieldByName('report'), bmRead); template.Position := 0; frxReport1.LoadFromStream(template); finally template.Free; end; if SaveDialog1.Execute then frxReport1.savetofile(SaveDialog1.filename); except showmessage('另存格式失败!'); end; // GetNewData('t_sys_report','CH_ID','',t_sys_reportfile); { try IdFTP1:=TIdFTP.Create(application); with idftp1 do begin Username:='dongsheng'; Password:='zouwenkun'; Host:='218.57.11.18'; Connect; end; idftp1.Disconnect; update_jiandu; try if not assigned(frm_sys_print_down) then frm_sys_print_down:=tfrm_sys_print_down.Create (self); frm_sys_print_down.Caption:=frm_sys_print.Caption; frm_sys_print_down.ShowModal; finally frm_sys_print_down.free; frm_sys_print_down:=NIL; end; except showmessage('与下载服务器联机失败!!'); end; idftp1.free; } end; procedure Tfrm_sys_frprint.t_sys_reportAfterPost(DataSet: TDataSet); begin if frm_sys_frprint.caption='海运出口单证' then begin if not t_sys_report_employee.Locate('CH_ID',t_sys_report.fieldbyname('CH_ID').asinteger,[])then begin t_sys_report_employee.insert; t_sys_report_employee['CH_ID']:=t_sys_report['CH_ID']; t_sys_report_employee['报表属性']:=t_sys_report['报表属性']; t_sys_report_employee['姓名']:=employee; t_sys_report_employee['日期']:=date; t_sys_report_employee.post; end else begin t_sys_report_employee.edit; t_sys_report_employee['日期']:=date; t_sys_report_employee.post; end; end; end; procedure Tfrm_sys_frprint.bsSkinButton12Click(Sender: TObject); var str:widestring; begin if bsSkinButton12.caption='所有格式'then begin bsSkinButton12.caption:='近期格式'; t_sys_reportfile.close; t_sys_report.close; t_sys_report.sql.clear; t_sys_report.sql.add('select 报表名称,报表属性,是否默认,CH_ID from t_sys_report where 报表属性=:报表属性 order by 报表名称'); t_sys_report.Parameters[0].value:=frm_sys_frprint.caption; t_sys_report.open; t_sys_reportfile.Open; end else begin if not t_sys_report_employee.IsEmpty then begin t_sys_report_employee.first; while not t_sys_report_employee.eof do begin if t_sys_report_employee.fieldbyname('日期').AsDateTime>=date-30 then begin if str='' then str:=t_sys_report_employee.fieldbyname('CH_ID').asstring else str:=str+','+t_sys_report_employee.fieldbyname('CH_ID').asstring; end; t_sys_report_employee.next; end; str:=' and CH_ID in ('+str+')'; t_sys_reportfile.close; t_sys_report.close; t_sys_report.sql.clear; t_sys_report.sql.add('select 报表名称,报表属性,是否默认,CH_ID from t_sys_report where 报表属性=:报表属性 '+str+' order by 报表名称'); t_sys_report.Parameters[0].value:=frm_sys_frprint.caption; t_sys_report.open; t_sys_reportfile.Open; end else begin t_sys_reportfile.close; t_sys_report.close; t_sys_report.sql.clear; t_sys_report.sql.add('select 报表名称,报表属性,是否默认,CH_ID from t_sys_report where 报表属性=:报表属性 order by 报表名称'); t_sys_report.Parameters[0].value:=frm_sys_frprint.caption; t_sys_report.open; t_sys_reportfile.Open; end; bsSkinButton12.caption:='所有格式'; end; end; procedure Tfrm_sys_frprint.t_sys_reportAfterOpen(DataSet: TDataSet); begin // t_sys_reportfile.Open; end; procedure Tfrm_sys_frprint.t_sys_reportBeforeClose(DataSet: TDataSet); begin // t_sys_reportfile.Close; end; procedure Tfrm_sys_frprint.t_sys_reportfileAfterInsert(DataSet: TDataSet); begin t_sys_reportfile['报表属性']:=frm_sys_frprint.Caption; t_sys_reportfile['报表名称']:=frm_sys_frprint.Caption; t_sys_reportfile['报表内容']:='12311'; t_sys_reportfile['是否默认']:=false; end; procedure Tfrm_sys_frprint.t_sys_reportfileAfterPost(DataSet: TDataSet); var str:widestring; begin if frm_sys_frprint.caption='海运出口单证' then begin if not t_sys_report_employee.Locate('CH_ID',t_sys_reportfile.fieldbyname('CH_ID').asinteger,[])then begin t_sys_report_employee.insert; t_sys_report_employee['CH_ID']:=t_sys_reportfile['CH_ID']; t_sys_report_employee['报表属性']:=t_sys_reportfile['报表属性']; t_sys_report_employee['姓名']:=employee; t_sys_report_employee['日期']:=date; t_sys_report_employee.post; end else begin t_sys_report_employee.edit; t_sys_report_employee['日期']:=date; t_sys_report_employee.post; end; if bsSkinButton12.caption='所有格式'then begin if not t_sys_report_employee.IsEmpty then begin t_sys_report_employee.first; while not t_sys_report_employee.eof do begin if t_sys_report_employee.fieldbyname('日期').AsDateTime>=date-30 then begin if str='' then str:=t_sys_report_employee.fieldbyname('CH_ID').asstring else str:=str+','+t_sys_report_employee.fieldbyname('CH_ID').asstring; end; t_sys_report_employee.next; end; str:=' and CH_ID in ('+str+')'; t_sys_report.close; t_sys_report.sql.clear; t_sys_report.sql.add('select 报表名称,报表属性,是否默认,CH_ID from t_sys_report where 报表属性=:报表属性 '+str+' order by 报表名称'); t_sys_report.Parameters[0].value:=frm_sys_frprint.caption; t_sys_report.open; end else begin t_sys_report.close; t_sys_report.sql.clear; t_sys_report.sql.add('select 报表名称,报表属性,是否默认,CH_ID from t_sys_report where 报表属性=:报表属性 order by 报表名称'); t_sys_report.Parameters[0].value:=frm_sys_frprint.caption; t_sys_report.open; end; end else begin t_sys_report.close; t_sys_report.sql.clear; t_sys_report.sql.add('select 报表名称,报表属性,是否默认,CH_ID from t_sys_report where 报表属性=:报表属性 order by 报表名称'); t_sys_report.Parameters[0].value:=frm_sys_frprint.caption; t_sys_report.open; end; end else t_sys_report.Requery; t_sys_report.Locate('CH_ID',t_sys_reportfile['CH_ID'],[]); end; function Tfrm_sys_frprint.frxDesigner1SaveReport(Report: TfrxReport; SaveAs: Boolean): Boolean; var template : TStream; begin if saveas then begin try if SaveDialog1.Execute then frxReport1.savetofile(SaveDialog1.filename); except showmessage('另存格式失败!'); end; end else begin template := TMemoryStream.Create; template.Position := 0; frxReport1.SaveToStream(template); t_sys_reportfile.Edit; try t_sys_reportfile.DisableControls; (t_sys_reportfile.FieldByName('Report') as TBlobField).LoadFromStream(template); t_sys_reportfile.Post; finally t_sys_reportfile.EnableControls; template.Free; end; result:=true; end; end; function Tfrm_sys_frprint.frxReport1UserFunction(const MethodName: String; var Params: Variant): Variant; begin // if uppercase(MethodName)='MONEYCN' then Result := MoneyCn(Params[0],Params[1]); end; procedure Tfrm_sys_frprint.FormCreate(Sender: TObject); begin frxReport1.AddFunction('function MoneyCn(num:real;lx:boolean=false):widestring;','自定义'); end; procedure Tfrm_sys_frprint.FormClose(Sender: TObject; var Action: TCloseAction); var inifile1:Tinifile; begin inifile1:=Tinifile.Create(ExtractFilePath(application.ExeName)+'main.ini'); inifile1.WriteBool('RPT','NEW',not bsSkinCheckRadioBox1.Checked); inifile1.free; end; end.