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.
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:
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.