Relatorios ireport 4.5

13 respostas
trudes

Pessoal estou desenvolvendo um sisteminha com netbeans 7.1 e ireport 4.5.

está dando um erro java.lang.NullPointerException.

Pesquisei sobre o erro e percebi que a falha é de diretório, porem não consegui resolver.

vou postar meus códigos aki. gradeço se puderem me ajudar.

Este é o método que está na classe GerenciadorRelatórios

public void geraRelatorio() throws JRException, Exception {
this.setArquivoJasper(System.getProperty("user.dir")+"\\relatorios\\"+this.getArquivoJasper());//qual a url que eu coloco aqui? 
//minha pasta de relatórios está em C:\Users\Sandro Trudes\relatorios
        this.setArquivoJrprint(System.getProperty("user.dir")+"\\relatorios\\"+this.getArquivoJrprint());
        
        Connection con = getConnection( );
        
        Map parameters = new HashMap();
        
        JasperFillManager.fillReportToFile( this.getArquivoJasper(),parameters, con);
        JasperExportManager.exportReportToPdfFile(this.getArquivoJrprint());
        JasperViewer.viewReport(this.getArquivoJrprint(), false,false);
        
}

Este é o Código que está no action do botão num form. Supostamente esse botão iria chamar o relatório mais o erro não deixa:

GerenciadorRelatorios geraRelat = new GerenciadorRelatorios();
           
       geraRelat.setArquivoJasper("vendas_teste.jasper");
       geraRelat.setArquivoJrprint("vendas_teste.jrprint");
       
            try {
                geraRelat.geraRelatorio();
            } catch (JRException ex) {
                //JOptionPane.showMessageDialog(null, "Erro1 Reltório "+ex);
                ex.printStackTrace();
            } catch (Exception ex) {
                //JOptionPane.showMessageDialog(null, "Erro2 Reltório "+ex);
                ex.printStackTrace();
            }

Aguem ajuda ae??

13 Respostas

drsmachado

Em que linha acusa o erro?

trudes

Como faço para saber?

drsmachado

No console da IDE que você utiliza é apresentado um stacktrace do erro.

trudes

É que o erro tá caindo no segundo catch, então não parece no console. aparece só o JoptionPane

drsmachado

É que o erro tá caindo no segundo catch, então não parece no console. aparece só o JoptionPane
Mude para System.out.println, copie e cole o erro aqui para que possamos ajudar. Senão, não tem como adivinhar.

trudes

É que o erro tá caindo no segundo catch, então não parece no console. aparece só o JoptionPane
Mude para System.out.println, copie e cole o erro aqui para que possamos ajudar. Senão, não tem como adivinhar.

A unica coisa que imprime é o erro msm.

drsmachado

É que o erro tá caindo no segundo catch, então não parece no console. aparece só o JoptionPane
Mude para System.out.println, copie e cole o erro aqui para que possamos ajudar. Senão, não tem como adivinhar.

A unica coisa que imprime é o erro msm.
[xiita mode:on]
Então não tem jeito.
Deleta tudo e começa do zero.
[xiita mode:off]

Camarada NullPointerException ocorre por que você está programando errado.
Afinal, é responsabilidade do programador impedir que esse tipo de coisa ocorra.
Por que?
Oras, o programador é quem define quando e onde um objeto será instanciado. Se ele não faz isso, ocorre a exception mais famosa do java (é um tipo de tela azul do java).

Portanto, se quer ajuda, altere o código para escrever no console a mensagem de erro, senão, boa sorte aí, se virando sozinho.

T

kkkkkkkk

@drsmachado, é engraçado essa sua tag [xiita mode] kkkkkkkkk

@trudes,

Como o machado explicou, não tem como ajudar sem saber qual erro é.
Para fazer com que o erro apareça no console, altere o Catch da exceção para ex.printStackTrace().

Altere isso:
GerenciadorRelatorios geraRelat = new GerenciadorRelatorios();  
             
          geraRelat.setArquivoJasper("C:\\Users\\Sandro Trudes\\Documents\\NetBeansProjects\\TradeManager\\src\\Relatorios\\vendas_teste.jasper");  
          geraRelat.setArquivoJrprint("C:\\Users\\Sandro Trudes\\Documents\\NetBeansProjects\\TradeManager\\src\\Relatorios\\vendas_teste.jrprint");  
             try {  
                 geraRelat.geraRelatorio();  
             } catch (JRException ex) {  
                 JOptionPane.showMessageDialog(null, "Erro1 Reltório "+ex);  
             } catch (Exception ex) {  
                 JOptionPane.showMessageDialog(null, "Erro2 Reltório "+ex);  
             }

