Não consigo abrir um relatório

4 respostas
brunoaquino

Então pessoal estou fazendo um relatório para meu TCC no iReport-nb-3.6.1, mas não estou conseguindo abrir eles no NetBeans 6.8.

Quando vou no menu do meu programa e clico no relatório, simplesmente abre uma janela escrito "Informação do Sistema" sem nenhuma mensagem.

Aqui esta meu Fonte do Relatório:

public class UtilRel {

private static Connection getConexaoJDBC() {
        Connection con = null;
        Map map = Dao.getPropriedadeConexao();
        String driver = (String) map.get("hibernate.connection.driver_class");
        String url = (String) map.get("hibernate.connection.url");
        String usuario = (String) map.get("hibernate.connection.username");
        String senha = (String) map.get("hibernate.connection.password");
       try {

            Class.forName(driver);

            con = DriverManager.getConnection(url, usuario, senha);
        } catch (Exception e) {
            Util.mensagem("Conexao com o banco de Falhou" + e.getMessage());
        }
        return con;
    }
    public static void visualizar(String arquivoDeRelatorio){
        try {
            HashMap map = new HashMap();
            JasperPrint relatorio = JasperFillManager.fillReport(arquivoDeRelatorio, map, getConexaoJDBC());
            JasperViewer.viewReport(relatorio, false);
        }catch(Exception e){
            Util.mensagem(e.getMessage());
        }
    }

}

E aqui o fonte do controlador.

public class RelCidadeController {

     public RelCidadeController() {
   }

   public void visualizar() {
      UtilRel.visualizar("src/relatorios/RelatorioCidade.jasper");
   }

}

Desde de já Obrigado!

4 Respostas

kenneth

Fala garoto…

O que eu tenho aqui, to usando assim:

InputStream entrada  = getClass().getResourceAsStream("/pasta/relatorio.jasper");
     JasperReport relatorio = (JasperReport) JRLoader.loadObject(entrada);
     // params => eh um HashMap com os parametros 
     // conexao => a sua conexao com o bd
     JasperPrint imp = JasperFillManager.fillReport(relatorio,params,conexao2); 
     JasperViewer ver = new JasperViewer(imp,false);

Abraco!

maxdavis

Já tentou debugar? Qual o erro que executa?

brunoaquino

Alterei meu Dao e agora aparece a seguinte mensagem na Janela de Informação do Sistema: org.postgresql.jdbc4.Jdbc4Connection cannot be cast to java.util.Map

Meu Dao é o seguinte:

private static EntityManagerFactory emf = null;
    private static EntityManager em = null;
    private static HashMap propConexao = null;

    private static EntityManager getEm(){
        if(em == null){
            try{
                propConexao = new HashMap();
                propConexao.put("hibernate.connection.driver_class", "org.postgresql.Driver");
                propConexao.put("hibernate.connection.url", "jdbc:postgresql://localhost/BancoTeste");
                propConexao.put("hibernate.connection.username", "postgres");
                propConexao.put("hibernate.connection.password", "senha");
            emf = Persistence.createEntityManagerFactory("BancoTestePU");

            // Instancia um objeto EntityManager
            em = emf.createEntityManager();
            }catch (Exception e){
                System.out.println(e.getMessage());
            }
        }
        return em;
    }
    // abrindo uma conexão
    public static void conectar(){
        getEm();
    }
    //método ultilizado para iniciar uma transação
    public static void startTransaction(){
        getEm().getTransaction().begin();
    }
    //método utilizado para confirmar uma transação aberta
    //gravando assim definitivamente os registros no banco de dados
    public static void commitTransaction(){
        getEm().getTransaction().commit();
    }
    //método utilizado para desfazer os comandos realizados desde quando
    // a transação foi aberta
    public static void rollbackTransaction(){
        getEm().getTransaction().rollback();
    }
    //método persiste (grava) um objeto no banco de dados
    //é necessario a utilização de transação
    public static void persist(Object obj){
        try{
            startTransaction();
            getEm().persist(obj);
            commitTransaction();
        }catch (Exception e){
            System.out.println(e.getMessage());
            rollbackTransaction();
        }
    }
    //métodos busca no banco de dados um objeto com a chave primária conforme
    //passada por parêmetro

    public static Object find(Class classe, Object pk){
        try{
            return getEm().find(classe, pk);
        }catch (Exception e){
            System.out.println(e.getMessage());
        }
        return null;
    }
    //método remove um objeto no banco de dados
    public static void remove(Object obj){
        try{
            startTransaction();
            getEm().remove(obj);
            commitTransaction();
        }catch (Exception e){
            System.out.println(e.getMessage());
            rollbackTransaction();
        }
    }
    //método que executa um select passando como parâmetro
    public static List select (String sql){
        Query query = getEm().createQuery(sql);
        return query.getResultList();
    }
    public static EntityManager getEntityManager(){
        return getEm();
    }

    public static HashMap getPropriedadeConexao() {
      return propConexao;
   }

}
brunoaquino

Pessoal consegui resolver já, mas Obrigado pelas dicas.

Ele estava caindo direto no catch.

Obrigado!

Criado 6 de agosto de 2010
Ultima resposta 9 de ago. de 2010
Respostas 4
Participantes 3