fastereportexportは、GUI(グラフィカルユーザーインターフェイス)環境ではなく、マルチスレッドに関する高速レポートレポートのエクスポートのライブラリです。
Delphi Languageで実装されており、Fluent Interface Conceptを使用して、必要に応じてPDF、HTML、PNG形式などでレポートをエクスポートするように設計されたライブラリの使用をガイドします。
環境
fastereportexportを使用するには、高速レポートコンポーネントをインストールする必要があります。
ボス(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 Locations APIデータを使用してレポートを生成およびエクスポートしました。
エクスポートの例アーカイブ:locialivesibge.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は、無料でオープンソースのソフトウェアがライセンスされています