Ajuda como chamar um relatorio report

5 respostas
R

Bom dia amigos do GUJ …

Primeiramente, sei que meu nome aqui no GUJ não está muito bem falado, devido as minhas necessidades e prazo de entrega do meu projeto. Por tanto, eu gostaria de pedir desculpas a todos voces, sei que esse trabalho que voces fazer é voluntario sem fins lucrativos … voces estao de parabens … me desculpem …

Por favor, peço ajuda de voces mais uma vez …

Eu criei alguns relatorios no ireport (v. 1.2.7) … o comando que dei para puxar os campos da tabela foi esse (select * from name_table order by campo) … OK

Estou usando o banco de dados Firebird, [color=red]DICA IMPORTANTE: ANTES DE MAIS NADA, AQUELES QUE TIVEREM USANDO O BANCO DE DADOS FIREBIRD E FOREM FAZER RELATORIOS NO IREPORT, ANTES DE MAIS NADA, PEGUEM O DRIVE JAR DO FIREBIRD E COLOQUEM NA PASTA LIB DO JASPER REPORTS, PARA CONSEGUIREM CONECTAR [/color]… continuando … uso o firebird e faço conexao por meio de Hibernate.

Segue abaixo o metodo como eu faço para chamar um relatorio.

public JasperPrint gerar() throws FileNotFoundException, SQLException, ClassNotFoundException {
        JasperPrint jp = null;
        JasperViewer jv = null;

        try {
            Class.forName("org.firebirdsql.jdbc.FBDriver");
            Connection cnn = DriverManager.getConnection("jdbc:firebirdsql:localhost:" + System.getProperty("user.dir")+ "/src/bancoDados/BancoDados.fdb", "sysdba", "masterkey");

            String arquivoJasper = "c:/workspace/tcc/src/relatorios/RelatorioClientePessoaFisica.jasper";
            HashMap map = new HashMap();
            
            jp = JasperFillManager.fillReport(arquivoJasper, map, cnn);
            jv = new JasperViewer(jp);
            jv.setVisible(true);
        } catch (JRException e) {
            JOptionPane.showMessageDialog(null, "Erro ao gerar o relatório: " + e.getMessage());
        }
        return jp;
    }

Abaixo segue o evento do botão , para chamar o relatorio:

