Relatório com ireport (Resolvido)

28 respostas
M

Olá Pessoal!
Tô desenvolvendo um projeto onde é preciso que em um determinado momento gere um relatório. Acompanhei as instruções do tutorial sobre o JasperReport feito por David Buzatto (http://davidbuzatto.com.br/2010/10/09/jasperreports-trabalhando-com-relatorios-em-java-parte-1/).
Quando executo o Preview ele mostra o relatório corretamente, mas quando vou para a aplicação não aparece nada, para no comando JasperPrint print = JasperFillManager.fillReport(titulo, parametros, conexao );. E o pior é que não dar erro nenhum.

Desde já agradeço pela atenção.

28 Respostas

E

Bom dia cara,

No seu relatório existe a Aba Detail??

os campos da aba detail estão saindo NULL??

M

Oi Evandro, tudo bem?
Como eu disse, o relatório está saindo tudo certo quando clica em Preview no ireport. O problema é na aplicação, quando a classe que gera o relatório é chamada, ou seja, não está sendo visualizado o relatório.

michetti

Cara so falar que da erro na linha tal é complicado…

Posta o stacktrace e o código da aplicação onde contém dados do ireport.

M

Olha, eu fiz uma classe que chama a classe que gera o relatório (Report). Tem algumas partes do código abaixo.

public Relatorio(final String livro) {

                InputStream inputStream = getClass().getResourceAsStream("Relatorio.jasper");
                
                
                Map<String, Object> parametros = new HashMap<String, Object>();

                parametros.put("livro", livro);

                try {

                    Report.openReport("Livro", inputStream, parametros, ConnectionFactory.getConnection());                                        

                } catch (SQLException exc) {
                    JOptionPane.showMessageDialog(null, "Erro: " + exc.getMessage(), "Erro", JOptionPane.ERROR_MESSAGE);

                } catch (JRException exc) {
                    JOptionPane.showMessageDialog(null, "Erro: " + exc.getMessage(), "Erro", JOptionPane.ERROR_MESSAGE);

                }

Não está dando erro em nenhuma linha, somente não mostra o relatório preenchido como deveria quando requisitado na aplicação.

E

Cara, faz o seguinte,

vá até o Ireport na opção “Report Query” e limpe a query que existe lah.

Nos field…exclua todos .e crie manualmente todos os field do relatorio

M

Evandro, limpei a query e exclui todos os fields. Mas, de que maneira se cria os fields manualmente? É pelo XML?
Outra coisa, não é a query que vai informar quais dados estão habilitados a ser mostrados no relatório?

yfalbino

Vamos lá,

primeiro uma pergunta,
o relatório está abrindo com o Código que você postou ?

acredito que o problema não esteja nos fields, e sim nos parâmetros que estão nele.

M

O relatório abre normalmente quando clica no Preview no ireport. Mas quando vai para a aplicação não abre a janela com o relatório.

yfalbino

Entendi… quando eu começei a trabalhar com relatórios, tambem tive esse problema, pesquisei muito sobre o assunto, misturei informações de varias pesquisas, e gerei este codigo:

try {
      conexao();
} catch (Exception ex) {
      System.out.println(ex);
}
try {
      URL rel = getClass().getResource("Relatorio.jasper");

       Map<String, Object> parameters = new HashMap<>();
       parameters.put("parametro", param);

       JasperReport jasperReport = (JasperReport) JRLoader.loadObject(rel);
       JasperPrint jp = JasperFillManager.fillReport(jasperReport, parameters, cc.getConexao());
       JasperViewer jv = new JasperViewer(jp, false);
       jv.setTitle("Relatório");
       ImageIcon icone = new ImageIcon(getClass().getResource("Icone.png"));
       jv.setIconImage(icone.getImage());
       jv.setDefaultCloseOperation(JasperViewer.DISPOSE_ON_CLOSE);
       jv.setVisible(true);
} catch (Exception ex) {
       System.out.println(ex);
}

pra mim este código funcionou,
espero que te ajude também.

M

Não funcionou cara.

yfalbino

gera algum erro ?
ou simplesmente não abre ?

M

O pior é que não gera nenhum erro. Só não abre.

M

O problema está nessa linha de código:

JasperPrint jp = JasperFillManager.fillReport(jasperReport, parameters, ConnectionFactory.getConnection());

Tanto no código que você me enviou, tanto no meu.

yfalbino

quais são os .jar que você usa para abrir o relatório ?

M

Os que eu uso são:
JasperReports/jasperreports-4.0.2.jar
JasperReports/commons-collections-3.1.jar
JasperReports/commons-logging.jar
JasperReports/commons-javaflow-20060411.jar
hibernate-support/antlr-2.7.6.jar
hibernate-support/asm.jar
hibernate-support/asm-attrs.jar
hibernate-support/cglib-2.1.3.jar
hibernate-support/commons-collections-2.1.1.jar
hibernate-support/commons-logging-1.1.jar
hibernate-support/dom4j-1.6.1.jar
hibernate-support/ehcache-1.2.3.jar
hibernate-support/jdbc2_0-stdext.jar
hibernate-support/jta.jar
hibernate-support/hibernate3.jar
hibernate-support/hibernate-tools.jar
hibernate-support/hibernate-annotations.jar
hibernate-support/hibernate-commons-annotations.jar
hibernate-support/hibernate-entitymanager.jar
hibernate-support/javassist.jar
hibernate-support/ejb3-persistence.jar

yfalbino

Além desses, eu uso este também:

groovy-all-1.7.5.jar

será que não possa ser isso a causa ?

acrescente este jar no seu projeto, pode ser que resolva.

M

acrescentei e nada!!!
Cara e o pior é que eu fiz outro projeto e deu tudo certo. E esse, insiste em dar errado!
Tá difícil!!!

E

Cara,

ja tive esse problema, quando na banda detalhe, nao tinha nenhuma informação ou nenhum field, tente incluir um field na banda detalhe e preenche seu mapa para aparecer na banda detalhe.

abc

M

Os fields já estão na banda detail.
Quando não tem nenhuma informação no preview não aparece nenhum documento.
No preview dá certo, só que na aplicação não abre o relatório pronto.

E

Entao, mas tentou colocar alguma informacao no MAP, para fazer um teste se o relatorio irá aparecer ???

M

sim! Eu fiz colocando o código:

Map<String, Object> parameters = new HashMap<String, Object>(); parameters.put("livro", "01/02");
E depois fiz sem parâmetro, mas ainda continua a mesma coisa.

yfalbino

É estranho ter funcionado em outro projeto, e neste estar dando erro…

você esta usando qual ferramenta para desenvolvimento ?

M

É o nertbeans 7.0.1.

M

Rapaz, consegui agora!!!
O problema é nos .jars que tava faltando.
Gostaria que algum de vocês colocassem os .jars necessários, pra não ficar com muitos .jars que não são úteis para o projeto.
Vlw todos vocês pela atenção.
Abraços a todos.

yfalbino

Tente limpar o projeto, pois as vezes da alguns erros no netbeans que ao limpar o projeto eles se resolvem.

yfalbino

eu uso estes:

commons-collections-3.2.1.jar
commons-digester-2.1.jar
commons-logging-1.1.jar
groovy-all-1.7.5.jar
iText-2.1.7.jar
jasperreports-4.7.1.jar

com estes, funciona perfeitamente, abre qualquer relatório, e é possível exportar ele como pdf.

boa sorte com o projeto, abraços

M

Vlw!!!
Abraços

E

coloca o topico como resolvido.

abc

Criado 30 de janeiro de 2014
Ultima resposta 1 de fev. de 2014
Respostas 28
Participantes 4