{"id":23127996,"url":"https://github.com/antoniojmsjr/fastreportexport","last_synced_at":"2026-01-18T08:33:24.157Z","repository":{"id":37708895,"uuid":"502792892","full_name":"antoniojmsjr/FastReportExport","owner":"antoniojmsjr","description":"⚡ Biblioteca de exportação de relatórios utilizando Fast Report em ambientes multithreading e não GUI(Graphical User Interface).","archived":false,"fork":false,"pushed_at":"2025-08-23T19:14:45.000Z","size":1216,"stargazers_count":43,"open_issues_count":0,"forks_count":17,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-08-24T07:31:48.702Z","etag":null,"topics":["delphi","export","fastreport","iis","multithreading","report"],"latest_commit_sha":null,"homepage":"","language":"Pascal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/antoniojmsjr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-13T03:27:14.000Z","updated_at":"2025-08-23T19:14:49.000Z","dependencies_parsed_at":"2025-02-05T05:22:20.188Z","dependency_job_id":"4b8cc3dc-ed40-4cba-8d89-c1dae0bd8298","html_url":"https://github.com/antoniojmsjr/FastReportExport","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/antoniojmsjr/FastReportExport","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antoniojmsjr%2FFastReportExport","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antoniojmsjr%2FFastReportExport/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antoniojmsjr%2FFastReportExport/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antoniojmsjr%2FFastReportExport/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/antoniojmsjr","download_url":"https://codeload.github.com/antoniojmsjr/FastReportExport/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antoniojmsjr%2FFastReportExport/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28534148,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["delphi","export","fastreport","iis","multithreading","report"],"created_at":"2024-12-17T09:16:03.635Z","updated_at":"2026-01-18T08:33:24.148Z","avatar_url":"https://github.com/antoniojmsjr.png","language":"Pascal","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Maintained YES](https://img.shields.io/badge/Maintained%3F-yes-green.svg?style=flat-square\u0026color=important)\n![Memory Leak Verified YES](https://img.shields.io/badge/Memory%20Leak%20Verified%3F-yes-green.svg?style=flat-square\u0026color=important)\n![Release](https://img.shields.io/github/v/release/antoniojmsjr/FastReportExport?label=Latest%20release\u0026style=flat-square\u0026color=important)\n![Stars](https://img.shields.io/github/stars/antoniojmsjr/FastReportExport.svg?style=flat-square)\n![Forks](https://img.shields.io/github/forks/antoniojmsjr/FastReportExport.svg?style=flat-square)\n![Issues](https://img.shields.io/github/issues/antoniojmsjr/FastReportExport.svg?style=flat-square\u0026color=blue)\u003c/br\u003e\n![Compatibility](https://img.shields.io/badge/Compatibility-VCL,%20Firemonkey,%20DataSnap,%20Horse,%20RDW,%20RADServer-3db36a?style=flat-square)\n![Delphi Supported Versions](https://img.shields.io/badge/Delphi%20Supported%20Versions-XE7%20and%20newer-3db36a?style=flat-square)\n![Fastreport Supported Versions](https://img.shields.io/badge/Fast%20Report%20Supported%20Versions-5.1.5%20and%20newer-3db36a?style=flat-square)\n\n# FastReportExport\n\n**FastReportExport** é uma biblioteca para exportação de relatórios com [Fast Report](https://www.fast-report.com) para ambientes **multithreading** e não **GUI(Graphical User Interface)**.\n\nImplementado na linguagem Delphi, utiliza o conceito de [fluent interface](https://en.wikipedia.org/wiki/Fluent_interface) para guiar no uso da biblioteca, desenvolvido para exportar relatórios nos formatos PDF, HTML, PNG, entre outros, conforme a necessidade.\n\n**Ambientes**\n\n* Windows Forms\n* Windows Console\n* Windows Service\n* IIS ISAPI[(Horse)](https://github.com/HashLoad/horse)\n* IIS CGI[(Horse)](https://github.com/HashLoad/horse)\n\n## ⭕ Pré-requisito\n\nPara utilizar o **FastReportExport** é necessário a instalação do componente [Fast Report](https://www.fast-report.com).\n\n## ⚙️ Instalação Automatizada\n\nUtilizando o [**Boss**](https://github.com/HashLoad/boss/releases/latest) (Dependency manager for Delphi) é possível instalar a biblioteca de forma automática.\n\n```\nboss install github.com/antoniojmsjr/FastReportExport\n```\n\n## ⚙️ Instalação Manual\n\nSe você optar por instalar manualmente, basta adicionar as seguintes pastas ao seu projeto, em *Project \u003e Options \u003e Delphi Compiler \u003e Target \u003e All Configurations \u003e Search path*\n\n```\n..\\FastReportExport\\Source\n```\n\n## 🧬 Provedores de Exportação\n\n**Providers** é uma interface utilizada pela biblioteca para exportação dos relatórios que disponibiliza a classe **TfrxCustomExportFilter** para configuração, e pode ser extendida para implementação de outros formatos de arquivo.\n\n| Arquivo | Provedor | TfrxCustomExportFilter |\n|---|---|---|\n| PDF | IFRExportPDF | TfrxPDFExport |\n| HTML | IFRExportHTML | TfrxHTMLExport |\n| PNG | IFRExportPNG | TfrxPNGExport |\n| BMP | IFRExportBMP | TfrxBMPExport |\n| JPEG | IFRExportJPEG | TfrxJPEGExport |\n| CSV | IFRExportCSV | TfrxCSVExport |\n| RTF | IFRExportRTF | TfrxRTFExport |\n| XLS | IFRExportXLS | TfrxXLSExport |\n| XLSX | IFRExportXLSX | TfrxXLSXExport |\n| DOCX | IFRExportDOCX | TfrxDOCXExport |\n\n**Exemplo**\n\n```delphi\nvar\n  lFRExportPDF: IFRExportPDF;\n  lFRExportHTML: IFRExportHTML;\n  lFRExportPNG: IFRExportPNG;\nbegin\n\n  //PROVIDER PDF\n  lFRExportPDF := TFRExportProviderPDF.New;\n  lFRExportPDF.frxPDF.Subject := 'Samples Fast Report Export';\n  lFRExportPDF.frxPDF.Author := 'Antônio José Medeiros Schneider';\n\n  //PROVIDER HTML\n  lFRExportHTML := TFRExportProviderHTML.New;\n\n  //PROVIDER PNG\n  lFRExportPNG := TFRExportProviderPNG.New;\n  lFRExportPNG.frxPNG.JPEGQuality := 100;\n\nend;\n```\n\n## 🧬 DataSet de Exportação\n\n**DataSets** é uma interface utilizada pela biblioteca para comunicação com o banco de dados através dos componentes:\n\n| Classe | Componente |\n|---|---|\n| TDataSet | Nativo |\n| TfrxDBDataset | Fast Report |\n\n## ⚡️ Uso da biblioteca\n\nPara exemplificar o uso do biblioteca foi utilizado os dados da **[API de localidades do IBGE](https://servicodados.ibge.gov.br/api/docs/localidades)** para geração e exportação do relatório.\n\nArquivo de exemplo da exportação: [LocalidadesIBGE.pdf](https://github.com/antoniojmsjr/FastReportExport/files/9128761/LocalidadesIBGE.pdf)\n\nOs exemplos estão disponíveis na pasta do projeto:\n\n```\n..\\FastReportExport\\Samples\n```\n\n**Banco de dados de exemplo**\n\n* Firebird: 2.5.7 [Donwload](http://sourceforge.net/projects/firebird/files/firebird-win32/2.5.7-Release/Firebird-2.5.7.27050_0_Win32.exe/download)\n* Arquivo BD:\n```\n..\\FastReportExport\\Samples\\DB\n```\n\n**Relatório de exemplo**\n\n```\n..\\FastReportExport\\Samples\\Report\n```\n**Exemplo**\n\n```delphi\nuses FRExport, FRExport.Types, FRExport.Interfaces.Providers;\n```\n```delphi\nvar\n  lFRExportPDF: IFRExportPDF;\n  lFRExportHTML: IFRExportHTML;\n  lFRExportPNG: IFRExportPNG;\n  lFileStream: TFileStream;\n  lFileExport: string;\nbegin\n\n  //PROVIDER PDF\n  lFRExportPDF := TFRExportProviderPDF.New;\n  lFRExportPDF.frxPDF.Subject := 'Samples Fast Report Export';\n  lFRExportPDF.frxPDF.Author := 'Antônio José Medeiros Schneider';\n\n  //PROVIDER HTML\n  lFRExportHTML := TFRExportProviderHTML.New;\n\n  //PROVIDER PNG\n  lFRExportPNG := TFRExportProviderPNG.New;\n  lFRExportPNG.frxPNG.JPEGQuality := 100;\n\n  //CLASSE DE EXPORTAÇÃO\n  try\n    TFRExport.New.\n      DataSets.\n        SetDataSet(qryEstadosBrasil, 'EstadosBrasil').\n        SetDataSet(frxdbMunicipioEstado).\n        SetDataSet(frxdbMunicipioRegiao).\n        SetDataSet(qryEstadoRegiao, 'EstadoRegiao').\n        SetDataSet(qryMunicipios, 'Municipios').\n      \u0026End.\n      Providers.\n        SetProvider(lFRExportPDF).\n        SetProvider(lFRExportHTML).\n        SetProvider(lFRExportPNG).\n      \u0026End.\n      Export.\n        SetFileReport(TUtils.PathAppFileReport). //LOCAL DO RELATÓRIO *.fr3\n        Report(procedure(pfrxReport: TfrxReport) //CONFIGURAÇÃO DO COMPONENTE DE RELATÓRIO DO FAST REPORT\n          var\n            lfrxComponent: TfrxComponent;\n            lfrxMemoView: TfrxMemoView absolute lfrxComponent;\n          begin\n            pfrxReport.ReportOptions.Author := 'Antônio José Medeiros Schneider';\n\n            //PASSAGEM DE PARÂMETRO PARA O RELATÓRIO\n            lfrxComponent := pfrxReport.FindObject('mmoProcess');\n            if Assigned(lfrxComponent) then\n            begin\n              lfrxMemoView.Memo.Clear;\n              lfrxMemoView.Memo.Text := Format('Aplicativo de Exemplo: %s', ['VCL']);\n            end;\n\n\t\t\t//VARIÁVEIS DO RELATÓRIO\n            pfrxReport.Variables.Variables['DATA_HORA_IMPRESSAO'] := QuotedStr(DateTimeToStr(Now));\n          end).\n        Execute; //EXECUTA O PROCESSO DE EXPORTAÇÃO DO RELATÓRIO\n  except\n    on E: Exception do\n    begin\n      if E is EFRExport then\n        ShowMessage(E.ToString)\n      else\n        ShowMessage(E.Message);\n      Exit;\n    end;\n  end;\n\n  //SALVAR PDF\n  if Assigned(lFRExportPDF.Stream) then\n  begin\n    lFileStream := nil;\n    try\n      lFileExport := Format('%s%s', [TUtils.PathApp, 'LocalidadesIBGE.pdf']);\n      lFileStream := TFileStream.Create(lFileExport, fmCreate);\n      lFileStream.CopyFrom(lFRExportPDF.Stream, 0);\n    finally\n      FreeAndNil(lFileStream);\n    end;\n  end;\n\n  //SALVAR HTML\n  if Assigned(lFRExportHTML.Stream) then\n  begin\n    lFileStream := nil;\n    try\n      lFileExport := Format('%s%s', [TUtils.PathApp, 'LocalidadesIBGE.html']);\n      lFileStream := TFileStream.Create(lFileExport, fmCreate);\n      lFileStream.CopyFrom(lFRExportHTML.Stream, 0);\n    finally\n      FreeAndNil(lFileStream);\n    end;\n  end;\n\n  //SALVAR PNG\n  if Assigned(lFRExportPNG.Stream) then\n  begin\n    lFileStream := nil;\n    try\n      lFileExport := Format('%s%s', [TUtils.PathApp, 'LocalidadesIBGE.png']);\n      lFileStream := TFileStream.Create(lFileExport, fmCreate);\n      lFileStream.CopyFrom(lFRExportPNG.Stream, 0);\n    finally\n      FreeAndNil(lFileStream);\n    end;\n  end;\nend;\n```\n\n**Exemplo compilado**\n\n* VCL\n* VCL Server [(Horse)](https://github.com/HashLoad/horse)\n* VCL Client [(Horse)](https://github.com/HashLoad/horse)\n\nDownload: [Demo.zip](https://github.com/antoniojmsjr/FastReportExport/files/9559949/Demo.zip)\n\n**Teste de stress para aplicações web usando [JMeter](https://jmeter.apache.org/):**\n\n```\n..\\FastReportExport\\Samples\\JMeter\n```\n\nhttps://user-images.githubusercontent.com/20980984/173268272-dc81f411-b2e5-4030-8c56-c461527f2ebc.mp4\n\n\n## ⚠️ Licença\n`FastReportExport` is free and open-source software licensed under the [![License](https://img.shields.io/badge/license-Apache%202-blue.svg)](https://github.com/antoniojmsjr/Horse-IPGeoLocation/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantoniojmsjr%2Ffastreportexport","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantoniojmsjr%2Ffastreportexport","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantoniojmsjr%2Ffastreportexport/lists"}