try {
            relatorio = clienteDao.gerar();
            JasperViewer.viewReport(relatorio, false);
            
        } catch (FileNotFoundException ex) {
            Logger.getLogger(cadastroCliente.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            Logger.getLogger(cadastroCliente.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(cadastroCliente.class.getName()).log(Level.SEVERE, null, ex);
        }

Que acontece, erro nenhum esta dando, ele automaticamente entra nessa exceção do metodo gerar:

catch (JRException e) {
            JOptionPane.showMessageDialog(null, "Erro ao gerar o relatório: " + e.getMessage());
        }

Vale lembrar, que os relatorios estão dentro de uma pasta que tambem se chama relatorios, esta pasta está dentro da pasta src …

Por favor, me ajudem … obrigado.

5 Respostas

R

Por favor inclua o stack trace da exceção para analisarmos.

R

Amigo bom dia,

Não sei o significado de stack trace … mas se for isso que voce esta pedido, eu estou no cadastro de cliente e pesquiso o cliente, cliente achado, retorna todas as informações nas txtfields, depois eu clico no botao imprimir , após ele abre a tela do joptionpane : essa daqui

catch (JRException e) {
            JOptionPane.showMessageDialog(null, "Erro ao gerar o relatório: " + e.getMessage());
}

com a mensagem: Erro ao gerar o relatório: c:/workspace/tcc/src/relatorios/RelatorioClientePessoaFisica.jasper , quando dou OK para fechar a janela, o relatorio do jasper abre, mas fica tudo cinza a tela .

Obrigado.

R

Antes da chamada a JOptionPane.showMessageDialog(), favor incluir a linha a seguir:

e.printStackTrace();

Isso fará com que o stack trace (pilha de chamadas) que casou o erro seja “impresso” na sua saída padrão, é dessas informações que precisamos para diagnosticar o problema.

R

roger_rf:
Antes da chamada a JOptionPane.showMessageDialog(), favor incluir a linha a seguir:

e.printStackTrace();

Isso fará com que o stack trace (pilha de chamadas) que casou o erro seja “impresso” na sua saída padrão, é dessas informações que precisamos para diagnosticar o problema.

Boa tarde amigo, fiz o que voce mandou … segue abaixo:

run:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Hibernate: select this_.codigo as codigo0_0_, this_.bairro as bairro0_0_, this_.bairroCobranca as bairroCo3_0_0_, this_.celular as celular0_0_, this_.cep as cep0_0_, this_.cepCobranca as cepCobra6_0_0_, this_.cidade as cidade0_0_, this_.cidadeCobranca as cidadeCo8_0_0_, this_.cnpj as cnpj0_0_, this_.complemento as complem10_0_0_, this_.complementoCobranca as complem11_0_0_, this_.contato as contato0_0_, this_.cpf as cpf0_0_, this_.dataCadastro as dataCad14_0_0_, this_.email as email0_0_, this_.endCobranca as endCobr16_0_0_, this_.estado as estado0_0_, this_.estadoCobranca as estadoC18_0_0_, this_.fax as fax0_0_, this_.ie as ie0_0_, this_.nome as nome0_0_, this_.nomeFantasia as nomeFan22_0_0_, this_.numeroCobranca as numeroC23_0_0_, this_.numero as numero0_0_, this_.rg as rg0_0_, this_.rua as rua0_0_, this_.site as site0_0_, this_.telefone1 as telefone28_0_0_, this_.telefone2 as telefone29_0_0_, this_.tipoPessoa as tipoPessoa0_0_ from cliente this_ where this_.nome like ?
Hibernate: select this_.codigo as codigo0_0_, this_.bairro as bairro0_0_, this_.bairroCobranca as bairroCo3_0_0_, this_.celular as celular0_0_, this_.cep as cep0_0_, this_.cepCobranca as cepCobra6_0_0_, this_.cidade as cidade0_0_, this_.cidadeCobranca as cidadeCo8_0_0_, this_.cnpj as cnpj0_0_, this_.complemento as complem10_0_0_, this_.complementoCobranca as complem11_0_0_, this_.contato as contato0_0_, this_.cpf as cpf0_0_, this_.dataCadastro as dataCad14_0_0_, this_.email as email0_0_, this_.endCobranca as endCobr16_0_0_, this_.estado as estado0_0_, this_.estadoCobranca as estadoC18_0_0_, this_.fax as fax0_0_, this_.ie as ie0_0_, this_.nome as nome0_0_, this_.nomeFantasia as nomeFan22_0_0_, this_.numeroCobranca as numeroC23_0_0_, this_.numero as numero0_0_, this_.rg as rg0_0_, this_.rua as rua0_0_, this_.site as site0_0_, this_.telefone1 as telefone28_0_0_, this_.telefone2 as telefone29_0_0_, this_.tipoPessoa as tipoPessoa0_0_ from cliente this_ where this_.codigo=?
Hibernate: select this_.codigo as codigo0_0_, this_.bairro as bairro0_0_, this_.bairroCobranca as bairroCo3_0_0_, this_.celular as celular0_0_, this_.cep as cep0_0_, this_.cepCobranca as cepCobra6_0_0_, this_.cidade as cidade0_0_, this_.cidadeCobranca as cidadeCo8_0_0_, this_.cnpj as cnpj0_0_, this_.complemento as complem10_0_0_, this_.complementoCobranca as complem11_0_0_, this_.contato as contato0_0_, this_.cpf as cpf0_0_, this_.dataCadastro as dataCad14_0_0_, this_.email as email0_0_, this_.endCobranca as endCobr16_0_0_, this_.estado as estado0_0_, this_.estadoCobranca as estadoC18_0_0_, this_.fax as fax0_0_, this_.ie as ie0_0_, this_.nome as nome0_0_, this_.nomeFantasia as nomeFan22_0_0_, this_.numeroCobranca as numeroC23_0_0_, this_.numero as numero0_0_, this_.rg as rg0_0_, this_.rua as rua0_0_, this_.site as site0_0_, this_.telefone1 as telefone28_0_0_, this_.telefone2 as telefone29_0_0_, this_.tipoPessoa as tipoPessoa0_0_ from cliente this_ where this_.codigo=?
java.io.FileNotFoundException: c:\workspace\tcc\src\relatorios\RelatorioClientePessoaFisica.jasper
        at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:75)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:232)
        at dataAccessObject.HibernateDao.gerar(HibernateDao.java:283)
        at forms.cadastroCliente.jButton1ActionPerformed(cadastroCliente.java:1253)
        at forms.cadastroCliente.access$2200(cadastroCliente.java:32)
        at forms.cadastroCliente$23.actionPerformed(cadastroCliente.java:435)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6263)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2475)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

