Como combinar vários relatórios em um arquivo PDF no Delphi / Lazarus / C ++ Builder Como combinar vários relatórios em um

2020-09-03

Frequentemente necessitamos combinar vários documentos em um (por exemplo, PDF). Podem ser vários capítulos de documentação, diretórios de catálogos etc. A rigor, isso às vezes precisa ser feito não apenas para PDF, é apenas que este formato de arquivo em si não implica em edição e “mesclagem” sem ferramentas especiais, então seria melhor para fazê-lo corretamente imediatamente.

Hoje vou contar como fazer isso no FastReport VCL e FMX. Em nosso caso, haverá vários relatórios na entrada e um arquivo na saída.

Então, suponho que já tenhamos um projeto usando FastReport e os modelos estejam preparados. Em nosso exemplo, esses são arquivos no armazenamento local, mas nada impede de retirá-los do banco de dados ou de outras fontes. Agora precisamos combinar dois (ou mais) relatórios em um grande arquivo.

Para isso, o FastReport possui ferramentas que nos permitem anexar um novo relatório além do existente. O método TfrxReport.PrepareReport tem um parâmetro ClearLastReport: Boolean opcional que é definido como True por padrão. Este parâmetro determina se as páginas do relatório criado anteriormente devem ser apagadas. O exemplo a seguir mostra como construir um pacote de dois relatórios:

Pascal:
1
2
3
4
5
frxReport1.LoadFromFile('1.fr3');
frxReport1.PrepareReport;
frxReport1.LoadFromFile('2.fr3');
frxReport1.PrepareReport(False);
frxReport1.ShowPreparedReport;

 

C++:
1
2
3
4
5
frxReport1->LoadFromFile("1.fr3");
frxReport1->PrepareReport(true);
frxReport1->LoadFromFile("2.fr3");
frxReport1->PrepareReport(false);
frxReport1->ShowPreparedReport();

Carregue o primeiro relatório e crie-o sem exibi-lo na tela. Em seguida, carregue o segundo relatório no mesmo objeto TfrxReport e crie-o com o parâmetro ClearLastReport = False. Isso adiciona o segundo relatório ao anterior.

Obviamente, podemos repetir as duas penúltimas linhas para adicionar mais alguns relatórios ao nosso relatório composto complexo. E essa parte só é possível a partir do código.

Quando tivermos construído tudo, podemos ver os relatórios combinados na janela de visualização e salvar facilmente esse arquivo em qualquer formato e local a partir dele.

Salvando relatórios combinados como PDF.

Depois que conseguimos combinar dois relatórios em um, simplesmente exportamos para PDF (ou, na verdade, para qualquer formato de arquivo - por exemplo, RTF / DOC / ODT ou tabular - mas não é tão difícil combiná-los após a exportação enquanto é relevante para PDF). Aqui você pode permitir que o usuário selecione o formato de arquivo para salvar e as configurações:

Exportar para PDF

Click no ícone Save para preview do relatório.
Select the required format – PDF.

Podemos ver a janela de configurações de exportação.

Configure é tudo que necessitamos.

Para obter maiores informações de como criar e configurar, consulte o artigo: 

Click OK quando terminado!

Ou alguma coisa como "FrxReport1.Export (frxPDFExport1);"

Descrevi os parâmetros de salvamento em vários formatos do código Delphi, Lazarus e C ++ Builder mais detalhadamente em artigos anteriores.

Podemos abrir o documento resultante após a criação. Tendo aberto o arquivo, veremos uma exibição consistente de nossos relatórios em um documento PDF.

Combinar dois relatórios PDF do Delphi, Lazarus e C ++ Builder não é tão difícil quanto pode parecer.

VCL Export Lazarus FastReport PDF Delphi VCL Export Lazarus FastReport PDF Delphi
22 de abril de 2025

Working with the TfrShellTreeView Component in FastReport VCL

In this article, we will look at the TfrShellTreeView component. It is designed to display file system elements and is partially analogous to the TDirectoryListBox, TDirectoryOutline, and TShellTreeView components.
22 de abril de 2025

Working with XML and JSON Formats in FastScript

In this article, we will take a closer look at how to work with JSON and XML in FastReport, see what properties and methods they have, and build reports from code with scripts.
21 de abril de 2025

How RFID Tags Work in FastReport VCL

In this article, we'll check out how RFID tags work with the new TfrxDeviceCommand object in FastReport VCL with release 2025.2.
Fast Reports
  • 800-985-8986 (English, US)
  • +31 97 01025-8466 (English, EU)
  • +49 30 56837-3928 (German, DE)
  • +55 19 98147-8148 (Portuguese, BR)
  • info@fast-report.com
  • 66 Canal Center Plaza, Ste 505, Alexandria, VA 22314

© 1998-2025 Fast Reports Inc.