Java Reporting com JasperReports e iReport Open Source – Parte II

JasperReports é uma solução open source poderosa e flexível para geração de relatórios. O visual designer iReport, permite tirar total vantagem do poder do JasperReports sem necessidade de conhecimento profundo do formato XML nativo JasperReports

                                                                                                       John Ferguson Smart

Adicionando Título de Relatório e Data 

Então agora podemos gerar um relatório com dados reais. Adicionemos agora um título na barra de título. Este título só será exibido no começo do relatório. Suponhamos que o título seja "Employees/service" seguido pela data do dia. Para inserir o texto "Employees/Service", apenas colocamos uma zona de texto estática na seção title (usar "Edit/Insert Element/Static Text" ou o ícone "T"). 

 

Agora, suponhamos que desejamos também exibir a data atual. Inserimos um novo campo texto ("Edit/Insert Element/Text Field"). Fazemos duplo clique no objeto campo texto (text field object) e a seguir, na aba "TextField" da janela (ver Figura 8).  

 

fig8javarepart22.JPG  

Figura 8. Adicionar um Campo Data

 

Neste momento temos uma idéia do poder de JasperReports: sendo o JasperReport compilado uma classe Java, podemos usar qualquer expressão Java para auxiliar na construção do relatório, assim como também campos JasperReports, variáveis e parâmetros. Por exemplo, a expressão "TextField" é uma expressão Java e será interpretada como tal.  

Para exibir a data atual, criamos apenas uma novo objeto Date() que será automaticamente instanciado como a data e hora atuais. A seguir, informamos ao JasperReports o tipo de expressão a ser usado (na classe Textfield Expression: java.util.Date), quando dever[a ser avaliada a expressão (Evaluation time – momento da Avaliação) e qual formato usar (“Pattern field” - "campo Formato").  

 

Finalizando, adicionamos uma borda transparente ao redor do título ("Edit/Insert Element/Rounded Rectangle") e uma imagem ("Edit/Insert Element/Image") e então personalizamos as cores e fontes (ver exemplo na Figura 9).  

  

fig9javarepart2.JPG

Figura 9. O Relatório com uma Barra de Título 
 

Calculando Totais

Vamos supor agora, que desejamos exibir o custo total de todos os salários dos empregados. Para calcular estes tipos de valores com o JasperReports, precisamos usar variáveis de relatório. Usamos variáveis de relatório para armazenar e calcular qualquer valor temporário necessário para o relatório, tais como totais, subtotais, médias, etc. Vejamos alguns detalhes importantes a respeito de variáveis de relatório:  

 

·        O tipo de classe variável (variable class type) tem que ser compatível com o tipo de campo (field type), para que os cálculos funcionem corretamente. Portanto, devemos configurá-lo como Doublé;  

·        O tipo de cálculo informa ao JasperReports como calcular a variável. Neste caso, configuramos como 'Sum', para achar a soma total de todos os valores do campo emp_salary;

·        A expressão variável representa o valor a ser avaliado no cálculo. Esta expressão pode ter vários formatos:

o       Uma expressão Java (por exemplo, New Date());

o       $F para campos (por exemplo, "$F{emp_salary}");

o       $V para variáveis (por exemplo, "$V{service_employee_count}");

o       $P para parâmetros de relatório;

o       $R para recursos localizados (localized resources).

 

Para exibir as variáveis de relatório, abrimos o menu "View/Report Variables". Precisamos adicionar uma nova variável para localizar o salário do empregado e calcular o valor total. Chamemos esta variável de total_salaries (ver Figura 10). Configuramos o tipo de classe da variável (variable class type) como Double e o tipo de cálculo (calculation type) como Sum.   

 

fig10javarepart2.JPG  

Figura 10. Adicionando uma Variável Nova

 

Agora, precisamos avaliar o campo 'emp_salary', portanto informamos "$F{emp_salary}" como a expressão variávelv (variable expression).

 

A seguir, arrastamos esta variável para a seção Column Footer e adicionamos um texto de título apropriado (ver o relatório gerado na Figura 11). Seguindo os mesmos passos, podemos adicionar facilmente outros tipos de variáveis: médias, contas, valores mínimos e máximos, etc.  

 

fig11javarepart2.JPG  

Figura 11. Calculando os Salários Totais

 

Leia todos artigos da série