NESTED BY :
java.io.FileNotFoundException: c:\workspace\tcc\src\relatorios\RelatorioClientePessoaFisica.jasper
        at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:75)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:232)
        at dataAccessObject.HibernateDao.gerar(HibernateDao.java:283)
        at forms.cadastroCliente.jButton1ActionPerformed(cadastroCliente.java:1253)
        at forms.cadastroCliente.access$2200(cadastroCliente.java:32)
        at forms.cadastroCliente$23.actionPerformed(cadastroCliente.java:435)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6263)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2475)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

NESTED BY :
net.sf.jasperreports.engine.JRException: c:\workspace\tcc\src\relatorios\RelatorioClientePessoaFisica.jasper
        at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:75)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:232)
        at dataAccessObject.HibernateDao.gerar(HibernateDao.java:283)
        at forms.cadastroCliente.jButton1ActionPerformed(cadastroCliente.java:1253)
        at forms.cadastroCliente.access$2200(cadastroCliente.java:32)
        at forms.cadastroCliente$23.actionPerformed(cadastroCliente.java:435)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6263)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2475)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.io.FileNotFoundException: c:\workspace\tcc\src\relatorios\RelatorioClientePessoaFisica.jasper
        ... 31 more
CONSTRUÍDO COM SUCESSO (tempo total: 17 segundos)

Obrigado

R

Pessoal boa tarde, consegui resolver … para aqueles que tiver o mesmo erro, segue abaixo o codigo.

public void gerar(int cod) throws FileNotFoundException, SQLException, ClassNotFoundException {
        try {
            Class.forName("org.firebirdsql.jdbc.FBDriver");
            Connection cnn = DriverManager.getConnection("jdbc:firebirdsql:localhost:" + System.getProperty("user.dir") + "/src/bancoDados/BancoDados.fdb", "sysdba", "masterkey");
            HashMap map = new HashMap();
            map.put("teste",map);
            

            JasperDesign design = JRXmlLoader.load("C:/Workspace/TCC/src/relatorios/RelatorioClientePessoaFisica.jrxml");
        JasperReport jr = JasperCompileManager.compileReport(design);


            JasperPrint impressao = JasperFillManager.fillReport(jr,
		    map,cnn);
	    JasperViewer jrviewer = new JasperViewer(impressao, false);
	    jrviewer
		    .setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE);
	    jrviewer.setVisible(true);
            
        } catch (JRException e) {
            e.printStackTrace();  
            JOptionPane.showMessageDialog(null, "Erro ao gerar o relatório: " + e.getMessage());
        }
        //return jp;
    }

Obrigado a todos.

Criado 24 de novembro de 2009
Ultima resposta 24 de nov. de 2009
Respostas 5
Participantes 2