FastReportExport
v1.1.21
FastrePortexport是用於導出多線程而非GUI(圖形用戶界面)環境的快速報告的庫。
它以Delphi語言實現,使用Fluent Interface概念來指導圖書館的使用,該庫的使用是根據需要在PDF,HTML,PNG格式中導出報告的。
環境
要使用FastrePortexport ,您需要安裝快速報告組件。
使用Boss (Delphi的依賴項管理器)可以自動安裝庫。
boss install github.com/antoniojmsjr/FastReportExport
如果選擇手動安裝,只需在項目>選項>選項> delphi編譯器>目標>所有配置>搜索路徑中添加以下文件夾。
..FastReportExportSource
提供商是庫用來導出提供TFRXCUSTOMEXPORFILTER類的報告的接口,可以擴展以實現其他文件格式。
| 文件 | 提供者 | tfrxcustomexportfilter |
|---|---|---|
| ifrexportpdf | tfrxpdfexport | |
| html | ifrexporthtml | tfrxhtmlexort |
| PNG | ifrexportpng | tfrxpngexport |
| BMP | ifrexportBMP | TFRXBMPEXPORT |
| jpeg | ifrexportjpeg | tfrxjpegexport |
| CSV | ifrexportcsv | TFRXCSVEXPORT |
| RTF | ifrexportrtf | tfrxrtfexport |
| XLS | ifrexportxls | TFRXXLSEXPORT |
| xlsx | ifrexportxlsx | TFRXXLSXEXPORT |
| DOCX | ifrexportDocx | tfrxdocxexport |
例子
var
lFRExportPDF: IFRExportPDF;
lFRExportHTML: IFRExportHTML;
lFRExportPNG: IFRExportPNG;
begin
// PROVIDER PDF
lFRExportPDF := TFRExportProviderPDF.New;
lFRExportPDF.frxPDF.Subject := ' Samples Fast Report Export ' ;
lFRExportPDF.frxPDF.Author := ' Antônio José Medeiros Schneider ' ;
// PROVIDER HTML
lFRExportHTML := TFRExportProviderHTML.New;
// PROVIDER PNG
lFRExportPNG := TFRExportProviderPNG.New;
lFRExportPNG.frxPNG.JPEGQuality := 100 ;
end ;數據集是圖書館使用的接口,用於通過組件與數據庫進行通信:
| 班級 | 成分 |
|---|---|
| 碎片 | 本國的 |
| TFRXDBDATASET | 快速報告 |
為了舉例說明庫的使用,IBGE位置API數據用於生成和導出報告。
導出示例檔案:localitiesibge.pdf
示例在項目文件夾中可用:
..FastReportExportSamples
示例數據庫
..FastReportExportSamplesDB
示例報告
..FastReportExportSamplesReport
例子
uses FRExport, FRExport.Types, FRExport.Interfaces.Providers; var
lFRExportPDF: IFRExportPDF;
lFRExportHTML: IFRExportHTML;
lFRExportPNG: IFRExportPNG;
lFileStream: TFileStream;
lFileExport: string;
begin
// PROVIDER PDF
lFRExportPDF := TFRExportProviderPDF.New;
lFRExportPDF.frxPDF.Subject := ' Samples Fast Report Export ' ;
lFRExportPDF.frxPDF.Author := ' Antônio José Medeiros Schneider ' ;
// PROVIDER HTML
lFRExportHTML := TFRExportProviderHTML.New;
// PROVIDER PNG
lFRExportPNG := TFRExportProviderPNG.New;
lFRExportPNG.frxPNG.JPEGQuality := 100 ;
// CLASSE DE EXPORTAÇÃO
try
TFRExport.New.
DataSets.
SetDataSet(qryEstadosBrasil, ' EstadosBrasil ' ).
SetDataSet(frxdbMunicipioEstado).
SetDataSet(frxdbMunicipioRegiao).
SetDataSet(qryEstadoRegiao, ' EstadoRegiao ' ).
SetDataSet(qryMunicipios, ' Municipios ' ).
& End .
Providers.
SetProvider(lFRExportPDF).
SetProvider(lFRExportHTML).
SetProvider(lFRExportPNG).
& End .
Export .
SetFileReport(TUtils.PathAppFileReport). // LOCAL DO RELATÓRIO *.fr3
Report(procedure(pfrxReport: TfrxReport) // CONFIGURAÇÃO DO COMPONENTE DE RELATÓRIO DO FAST REPORT
var
lfrxComponent: TfrxComponent;
lfrxMemoView: TfrxMemoView absolute lfrxComponent;
begin
pfrxReport.ReportOptions.Author := ' Antônio José Medeiros Schneider ' ;
// PASSAGEM DE PARÂMETRO PARA O RELATÓRIO
lfrxComponent := pfrxReport.FindObject( ' mmoProcess ' );
if Assigned(lfrxComponent) then
begin
lfrxMemoView.Memo.Clear;
lfrxMemoView.Memo.Text := Format( ' Aplicativo de Exemplo: %s ' , [ ' VCL ' ]);
end ;
// VARIÁVEIS DO RELATÓRIO
pfrxReport.Variables.Variables[ ' DATA_HORA_IMPRESSAO ' ] := QuotedStr(DateTimeToStr(Now));
end ).
Execute; // EXECUTA O PROCESSO DE EXPORTAÇÃO DO RELATÓRIO
except
on E: Exception do
begin
if E is EFRExport then
ShowMessage(E.ToString)
else
ShowMessage(E.Message);
Exit;
end ;
end ;
// SALVAR PDF
if Assigned(lFRExportPDF.Stream) then
begin
lFileStream := nil ;
try
lFileExport := Format( ' %s%s ' , [TUtils.PathApp, ' LocalidadesIBGE.pdf ' ]);
lFileStream := TFileStream.Create(lFileExport, fmCreate);
lFileStream.CopyFrom(lFRExportPDF.Stream, 0 );
finally
FreeAndNil(lFileStream);
end ;
end ;
// SALVAR HTML
if Assigned(lFRExportHTML.Stream) then
begin
lFileStream := nil ;
try
lFileExport := Format( ' %s%s ' , [TUtils.PathApp, ' LocalidadesIBGE.html ' ]);
lFileStream := TFileStream.Create(lFileExport, fmCreate);
lFileStream.CopyFrom(lFRExportHTML.Stream, 0 );
finally
FreeAndNil(lFileStream);
end ;
end ;
// SALVAR PNG
if Assigned(lFRExportPNG.Stream) then
begin
lFileStream := nil ;
try
lFileExport := Format( ' %s%s ' , [TUtils.PathApp, ' LocalidadesIBGE.png ' ]);
lFileStream := TFileStream.Create(lFileExport, fmCreate);
lFileStream.CopyFrom(lFRExportPNG.Stream, 0 );
finally
FreeAndNil(lFileStream);
end ;
end ;
end ;編譯的示例
下載:demo.zip
使用Jmeter對Web應用程序的壓力測試:
..FastReportExportSamplesJMeter
FastReportExport是免費的,開源軟件