Fastreportexport est une bibliothèque pour l'exportation de rapports de rapports rapides pour les environnements multithreading et non GUI (interface utilisateur graphique) .
Implémenté dans Delphi Language, il utilise le concept d'interface fluide pour guider l'utilisation de la bibliothèque, conçue pour exporter des rapports dans les formats PDF, HTML, PNG, entre autres, au besoin.
Environnements
Pour utiliser Fastreportexport , vous devez installer le composant Fast Report.
En utilisant le boss (Dependency Manager pour Delphi), il est possible d'installer automatiquement la bibliothèque.
boss install github.com/antoniojmsjr/FastReportExport
Si vous choisissez d'installer manuellement, ajoutez simplement les dossiers suivants à votre projet, dans le projet> Options> Compiler Delphi> Target> Toutes les configations> Chemin de recherche
..FastReportExportSource
Providers est une interface utilisée par la bibliothèque pour exporter les rapports qui fournit la classe TFRXCustomexporFilter pour la configuration et peut être étendu pour implémenter d'autres formats de fichiers.
| Déposer | Fournisseur | TfrxCustomexportfilter |
|---|---|---|
| Ifrexportpdf | Tfrxpdfexport | |
| Html | Ifrexporthtml | Tfrxhtmlexort |
| PNG | Ifrexportpng | Tfrxpngexport |
| BMP | Ifrexportbmp | Tfrxbmpexport |
| Jpeg | Ifrexportjpeg | Tfrxjpegexport |
| CSV | Ifrexportcsv | Tfrxcsvexport |
| Rtf | Ifrexporttf | Tfrxrtfexport |
| Xls | Ifrexportxls | Tfrxxlsexport |
| Xlsx | Ifrexportxlsx | Tfrxxlsxexport |
| Docx | Ifrexportdocx | Tfrxdocxexport |
Exemple
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 ;Les ensembles de données sont une interface utilisée par la bibliothèque pour la communication avec la base de données via les composants:
| Classe | Composant |
|---|---|
| Chit | Indigène |
| Tfrxdbdataset | Rapport rapide |
Pour illustrer l'utilisation de la bibliothèque , les données de l'API des emplacements IBGE ont été utilisées pour générer et exporter le rapport.
Exemple d'exportation Archives: localitésibge.pdf
Des exemples sont disponibles dans le dossier du projet:
..FastReportExportSamples
Exemple de base de données
..FastReportExportSamplesDB
Exemple de rapport
..FastReportExportSamplesReport
Exemple
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 ;Exemple compilé
Télécharger: Demo.zip
Test de stress pour les applications Web à l'aide de JMeter:
..FastReportExportSamplesJMeter
FastReportExport est gratuit et un logiciel open source sous licence