FasterPortExport - это библиотека для экспорта отчетов Fast Reports для многопоточных сред .
Реализованный на языке Delphi, он использует концепцию интерфейса Fluent, чтобы направлять использование библиотеки, предназначенную для экспорта отчетов в PDF, HTML, форматах PNG, по мере необходимости.
Среда
Для использования FasterPortExport вам необходимо установить компонент Fast Report.
Используя босс (Manager для Delphi), можно автоматически установить библиотеку.
boss install github.com/antoniojmsjr/FastReportExport
Если вы решите установить вручную, просто добавьте следующие папки в свой проект, в Project> Options> Delphi Compiler> Target> Все конфигурации> Путь поиска
..FastReportExportSource
Поставщики - это интерфейс, используемый библиотекой для экспорта отчетов, которые предоставляют класс TFRXCustomexporfilter для конфигурации и могут быть расширены для реализации других форматов файлов.
| Файл | Поставщик | Tfrxcustomexportfilter |
|---|---|---|
| Ifrexportpdf | Tfrxpdfexport | |
| HTML | Ifrexporthtml | Tfrxhtmlexort |
| Пнн | Ifrexportpng | Tfrxpngexport |
| BMP | Ifrexportbmp | Tfrxbmpexport |
| JPEG | Ifrexportjpeg | Tfrxjpegexport |
| CSV | Ifrexportcsv | TFRXCSVEXPORT |
| RTF | Ifrexportrtf | Tfrxrtfexport |
| XLS | Ifrexportxls | TFRXXLSEXPORT |
| XLSX | Ifrexportxlsx | TFRXXLSXEXPORT |
| Доккс | 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 | Быстрый отчет |
Чтобы иллюстрировать использование библиотеки , данные API IBGE использовались для создания и экспорта отчета.
Экспортные примеры Архив: insocalitesibge.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:
..FastReportExportSamplesJMeter
FastReportExport бесплатный и программное обеспечение с открытым исходным кодом, лицензировано в соответствии с