para:

GerenciadorRelatorios geraRelat = new GerenciadorRelatorios();  
              
          geraRelat.setArquivoJasper("C:\\Users\\Sandro Trudes\\Documents\\NetBeansProjects\\TradeManager\\src\\Relatorios\\vendas_teste.jasper");  
          geraRelat.setArquivoJrprint("C:\\Users\\Sandro Trudes\\Documents\\NetBeansProjects\\TradeManager\\src\\Relatorios\\vendas_teste.jrprint");  
             try {  
                 geraRelat.geraRelatorio();  
             } catch (JRException ex) {  
                 JOptionPane.showMessageDialog(null, "Erro1 Reltório "+ex);  
             } catch (Exception ex) {  
                 ex.printStackTrace();
             }
trudes
TreTaA:
kkkkkkkk

@drsmachado, é engraçado essa sua tag [xiita mode] kkkkkkkkk

@trudes,

Como o machado explicou, não tem como ajudar sem saber qual erro é.
Para fazer com que o erro apareça no console, altere o Catch da exceção para ex.printStackTrace().

Altere isso:
GerenciadorRelatorios geraRelat = new GerenciadorRelatorios();  
             
          geraRelat.setArquivoJasper("C:\\Users\\Sandro Trudes\\Documents\\NetBeansProjects\\TradeManager\\src\\Relatorios\\vendas_teste.jasper");  
          geraRelat.setArquivoJrprint("C:\\Users\\Sandro Trudes\\Documents\\NetBeansProjects\\TradeManager\\src\\Relatorios\\vendas_teste.jrprint");  
             try {  
                 geraRelat.geraRelatorio();  
             } catch (JRException ex) {  
                 JOptionPane.showMessageDialog(null, "Erro1 Reltório "+ex);  
             } catch (Exception ex) {  
                 JOptionPane.showMessageDialog(null, "Erro2 Reltório "+ex);  
             }

para:

GerenciadorRelatorios geraRelat = new GerenciadorRelatorios();  
              
          geraRelat.setArquivoJasper("C:\\Users\\Sandro Trudes\\Documents\\NetBeansProjects\\TradeManager\\src\\Relatorios\\vendas_teste.jasper");  
          geraRelat.setArquivoJrprint("C:\\Users\\Sandro Trudes\\Documents\\NetBeansProjects\\TradeManager\\src\\Relatorios\\vendas_teste.jrprint");  
             try {  
                 geraRelat.geraRelatorio();  
             } catch (JRException ex) {  
                 JOptionPane.showMessageDialog(null, "Erro1 Reltório "+ex);  
             } catch (Exception ex) {  
                 ex.printStackTrace();
             }

Galera eu fiz uma modificação aqui.

Não estou usando mais o plugin do ireport acoplado com o netbeans, uso agora o IDE do ireport

Eu fiz algumas modificações no código la em cima e o erro está assim:

java.lang.NullPointerException
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:63)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:188)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:94)

at Relatorios.GerenciadorRelatorios.geraRelatorio(GerenciadorRelatorios.java:54)

at Relatorios.Relatorio_Venda_frm.jButton1ActionPerformed(Relatorio_Venda_frm.java:120)
at Relatorios.Relatorio_Venda_frm.access$000(Relatorio_Venda_frm.java:25)
at Relatorios.Relatorio_Venda_frm$1.actionPerformed(Relatorio_Venda_frm.java:63)

Não coloquei todas as linhas por ser muito grande.
A linha separada ali em cima é referente a linha 10 do método geraRelatorio

T

Agora que vi sua referência ao erro.

Erro nesta linha?

JasperFillManager.fillReportToFile( this.getArquivoJasper(),parameters, con);

trudes

TreTaA:
Agora que vi sua referência ao erro.

Erro nesta linha?

JasperFillManager.fillReportToFile( this.getArquivoJasper(),parameters, con);

Isso, o erro aponta para ela!!

pode me ajudar?

trudes

Ninguem pra da uma força ae??

T

Quais libs você está usando?

Em qual momento de seu código você utiliza um layout do jasper?

Abs

Criado 8 de maio de 2012
Ultima resposta 10 de mai. de 2012
Respostas 13
Participantes 3