Ajuda com relatório!

12 respostas
andre_bento

Salve galera!!
To precisando muito da ajuda de vcs aqui em um relatório que estou fazendo pessoal...
Estou tendo um problema de nullPointerException...mas até agora n~]ao descobri o por quê!!!
Segue o código:

package Controle;

import DAO.DAOFactory;
import DAO.DAOProduto;
import Visao.TelaRelatorio;
import java.util.*;
import java.util.Vector;
import javax.swing.JOptionPane;
import modelo.Cliente;
import modelo.Produto;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.view.JasperViewer;

/**
 *
 * @author André
 */
public class ControleRelatorio {

    private TelaRelatorio tela = new TelaRelatorio();
    DAOFactory df=DAOFactory.getDAOFactory(DAOFactory.POSTGRES);
    DAOProduto dao = df.getDAOProduto();
    Vector <Produto> vetor;
    
   
    public void gerar(){
        try{
         
            
             vetor = dao.consultarTodos();
             Map parametros = new HashMap();
             JOptionPane.showMessageDialog(null,vetor.get(0).getXProNome());
             JRBeanCollectionDataSource jr = new JRBeanCollectionDataSource(vetor);
/*Está dando erro na linha abaixo.. ele dá nullPointerException... Mas não consigo descobrir o por quê pessoal!!*/             
JasperFillManager.fillReportToFile("C:/Documents and Settings/André/Meus documentos/NetBeansProjects/PrimeiraAulaDeJava_NetBeans/build/classes/teste.jasper",parametros,jr);
             JasperPrint impressao = JasperFillManager.fillReport("C:/Documents and Settings/André/Meus documentos/NetBeansProjects/PrimeiraAulaDeJava_NetBeans/build/classes/teste.jasper",parametros,jr );
             JasperExportManager.exportReportToPdfFile("C:/Documents and Settings/André/Meus documentos/NetBeansProjects/PrimeiraAulaDeJava_NetBeans/build/classes/teste.jrprint");
             //exibe o resultado
             JasperViewer.viewReport("C:/Documents and Settings/André/Meus documentos/NetBeansProjects/PrimeiraAulaDeJava_NetBeans/build/classes/teste.jrprint",false,false);
        }
            
       
        catch (Exception e){
                JOptionPane.showMessageDialog(null, "ERRO: "+e);
        }
    }
    

}

Po galera.. .eu comentei a linha que está gerando o erro.. .ae meu relatório não é exibido..
Estou usando o IReport para gerar os relatórios e o netBeans para programar!...
Minha conexão é feita através do javaBeans...meu vector que está enchendo o JRCollection está cheio com as informações dos produtos... mas na hora de dar o reportToFile ele dá nullPointerException!!!
Me ajuda ae pessoalllllllll!!!

Abraço a todos

12 Respostas

andre_bento

Galera…
Não estou conseguindo descobrir esse maldito erro…
Ele está com todos os jars na pasta…
Tá tudo certo… ele tá achando o arquivo jrxml só que tá dando nullPointerException!!!
Me ajuuuuuuuuuuuuda

andre_bento

Me ajuda ae galeraaaaaaaaa!!!
Não consigo descobrir esse erro!!!

J

parametros, jr e vetor estão preenchidos??

andre_bento

Olá amigo!!!
Obrigado pela ajuda primeiramente!!!
O meu vector está sendo preenchido pela meu método de consulta que está na DAO…
Tanto que eu mandei um JOptionPane com um dado do vetor e ele exibiu corretamente…
O jr está sendo criado um pouco acima!!
Me desculpe se tem algum erro primário… sou iniciante nesse negócio de relatório!!hehehhehe
Abraçossss

lina

Oi,

Não tenho as bibliotecas para importar, por isso é dificil ajudar

Provavelmente, não encontrou o arquivo teste.jasper

(Como não tenho as bibliotecas, não sei o que o fillReportToFile faz em código. Sendo assim existem 3 parâmetros e 3 possibilidades de NullPointer)

Faz o seguinte, divida em 3 linhas o código abaixo… quem sabe o compilador mostrará realmente onde
ocorrerá o NullPointer:

