[RESOLVIDO EM PARTE] Programa Java não chama relatório com subrelatórios - IReport 4.5.0

Bom dia gente! Pelo amor de Deus, quem puder me ajudar olha isso ai pra mim!

Tenho um relatório perfeitamente compilado no IREPORT 4.5.0 que quando executado por ele gera o relatório contendo 3 subrelatorios direitinho.

Mas quando tenho chamar via java não tem como. Dá sempre NullPointerException

esse chama o relatório:

  private void jButtonOkFNRHctionPerformed(java.awt.event.ActionEvent evt) {
        if ((idHospedagem_Hospede == 0)) {
            JOptionPane.showMessageDialog(null, "Operação Inválida!\nEscolha o número da Ficha.", "Erro... ", JOptionPane.ERROR_MESSAGE);

        } else {
            try {
                caminhoJasper = "RELATORIOS\\FNRH\\FNRH.jasper";
                nomeRelatorio = "FNRH";
                RelatorioComParametros  relatorioComParametros = new RelatorioComParametros();
                try {
                    try {
                        relatorioComParametros.gerarRelatorioParametroFNRH(idHospedagem_Hospede, caminhoJasper, nomeRelatorio);
                    } catch (JRException ex) {
                        Logger.getLogger(JFrameTelaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
                    }
                } catch (ClassNotFoundException ex) {
                    Logger.getLogger(JFrameTelaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
                }

            } catch (SQLException ex) {
                System.out.println("problema FNRH. Erro: " + ex.getMessage() + "\n\n");
            }
        }
    }

esse visualiza o relatório:

   public void gerarRelatorioParametroFNRH(int idHospedagem_Hospede, String caminhoJasper, String nomeRelatorio) throws SQLException, ClassNotFoundException, JRException {

     
        HashMap parametroMapDadosFNRH = new HashMap();
        parametroMapDadosFNRH.put("idHospedagem_Hospede", idHospedagem_Hospede);
        parametroMapDadosFNRH.put("SUBREPORT_DIR", "D:\\Meus Documentos\\NetBeansProjects\\Oasis\\RELATORIOS\\FNRH\\");
   //isso ai tá certo????

          arquivoJasper = caminhoJasper;


        try {

            rel = JasperFillManager.fillReport(arquivoJasper, parametroMapDadosFNRH, conexao);
        } catch (NullPointerException ex) {
            JOptionPane.showMessageDialog(null, arquivoJasper+ "\n" + parametroMapDadosFNRH + "\n" + conexao.isClosed() + "\n" + ex);
        }
        JasperViewer.setDefaultLookAndFeelDecorated(false);

        JasperViewer j = new JasperViewer(rel, true);
        JDialog v = new JDialog(new javax.swing.JFrame(), nomeRelatorio, true);
        v.setSize(850, 700);
        v.setLocationRelativeTo(null);
        v.getContentPane().add(j.getContentPane());
        v.setVisible(true);

    }

Resolvido!!!

Estes caras salvaram meus dois últimos dias!

Após ter resolvido postei este comentário no site:

Cara, tenho que te homenagear! perdi dois dias só tentando resolver isso e vc me ajudou a descobrir que o erro estava no fato de que eu estava utilizando bibliotecas antigas. atualizei para versão atual e rodou legal!
Deus te abençoe!

ALELUIA!!!

Sandro

Após atualizar versão meu código de chamada do relatório ficou:

[code]
public void gerarRelatorioParametroFNRH(int idHospedagem_Hospede, String caminhoJasper, String nomeRelatorio) throws SQLException, ClassNotFoundException, JRException {

    JasperPrint rel = null;

try {

            HashMap parametroMapDadosFNRH = new HashMap();
          
            parametroMapDadosFNRH.put("idHospedagem_Hospede", idHospedagem_Hospede);
            parametroMapDadosFNRH.put("SUBREPORT_DIR", "RELATORIOS\\FNRH\\");


            String arquivoJasper = caminhoJasper;

            rel = JasperFillManager.fillReport(arquivoJasper, parametroMapDadosFNRH, conexao);
            JasperViewer.setDefaultLookAndFeelDecorated(false);
            JasperViewer j = new JasperViewer(rel, true);
            JDialog v = new JDialog(new javax.swing.JFrame(), nomeRelatorio, true);
            v.setSize(900, 700);
            v.setLocationRelativeTo(null);
            v.getContentPane().add(j.getContentPane());
            v.setVisible(true);
        
    } catch (final JRException e) {
        JOptionPane.showMessageDialog(null, "Relatório não encontrado!", "Relatório", JOptionPane.ERROR_MESSAGE);
        System.out.println(e);
    }
}[/code]

Por favor, ao postar tópicos, não deixe todas as letras do título maiúsculas.

ViniGodoy

Ok! Obrigado pela correção!

Colegas,

Resolvi esse problema mas com a resolução criei outro.

Como adicionei todas as bibliotecas do ireport no meu projeto o .jar que era de 5,7 MB passou a ser 71,7 MB.

Tá pesado que só…

O problema agora é: Será que todas essas bibliotecas contidas na pasta C:\Arquivos de programas\JasperSoft\iReport-4.5.0\ireport\modules[b]ext[/b] são realmente necessárias para gerar esse pdf???

tá brabo…

Sandro