NullPointerException ou FileNotFoundException ao executar relatórios com Jasper Reports
21/fevereiro/2010 - Java, Tutoriais
Olá!
Muitas pessoas tem dificuldade em utilizar os relatórios feitos no iReport em suas aplicações, especialmente as webs, por não saberem onde colocar os arquivos .jasper em sua aplicação para que o Servlet ou o ManagedBean consiga lê-los. Então é bem comum ver erros como esses:
net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException
java.lang.NullPointerException at net.sf.jasperreports.engine.JRPropertiesMap.readObject(JRPropertiesMap.java:185)
Recomendo colocar os arquivos jasper e/ou jrxml juntos as classes Java e não nos diretórios abaixo de Páginas Web no Netbeans ou Web Content no Eclipse, pois eles podem fica expostos. Não é desejado que os usuários possam baixa os arquivos jasper e/ou jrxml e ficarem fuçando neles.
A figura abaixo mostra o local correto para copiar o arquivo jasper e/ou jrxml no Netbeans. No Eclipse a lógica é a mesma, no lugar de Pacotes de código fontes coloque em Java Resorces: src.
Note que o arquivo jasper e/ou jrxml está no mesmo pacote do GerarRelatorioServlet.java e para obter o InputStream no Servlet eufaço assim getResourceAsStream(“Rel_Precipitacoes.jasper”).
Para ser mais organizado é possível colocar em outro pacote, nesse caso é preciso ajustar o caminho ao jasper com relação ao local do GerarRelatorioServlet.java. No exemplo abaixo o jasper ficou no pacote br.com.furutani.relatorios logo obtemos o InputStream passando esse caminho “../relatorios/Rel_Precipitacoes.jasper” no GerarRelatorioServlet.
O projeto do netbeans com os fontes e bibliotecas do JasperReports podem ser baixados no link: Projeto Jasper Projeto Jasper Netbeans 6.8
Espero ter ajudado.
Até mais,
Roberto
JasperReports em Flash
01/fevereiro/2010 - Java, Tutoriais
Olá!
Faz muito tempo que não publico nada no blog, mas ele não está abandonado.
Neste post vou deixar mais uma dica sobre JasperReports e Flas, na verdade é só um exemplo de que é possivel usar o mesmo .jasper para criar relatórios em PDF e em Flash também.
Neste exemplo eu usei um outro exemplo que acompanha o JasperReports Flash Viewer 3.0.0.
» Clique aqui para ver o exemplo funcionando.
» Download dos fontes: Relatório em JasperReports e Flash Exemplo de relatório em JasperReports e Flash
Outra opção para exibir relatórios em flash é utilizar o xViewer mostrado neste post Exibindo relatórios gerados pelo Jasper Report em Flex. O exemplo precisa do Adobe Flex e do ant para compilar, mas voce pode importar os fontes para sua IDE favorita sem problemas é só adicionar os jars no classpath.
Até mais,
Roberto
Exibindo relatórios gerados pelo Jasper Report em Flex
15/julho/2009 - Java, Tutoriais
Olá
Este post é para deixar registrado um tutorial relacionado ao JasperReports feito por Roberto Lourenço de Oliveira Júnior da UFLA.
De acordo com ele, o tutorial ensina como mostrar os relatórios em aplicativos feitos em Adobe Flex.
JasperReportFlex.pdfNeste artigo, mostrarei como integrar os relatórios gerados pelo Jasper Report com uma aplicação Flex,
utilizando para isso o xViewer, que nada mais é que um Flex Viewer para Jasper Report.
Até mais,
Roberto
Introdução a relatórios crosstab com iReport/JasperReports
15/julho/2009 - Java, Tutoriais
Olá!
Escrevi mais um tutorial sobre iReport, dessa vez explorei os relatórios crosstab ou relatórios de tabela cruzada.
Introdução a relatórios Crosstab com iReport/JasperReports
No exemplo foi usado uma fonte de dados ODBC, mas nada impede usar uma Collection de beans para alimentar o relatório.
Espero ter ajudado.
Abaixo mais links sobre como fazer relatórios em Java com iReport.
- http://www.furutani.com.br/2009/02/usando-o-jrbeancollectiondatasource/
- http://www.furutani.com.br/2009/02/tutorial-de-jasperreports-usando-arraylist-de-vo/
- http://www.furutani.com.br/2009/07/gerando-relatorios-com-jasperreports-e-ireports-no-netbeans/
Até mais,
Roberto
Dicas de iReport
09/julho/2009 - Java
Olá!
Abaixo seis dicas para iReport/JasperReport. Espero que seja úteis para alguém. ![]()
- Não exibir null
Para que o campo texto no relatório não fique exibindo null basta marcar a opção Branco quando nulo na propriedade dos campos texto do seu relatório.
- Alterar as propriedades do PDF
No menu opções > opções de export é possível alterar várias informações que vão embutidas no PDF, como o título, autor, assunto, palavras-chave e aplicativo, no Adobe Reader pressione Ctrl + D para ver as propriedades do documento.
- Colocar senha no PDF
Para colocar senha no relatório é muito fácil, no menu opções > opções de export selecione Is Encripted e preencha no campo using default(User password) e Owner password com a senha para abrir o PDF.
- Expressões
O iReport permite criar expressões bastante sofisticadas, são blocos de código java que são executadas dentro do relatório para mais diversos fins. Geralmente usados determinar se mostra ou não um campo, fazer um cálculo para ser exibido ou simplismente concaternar strings.
Exemplo: Para dar um substring é só usar $P{parametro}.substring( 0, 2 );
Para concatenar com um espaço no meio use $P{parametro} + ” ” + $P{parametro}
Para saber se o parâmetro ou campo é diferente de null, $P{parametro} != null.
Dentro dessas expressões é possível usar os parâmetros, variáveis e os campos. - Internacionalização
É fácil fazer relatório internacionalizáveis no iReport. No menu editar, clique em propriedades do relatório, na aba i18n informe no campo nome da base do pacote do recurso o prefixo dos arquivos properties com as mensagens. Por exemplo se você tem os arquivos Mensagem_pt_BR.properties, Mensagem_en_US.properties e Mensagem.properties informe nesse campo apenas Mensagem
Se os arquivos estiverem dentro de pacotes você deve informar o caminho completo, exemplo br.com.furutani.resources.Mensagem
Existe a opção de informar o arquivo de resource bundle via paramêtros, desse forma é mais dinâmica pois você pode montar o resource bundle com uma tabela de banco de dados por exemplo, para isso basta que no HashMap de parâmetros coloque a chave REPORT_RESOURCE_BUNDLE e no valor um objeto do tipo java.util.ResourceBundle.
Para mostrar um texto do resource bundle no relatório, adicione um campo texto e coloque na propriedade expressão $R{chave}. Exemplo: $R{msg.hoje} - Protegendo o documento PDF
É possível desabilitar o botão Imprimir, o Ctrl+C no documento, permitir adicionar comentários e etc. no menu opções > opções de export selecione a propriedade Is Encripted e no campo Permissions informe 16 para permitir copiar, 2052 para permitir imprimir, 512 para permitir leitores de telas, 0 (zero) para bloquear tudo. Para permitir copiar e imprimir informe 2068.
Esses números são baseados nas constantes ALLOW_* encontradas na classe com.lowagie.text.pdf.PdfWriter para saber o número a informar nesse campo com um conjunto de permissões uso o operador |Exemplo: System.out.println(PdfWriter.AllowCopy | PdfWriter.AllowPrinting);

