Telescope (core)

Como definir dinamicamente um cabeçalho/rodapé do relatório em tempo de execução através de uma regra de negócio?

ADS.FAQ-22920
Para montar dinamicamente um cabeçalho e/ou rodapé em todas as páginas de um relatório, será necessário criar uma regra disparada em um evento PRE_REPORT.
Sugere-se que o nome desta regra seja algo como "Preparar cabeçalho (ou rodapé) do relatório".

O código a ser colocado nesta regra, deverá set algo como:
       getPageHeaderTemplate()
               .leftArea("EMPRESA ACME S.A.\nRelatório contábil - Mes: MAIO/2010")
               .rightArea("Página ${page} de ${pages}");
       getPageFooterTemplate()
               .leftArea("MATERIAL CONTROLADO - NÃO COPIAR")
               .rightArea("Emitido por ${user} em ${date} ${time}");

Observações:

Alterando o cabeçalho ao longo do relatório

Caso deseje alterar o conteúdo do cabeçalho/rodapé em cada página colocando, por exemplo, um valor a transportar ou transportado, um range de datas contidas na página, etc., o mesmo procedimento que foi realizado no pre-report, pode ser realizado nos eventos ON_PAGE_HEADER e ON_PAGE_FOOTER.
A programação é exatamente igual à utilizada no PRE_REPORT.
O único detalhe IMPORTANTE é que os cabeçalhos e rodapés não poderão ocupar mais espaço do que aquele previsto inicialmente no PRE_REPORT. Caso o desenvolvedor coloque dinamicamente um cabeçalho ou rodapé maior (com mais linhas) do que o inicialmente previsto, corre-se o risco de sobrepor textos SOBRE o corpo do relatório.

Ver também: