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是免费的,开源软件