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);
}