unit Report.Simples; {$mode Delphi} interface uses Classes, SysUtils, Interfaces, Forms, Controls, frxExportPDF, frxClass, frxDBSet, frxExportBaseDialog, Horse.OctetStream, u_dmTables, Uni, u_DM, DB; type { TReportSimples } TReportSimples = class(TFrame) qryRptSimplesbairro: TStringField; qryRptSimplescep: TStringField; qryRptSimplescidade: TStringField; qryRptSimplescnpj: TStringField; qryRptSimplesendereco: TStringField; qryRptSimplesid_entidade: TFloatField; qryRptSimplesno_entidade: TStringField; qryRptSimplestelefone: TStringField; qryRptSimplestipoentidade: TStringField; qryRptSimplesuf: TStringField; tQry: TUniQuery; dsQry: TUniDataSource; tQrybairro: TStringField; tQrycep: TStringField; tQrycidade: TStringField; tQrycnpj: TStringField; tQryendereco: TStringField; tQryid_entidade: TFloatField; tQryno_entidade: TStringField; tQrytelefone: TStringField; tQrytipoentidade: TStringField; tQryuf: TStringField; private FDM : TDM; FTB : TdmTables; procedure SaveReportToFile; Function GetReportFilePatch : String; Function GetReportName : String; Function GetReportStream : TMemoryStream; public constructor Create; destructor Destroy; override; Function GetReport : TFileReturn; end; implementation {$R *.lfm} { TReportSimples } procedure TReportSimples.SaveReportToFile; var tQry : TUniQuery; frxDBDataset : TfrxDBDataset; frxPDFExport : TfrxPDFExport; frxReport : TfrxReport; camRpt : String; camPDF : String; begin camRpt := 'D:\ServidorAlmoxarifado\lib\reports\frEntidadesAtivas.fr3'; camPDF := ExtractFilePath(Application.ExeName) + '\temp\teste.pdf'; frxPDFExport := TfrxPDFExport.Create(nil); frxReport := TfrxReport.Create(Self); try try tQry := TUniQuery.Create(nil); tQry.Connection := FDM.dbElo; With tQry do begin Close; SQL.Clear; SQL.Add(FTB.sqlEntidade.SQL.Text); Open; Last; First;; end; frxDBDataset := TfrxDBDataset.Create(nil); frxDBDataset.GetDataSet; If tQry.RecordCount >= 1 then begin With frxPDFExport do begin FileName := camPDF; ShowDialog := False; ShowProgress := False; OverwritePrompt := True; OpenAfterExport := False; EmbeddedFonts := False; UseFileCache := True; OpenAfterExport := True; Quality := 100; CreationTime := Now; Subject := 'PDF Gerado pelo Servidor de Relatorios APIAlmoxarifado'; Producer := 'Informatica'; Author := 'Informatica'; PrintOptimized := False; PrintScaling := False; Compressed := False; Background := True; DefaultPath := ''; end; With frxReport do begin PrintOptions.ShowDialog := False; ShowProgress := false; PreviewOptions.AllowEdit := False; EngineOptions.SilentMode := True; EngineOptions.EnableThreadSafe := True; EngineOptions.DestroyForms := False; EngineOptions.UseGlobalDataSetList := False; LoadFromFile(camRpt); frxDBDataset.DataSet := tQry; frxDBDataset.OpenDataSource := True; frxDBDataset.Enabled := True; frxDBDataset.RangeBegin := rbFirst; frxDBDataset.RangeEnd := reLast; DataSets.Add(frxDBDataset); EnabledDataSets.Add(frxDBDataset); tQry.DisableControls; PrepareReport; Export(frxPDFExport); tQry.EnableControls; end; end; finally FreeAndNil(tQry); end; finally FreeAndNil( frxPDFExport ); FreeAndNil( frxReport ); FreeAndNil( frxDBDataset ); end; end; function TReportSimples.GetReportFilePatch: String; begin Result := 'D:\ServidorAlmoxarifado\lib\temp\'; end; function TReportSimples.GetReportName: String; begin Result := 'teste.pdf'; end; function TReportSimples.GetReportStream: TMemoryStream; begin Result := TMemoryStream.Create; Result.LoadFromFile( 'D:\ServidorAlmoxarifado\lib\temp\teste.pdf' ); end; constructor TReportSimples.Create; begin FDM := TDM.Create(nil); FTB := TdmTables.Create(nil); end; destructor TReportSimples.Destroy; begin FreeAndNil(FDM); FreeAndNil(FTB); inherited Destroy; end; function TReportSimples.GetReport: TFileReturn; begin SaveReportToFile; Result := TFileReturn.Create( 'D:\ServidorAlmoxarifado\lib\temp\teste.pdf', GetReportStream ); end; end.