quarta-feira, outubro 24, 2007

Relatório com mais de uma página no iReport

Me deparei com um problema na hora de criar relatórios com mais de uma página no iReport. Precisava fazer um relatório que tinha duas páginas: a primeira com algumas informações de uma tabela mestre e um detalhe, e a segunda com mais informações do mestre. Ao tentar resolver o problema pesquisei em várias listas de discussão e em nenhuma delas eu tive uma resposta objetiva pra resolver o meu problema. Dentre as possíveis soluções encontrei:
  • Criar um novo Agrupamento (ou dummy) para o meu relatório, e definir para este agrupamento que ele seria impresso sempre em uma nova página. Tentei usar este recurso, que penso que seria o mais indicado para resolver o meu problema, mas por algum motivo ele não dava a quebra de página e não encontrei ninguém para me ajudar a resolver isto, talvez eu tente usar este método quanto tiver um pouco mais de tempo pra testar;
  • Usar o componente de quebra de página pra chamar a partir de uma banda um sub relatório. Teste este método também mas por algum motivo a segunda página sempre estava sendo impressa em branco, sabe-se lá porque.
  • A terceira e última solução eu encontrei em um post de uma lista de discussão, a princípio achei meio gambiarra, mas acabou que foi a única solução a resolver o meu problema. Trata-se de aumentar o tamanho da página (para duas ou n vezes o tamanho da original) e inserir quebras de páginas para o gerador dividir o relatório entre as páginas que eu desejar. Junto deste processo foi preciso utilizar grupos de relatório, senão a quebra não funciona. Abaixo vou detalhar este processo.
Primeiramente criei o meu relatório principal. Nele inseri um agrupamento (Visualizar->Agrupamentos do relatório). Nas propriedade deste agrupamento marquei a opção Iniciar em uma nova página. Acessei as propriedades do relatório (Editar->Propriedades do Relatório) e defini a Altura com 54,398, ou seja, duas vezes o tamanho da folha A4, pois no meu caso serão duas páginas de relatório. Ainda nas propriedades do relatório, na aba Mais, marquei a propriedade Ignorar paginação.
Este é o processo de configuração do relatório, depois disso criei a minha primeira página do relatório e para a segunda, primeiramente aumentei o tamanho da banda Footer do agrupamento que eu criei para o tamanho da folha A4 (+-29), depois, inseri no início deste banda um componente de quebra de página, bem no início da banda. Depois é só fazer a segunda página do relatório.

3 comentários:

Unknown disse...

Bom dia amigo já encontrou outra solução para este problema fora essas apresentadas? Outra dúvida aonde encontro a ferramenta quebra de página?

Unknown disse...

Bom dia amigo já encontrou outra solução para este problema fora essas apresentadas? Outra dúvida aonde encontro a ferramenta quebra de página?

Ênio S. Batista disse...

Bom dia Rodrigo. Não achei outra solução cara. Usei a quebra de linha mesmo. Eu estava usando a versão 3.0.0 do iReport, lá vc vai em Editar->Inserir quebra de página/coluna.