JasperFillManager.fillReportToFile ( "C:/Documents and Settings/André/Meus documentos/NetBeansProjects/PrimeiraAulaDeJava_NetBeans/build/classes/teste.jasper", parametros, jr );

Tem certeza de que o caminho deve ser coloca C:/Documents… e não C:\Documents ?

Você pode colocar o arquivo teste.jasper na pasta corrente! e utilizar o caminho assim.:

JasperFillManager.fillReportToFile ( ".jasper", parametros, jr );

Tchauzin!

andre_bento

Olá Lina!!
Muito obrigado pela ajuda!!!
Bom eu uso este código para gerar o relatório que peguei na net… caso vc tenha ae um outro código melhor para gerar relatórios please me passa por e-mail… [email removido]

Bem… eu tentei colocar o caminho com o C:\ só que ele dá erro na String dizendo que não aceita o caractere \ e somente o /
Vou tentar fazer esse teste com as 3 linhas que vc me falou…

Meu relatório está na mesma pasto do projeto…Posso utilizar então aquele método que vc falou acima???

SE tiver um código melhor que esse para geração de relatórios,por favor me mande por e-mail!
Abraçoss!!

andre_bento

Olá Lina e todo o pessoal do GUJ!!!
Bom eu fiz o que vc falou lina… dividi a linha do fillReportToFile em 3 linhas e ele deu nullPointerException na linha onde descrevo o caminho do arquivo mesmo…# JasperFillManager.fillReportToFile ( "C:/Documents and Settings/André/Meus documentos/NetBeansProjects/PrimeiraAulaDeJava_NetBeans/build/classes/teste.jasper",

Mas como posso fazer para parar de dar esse erro???
Quando tentei colocar apenas o nome do arquivo…por exemplo teste.jasper ele deu fileNotFoundException
Alguém tem outro código que eu possa usar para gerar relatório pessoal???
Por favor… me ajudem nessa dae galera!!!
Abraçosssss

lina

Oi,

“Teoricamente” se você colocar o arquivo teste.jasper no seu diretório corrente (onde está rodando o jar ou a aplicação em qualquer IDE) e colocar no caminho “.jasper” ele irá buscar todos os arquivos .jasper.

Já sabemos o que está errado, agora é só corrigir o caminho!

Tchauzin!

andre_bento

Olá Lina.

Valeu mesmo pela ajuda!!
Eu estou tentando colocar no mesmo caminho… mas o erro continua… por algum motivo na hora de pegar o arquivo .jasper ele gera o nullPointer
Agora o por quê mesmo eu não sei… Pois está no mesmo path…
Não sei mais o que fazer com esse maldito!!!
E para fazer um teste mesmo… o relatório nem tem conexão… só um texto estático mesmo!!!

Acho que não pode ser nenhuma biblioteca né??? Por que senão daria outro tipo de erro…
Po…brigadão pela ajuda!!
Abraçosssss

andre_bento

Lina…
Só uma dúvida…
SE ele não tivesse achando o arquivo… .ele teria que gerar o erro nullPointerException ou o fileNotFoundException???

lina

Oi,

Boa pergunta!
então… quando ele não encontra o arquivo irá mostrar FileNotFound.

Pensando melhor, ele até pode ter encontrado o arquivo! porém o código de dentro
do método fillReportToFile lançou essa exceção.

Você poderia entrar dentro do fonte e verificar o que esse método fillReportToFile faz e onde
ele poderia lancar essa exceção!

Tchauzin!

andre_bento

Olá Lina!!!

Po… Eu tava tentando futucar esse método fillReportToFile mas e ele recebe como parâmetros uma string com o path do arquivo em primeiro lugar…
Não consegui entrar no método propriamente dito …com ofaço isso???
Po…brigadão pela ajuda!!!
Só mais uma questão… pode ser que esse erro seja gerado sei lá… por um mal funcionamentoi do IReport e por isso ele pode ter gerado o .jasper de maneira incorreta??

Criado 12 de agosto de 2009
Ultima resposta 18 de ago. de 2009
Respostas 12
Participantes 3