* Visite o ALJUG - http://aljug.blogspot.com - Noticias sobre a comunidade java alagoana e do mundo * Visite o blog Mundo Gamificado www.mundogamificado.com.br - E vamos mudar o mundo! *

sexta-feira, 20 de fevereiro de 2015

Valor Total no final da página JasperReport - Parte I

Olá pessoal, vou neste post passar mais uma dica de relatório que por muito tempo fiquei procurando e acabei aprendendo sozinho.
Faz tempo que queria escrever este post, mas só agora tive um tempo.

Como colocar o valor total na última pagina em um relatório criado no Ireport/JasperReport.

Nesse primeiro post vou explicar com uma base vinda de um arquivo XML.


Primeiro como atribuir o aquivo XML para ser uma base de dados, fácil, veja só:

1. Crie um novo relatório, com o modelo da sua preferência;
2. Quando chegar na etapa DataSource, em DataAdapter, como na figura abaixo, clique em [new];

Figura 1.Imagem da aba Data Source

3. Escolha a opção XML document;
4.Denomine um nome para o adaptador, procure o arquivo XML e marque a opção Use the report Xpath expression when filling the report.
5. Caso queria definir um padrão específico de data, como padrão brasileiro dd/MM/yyyy, é só digitar no campo Date pattern e também um padrão específico de numero, é só digitar no campo Number pattern, caso queria escolher um já predefinido é só apertar em create e escolher, em ambos os campos;
6. Aperte em Finish;
7. Aparecerá outra janela, desta vez, com as ramificações do arquivo XML, que fica ao seu critério, caso você deseja escolher a ramificação principal, ou as filhas, depois aperte em Next;
8. Escolha os campos que deseja utilizar no relatório;
9. Escolha o campo que deseja agrupar, aperte em next e depois aparecerá uma mensagem de Parabéns o processo terminou.

Pronto agora que começa a brincadeira de criarmos a variável que vai ser exibida na última pagina do relatório, para isso vamos criar a banda Last Page Footer; Veja na figura abaixo a banda:
Figura 2. Aba OutLine

Veja que está cinza, em cima dela click com o botão direito e escolha a opção Add Band, você vai notar que agora não está mais cinza, estará "vivo".
Agora nesta mesma aba tem um nó desta árvore que possui o nome de Variables clique com o botão direito do mouse e escolha a opção Create Variable, note que no lado esquerdo apareceu uma nova aba, como na figura abaixo:

Figura 3. Aba Variable

Uma coisa que chamo atenção é que, pelo menos neste arquivo xml que escolhi, todos os campos estão em String, então é necessário mudar para Double, pois aqui estou utilizando valores monetários, e para fazer isso no campo Value Class Name eu mudo para java.lang.Double. Defino um nome para a variável como ValorTotal, no campo Calculation coloco a função SUM e no campo expressão, coloco o campo que representa o valor, neste caso o campo Receita, que ficaria deste modo:


new Double($F{Receita})

Com isso vai transformar meu campo que é uma String, em uma variável Double.

Outra dica é no campo Increment Type é outro segredo da soma, do jeito que está agora [None] quer dizer que não vai haver nenhuma intervenção e será somado os valores de todos sem interrupção, caso você queira soma por página é só colocar a opção Page, se você agrupou e quer a soma do agrupamento então vai escolher a opção [Group] NomeDoCampo e assim por diante. Como eu quero todos os valores então eu vou deixar None.

Agora na aba OutLine, Figura 2, Veja que no nó Variable, apareceu o nome da variável que você criou, arraste até a aba Last Page Footer, pronto com isso você garante a soma no final da última pagina.

Outra Dica: Lembre-se de colocar o padrão, neste caso monetário, no campo, para isso é só selecionar o campo ir na opção Text Field e no campo pattern clicar em  [...] e escolher a opção mais apropriada.


Espero ter ajudado. Até qualquer dia, qualquer hora!
No próximo post a gente fala de como utilizar em arquivos que são referenciados a um banco de dados.