Relatorio com Jasper[RESOLVIDO]

2 respostas
aix

Pessoal estou tentando criar um relatorio apartir de uma classe java, mas estou tomando null pointer

Exception in thread "main" java.lang.NullPointerException
        at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2266)
        at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2279)

fui verificar e vi que minha variavel realJasper esta nula, é a forma como estou trazendo o arquivo xml ? fiz turo no ireport + netbeans la funciona blz, mas agora não consigo montar a classe que gera o pdf, podem me ajudar ?

public class GeraRel {

    public void GeraRelatorio() throws JRException {

        //caminho do jasper
        String jasper = "K:\javaApplication\nfe\src\nfe\relatorios\danfe.jasper";
        String xmlFileName = "K:\javaApplication\nfe\src\nfe\relatorios\NF-e.xml";

        // Stream com o .jasper
        InputStream relJasper = getClass().getResourceAsStream(jasper);

        //data source que carrega um xml
        JRXmlDataSource jr = new JRXmlDataSource(xmlFileName);

        /* HashMap de parâmetros utilizados no relatório. Sempre instanciados */
        Map parameters = new HashMap();

        JasperPrint impressao = JasperManager.fillReport(relJasper, parameters, jr );

//        impressao = JasperFillManager.fillReport(relJasper, parameters, jr);

            JasperViewer viewer = new JasperViewer(impressao, true);

            viewer.setVisible(true);
       
    }

    public static void main(String args[]) throws JRException {

        new GeraRel().GeraRelatorio();
    }
resolvi pessoal vou postar aqui como ficaou funcionando, abraços e obrigado mesmo ninguem tendo respondido

public class JasperTeste {

    public static void main(String args[]) throws JRException {


    String jasper = "K:\javaApplication\nfe\src\nfe\relatorios\danfe.jasper";
    String xmlFileName = "K:\javaApplication\nfe\src\nfe\relatorios\NF-e.xml";
    String output = "K:\javaApplication\nfe\src\nfe\relatorios\danfe.pdf";

    HashMap hm = new HashMap();

    JRXmlDataSource jrxds = new JRXmlDataSource(xmlFileName);

        try {

            JasperPrint print = JasperFillManager.fillReport(jasper, hm, jrxds);

            JRExporter exporter = new JRPdfExporter();

            exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, output);
            exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);

            exporter.exportReport();
            System.out.println("criado arquivo" + output);

        } catch (JRException e) {
            e.printStackTrace();
            System.exit(1);
        } catch (Exception e) {
            e.printStackTrace();
        }
        

    }


}

2 Respostas

A
String jasper = "K:\javaApplication\nfe\src\nfe\relatorios\danfe.jasper";  
Map parameters = new HashMap(); 
JasperFillManager rel = JasperFillManager.fillReport(jasper, parameters, jr );
JasperViewer.viewReport(rel,false);

não sei com que ferramenta voce esta criando o seu relatorio, eu uso o irreport e la ficaria assim não sei se muda de uma ferramenta para outra mas vale a pena tentar

Fernando_Generoso_da

Recomendo não utilizar path absolutos…se a aplicação for instalada em uma outra máquina, terá quer ser criado todo o caminho apenas para colocar o template do jasper…A melhor forma é colocá-lo dentro do arquivo .jar.

Dê uma olhada nesse post:

http://www.guj.com.br/posts/list/136278.java

Fernando

Criado 27 de agosto de 2009
Ultima resposta 27 de ago. de 2009
Respostas 2
Participantes 3