Particionamento de conteúdo na execução
A ferramenta de Relatórios permite particionar o conteúdo na execução. Desta forma, não é necessário emitir repetidamente o mesmo relatório com parâmetros diferentes. Quer entender como funciona? Acompanhe as informações abaixo e fique por dentro!
Exemplo:
Para emitir cinco relatórios em formato PDF, cada um deles contendo a listagem de empenhos de um determinado exercício, de 2014 à 2018. Para isto, teria que executar cinco vezes o mesmo relatório, informando os argumentos de cada exercício para cada execução. Não seria melhor executar o relatório uma única vez? Informando os cinco exercícios nos parâmetros durante a execução e obter os cinco relatórios em formato PDF em uma pasta zipada? Como exibido na imagem abaixo:
Como particionar?
Basta inserir as seguintes variáveis no modelo (.jrxml) utilizando a ferramenta Jaspersoft, que são:
BTH_PARTICIONAMENTO_EXPRESSAO:
Aqui será definida a expressão para o critério de agrupamento/quebra, por exemplo: "IDENTIFICADOR:"+$F{identificador}.
BTH_PARTICIONAMENTO_DESCRICAO:
Nesta variável você poderá incluir uma descrição para o agrupamento/quebra.
BTH_PARTICIONAMENTO_PROTOCOLO:
No momento da execução do relatório, a ferramenta irá gerar um protocolo de identificação a partir da expressão, e inserir essa informação nesta variável, com isso é possível gerar um QR Code identificando o particionamento.
É importante que a ordenação do relatório siga os campos utilizados na expressão para que o particionamento seja feito corretamente! O ideal é criar um grupo e ordenar por ele.
Caso deseje recuperar outras informações do conteúdo particionado, basta criar variáveis utilizando o prefixo:
BTH_PARTICIONAMENTO_PROPRIEDADES_
acrescido do nome da propriedade, por exemplo: BTH_PARTICIONAMENTO_PROPRIEDADES_NOME
.
O valor destas propriedades e das outras variáveis serão geradas no arquivo conteudo.json que será disponibilizado junto aos arquivos PDF que também serão particionados.
Salientamos que neste primeiro momento, quando o relatório for particionado não será possível enviá-lo para assinatura!