Desenvolvedor e Analista de Sistemas | IFPA

Mostrando postagens com marcador iReport. Mostrar todas as postagens
Mostrando postagens com marcador iReport. Mostrar todas as postagens

domingo, 24 de maio de 2015

Como passar a consulta dinamicamente para o JasperReports / iReport

com 0 Comentário
Defina um parâmetro do tipo String que receberá a consulta vinda da aplicação java:


Parâmetros do Relatório

Observe que temos dois parâmetros definidos por mim: Filtro – servirá para receber uma descrição textual do filtro que o usuário aplicou na geração do relatório e consulta – receberá a consulta a ser executada no banco de dados pelo JasperReports.
Configurar a consulta do relatório como sendo o parâmetro recebido:



Consulta do Relatório


A consulta do relatório será exatamento o parâmetro consulta. Observe o símbolo de exclamação depois da letra P. Sem ele o iReport dá erro no momento de efetuar a compilação do relatório.
Passar a consulta para o relatório através da aplicação Java:

  1. private String geraRelatorioEmPdfConsulta(String consulta, String jasper, String nomeRelatorio) {  
  2.     // Seto a variável saida como nulo  
  3.     saida = null;  
  4.   
  5.     try {  
  6.         JasperPrint print = JasperFillManager.fillReport(jasper, getMapComFiltroEConsulta(filtroAplicado, consulta), getNovaConexao());  
  7.         saida = RelatorioUtil.getDiretorioReal("/relatorios/relatorio.pdf");  
  8.         JasperExportManager.exportReportToPdfFile(print, saida);  
  9.         saida = RelatorioUtil.getContextPath() + "/relatorios/relatorio.pdf";  
  10.     } catch (Exception e) {  
  11.         addErrorMessage("Formulario""erro.geracao.relatorio", nomeRelatorio);  
  12.         e.printStackTrace();  
  13.     } finally {  
  14.         fechaConexao();  
  15.     }  
  16.   
  17.     // mostro o erro ou o relatório na janela que abre  
  18.     return "geraRelatorio";  
  19. }  
  20.   
  21. /* 
  22. * Esse método retorna o map com o filtro e a consulta que o usuário gerou. 
  23. */  
  24. public Map<String, String> getMapComFiltroEConsulta(String filtroAplicado, String consulta) {  
  25.     Map<String, String> map = new HashMap<String, String>();  
  26.   
  27.     // Se o usuário não aplicou nada no filtro, retorno nulo para o relatório  
  28.     if (filtroAplicado == null)  
  29.         filtroAplicado = "";  
  30.     else  
  31.         filtroAplicado = "Você aplicou o seguinte filtro no relatório:\n" + filtroAplicado;  
  32.   
  33.     map.put("Filtro", filtroAplicado);  
  34.     map.put("consulta", consulta);  
  35.   
  36.     return map;  

Observe, pelo código acima, que eu passo a consulta e o filtro que foram gerados para o relatório dentro de um HashMap, como o JasperReports exige. No final, o relatório com um campo do filtro fornecido ficou assim.

Relatório Gerado

O campo marcado em vermelho foi o filtro aplicado pelo usuário que eu mandei para o relatório como um parâmetro chamado Filtro e que na verdade é apenas uma descrição textual.

Obs.: cada coluna retornada pela minha consulta deve ter o mesmo nome do field no relatório. Caso isso não ocorra, haverá um erro na geração.
Mais informações »

segunda-feira, 2 de março de 2015

Abrindo o iReport-5.6.0 após instalar o java 8

com 5 Comentários
Quem utiliza o iReports Designer e atualizou o JDK para o Java 8 recentemente deve ter percebido que o programa não inicia mais. Chega a fazer o carregamento inicial mais não passa disso (Como mostra a imagem abaixo). Isso se deve ao fato que o iReports Designer não é compatível com o Java 8.
ireports-boot
Carregamento do iReports
Uma solução para resolver isso é alterar o arquivo ireport.conf que fica localizado na pasta etc (no meu caso está em C:\Program Files (x86)\Jaspersoft\iReport-5.6.0\etc) ou Arquivos de Programas se o seu Windows estiver em Português.

Abaixo você pode ver a configuração inicial do arquivo ireport.conf:
ireport.conf
Configuração Inicial do Arquivo ireport.conf
 Você deve alterar linha 11 exibida acima para apontar para o seu JDK 7 seja ele 32 ou 64 bits.  No meu caso o caminho é esse C:\Program Files\Java\jdk1.8.0_20.
ireport-jdk7
Alteração efetuada no arquivo ireport.conf
Após feita a alteração no arquivo basta salvar e executar normalmente o iReports Designer.
Mais informações »

Total de visualizações