FastreportExport는 GUI (그래픽 사용자 인터페이스) 환경이 아닌 멀티 스레딩 에 대한 빠른 보고서 보고서를 내보내기위한 라이브러리입니다.
델파이 언어로 구현 된이 회사는 유창한 인터페이스 개념을 사용하여 PDF, HTML, PNG 형식으로 보고서를 내보내도록 설계된 라이브러리 사용을 안내합니다.
환경
FastreportExport를 사용하려면 빠른 보고서 구성 요소를 설치해야합니다.
Boss (Delphi의 종속성 관리자)를 사용하면 라이브러리를 자동으로 설치할 수 있습니다.
boss install github.com/antoniojmsjr/FastReportExport
수동으로 설치하기로 선택한 경우 프로젝트> 옵션> 델파이 컴파일러> 대상> 모든 구성> 검색 경로 에서 다음 폴더를 프로젝트에 추가하십시오.
..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를 사용한 웹 응용 프로그램에 대한 응력 테스트 :
..FastReportExportSamplesJMeter
FastReportExport 무료이며 오픈 소스 소프트웨어에 따라 라이센스가 부여됩니다