Relatorio Jasper não abre [RESOLVIDO]

4 respostas
M

Fala Galera …estou tentando puxar um relatorio jasper.
mas ele nem sequer abre no meu springtools. ( eclipse)
Ja importei os arquivos .jar … ja coloquei o direitorio certo.

e mesmo assim não puxa…

Caso alguem saiba ajudem-me

Classe de conexão

package br.com.conexao;
import java.sql.*;
import javax.swing.*;

public class conexao
{
        final private String driver = "com.mysql.jdbc.Driver";
        // voces verão ainda como efetuar conexão com diversos bancos
        final private String url = "jdbc:mysql://localhost:3306/cliente-db";
        final private String usuario = "";
        final private String senha = "";
        private Connection conexao;
        public Statement statement;
        public ResultSet resultset;
        
       public boolean conecta()
       {
            boolean result = true;
            try 
            {
                Class.forName(driver);
                conexao = DriverManager.getConnection(url, usuario, senha);
                JOptionPane.showMessageDialog(null,"conectou");
            }
            catch(ClassNotFoundException Driver) 
            {
               JOptionPane.showMessageDialog(null,"Driver não localizado: "+Driver);
               result = false;
            }
            catch(SQLException Fonte) 
            {
                JOptionPane.showMessageDialog(null,"Deu erro na conexão "+
                        "com a fonte de dados: "+Fonte);
                result = false;
            }
            return result; 
       }
       
       public void desconecta()
       {
            boolean result = true;
            try 
            {
                conexao.close();
                JOptionPane.showMessageDialog(null,"banco fechado");
            }
            catch(SQLException fecha) 
            {
                JOptionPane.showMessageDialog(null,"Não foi possivel "+
                        "fechar o banco de dados: "+fecha);
                result = false;
            }

       }
       
       public void executeSQL(String sql)
       {
            try 
            {
                statement = conexao.createStatement(
                        ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
                resultset = statement.executeQuery(sql);
            }
            catch(SQLException sqlex) 
            {
               JOptionPane.showMessageDialog(null,"Não foi possível "+
                       "executar o comando sql,"+sqlex+", o sql passado foi "+sql);
            }

       }
       
}



Agora vem a classe para puxar o relatorio



package br.com.relatorio;

import java.util.HashMap;

import javax.swing.JOptionPane;

import br.com.conexao.conexao;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;

public class relatorios {

	conexao con = new conexao();
	


	public void relatCidade() {
		try {

			con.conecta();
			con.executeSQL("select * from cliente");
			JRResultSetDataSource jrRS = new JRResultSetDataSource(con.resultset);
			
			JasperPrint jasperPrint = JasperFillManager.fillReport("relatorio/clienterlatorio.jasper", new HashMap(), jrRS);
			JasperViewer jv =  new JasperViewer(jasperPrint);
			jv.setVisible(true);
			
		
		} catch (Exception erro) {
			JOptionPane.showMessageDialog(null, "deu erro =" + erro);
		}
	}

	public static void main(String args[]) {
		new relatorios();
	}
}



Fico no aguardo

4 Respostas

M

[color=red]net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: relatoriocliente.jasper [/color]

Ta dando esse erro
M

net.sf.jasperreports.engine.JRException: Error loading object from file : relat\relatorios.jasper

está me apontando esse erro agora.
ja compilei o arquivo… está tudo certo os arquivos.jar também.

F

MarkIron eu também estava com esse erro, para resolver tive que colocar a pasta do relatório junto com os pacotes do meu projeto ai o relatório abriu.

M

Solução

package br.com.relatorio;

import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.HashMap;

import javax.swing.JOptionPane;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
import br.com.conexao.conexao;

public class relatorioCliente  {

	conexao con = new conexao();

	public relatorioCliente() throws FileNotFoundException {
		super();
		try {

			con.conecta(); // Conecta com o Banco
			con.executeSQL("SELECT  cliente.id_cliente,cliente.nm_cliente,cliente.sn_cliente,contato.vl_contato,endereco.vl_cep,endereco.nr_endereco " +
 " FROM cliente   INNER JOIN contato   ON cliente.id_cliente = contato.id_contato   INNER JOIN endereco   ON cliente.id_cliente = endereco.id_endereco");// Executa comando SQL

			// ResultSet
			JRResultSetDataSource jrRS = new JRResultSetDataSource(
					con.resultset);
			
			// atributo para procurar o caminho do relatorio tanto como dentro
			// da aplicação Ide ou no arquivo .jar
			// ou executavel
			InputStream stream = getClass().getResourceAsStream(
					"/br/com/relatorio/relatorios.jasper");

			// busca as informações no ResultsET E o caminho do relatorio
			JasperPrint jasperPrint = JasperFillManager.fillReport(stream,
					new HashMap<String, Object>(), jrRS);

			// sobe o relatorio
			JasperViewer.viewReport(jasperPrint,false);
			
			
			

		} catch (JRException erro) {
			JOptionPane.showMessageDialog(null, "deu erro =: " + erro);
			System.out.println(erro);
		}
	}

}
Criado 10 de abril de 2014
Ultima resposta 23 de abr. de 2014
Respostas 4
Participantes 2