Problema com Ireport

3 respostas
M

Boa Tarde,

Estou com problema para gerar relatorios eles funcionam pois eu tenho que colocar o .jasper e o .jrprint na pasta que irei instalar o sistema, antes de gerar o .jar eu gostaria de gerar o .jar e onde eu colocar o sistema os relatorios funcionem.vou explicar como eu faço e se alguem tiver uma sugestão eu agradeço

primeiro eu crio o relatorio no ireport e salvo na pasta que eu escolho como o .jasper e o .jrprint, depois no netbeans crio a coneção.

private static Connection getConnection() throws
            ClassNotFoundException, SQLException {
        String driver = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/laguna";
        String user = "root";
        String password = "admin";

        Class.forName(driver);
        Connection con = DriverManager.getConnection(url, user, password);
        return con;
    }

depois chamo o relatorio

public void setRelatorio3() throws JRException, Exception {

        Connection con = getConnection();
        Statement stm = con.createStatement();
        String query = "select * from associado order by nome";
        ResultSet rs = stm.executeQuery(query);
        
        
        System.out.println(query);


        JRResultSetDataSource jrResult = new JRResultSetDataSource(rs);

        Map parameters = new HashMap();

        JasperFillManager.fillReportToFile("C:\\2PHSoftware\\Social\\Relatorios\\AssociadosCadastrados\\associadoscadastrados.jasper", parameters, jrResult);

        /* Visualiza o relatório */
        JasperViewer.viewReport("C:\\2PHSoftware\\Social\\Relatorios\\AssociadosCadastrados\\associadoscadastrados.jrprint", false,false);
    }

como podem ver eu coloco o caminho completo de onde estara o relatorio, ai sou forçado e colocar o sistema nesta pasta gostaria que onde o sistema fosse o relatorio ir junto com o .jar

Obrigado

3 Respostas

F

Cria um InputStream e seta ele assim:

is = this.getClass().getResourceAsStream("seuRelatorio.jasper");

Nesse caso, botando apenas o nome do arquivo jasper, ele tem que estar na mesma pasta do arquivo.java dessa classe.
Senão, é só fazer assim (exemplo):

is = this.getClass().getResourceAsStream("\\Relatorios\\AssociadosCadastrados\\seuRelatorio.jasper");

E depois faz isso:

JasperFillManager.fillReportToFile(is, parameters, jrResult);
M

nao deu fiz isso

public void setRelatorio() throws JRException, Exception {

        Connection con = getConnection();
        Statement stm = con.createStatement();
        String query = "select * from users;";
        ResultSet rs = stm.executeQuery(query);
        
        
        System.out.println(query);


        JRResultSetDataSource jrResult = new JRResultSetDataSource(rs);

        Map parameters = new HashMap();
        //InputStream is = new InputStream();
        java.io.InputStream is = this.getClass().getResourceAsStream("user.jasper");
        
            is = this.getClass().getResourceAsStream("\\rel\\users\\user.jasper");  
            
            //JasperFillManager.fillReportToFile(is, parameters, jrResult);
        
        

        //JasperFillManager.fillReportToFile("C:\\2PHSoftware\\Social\\Relatorios\\Aniversariantes\\aniversariantes.jasper", parameters, jrResult);

        /* Visualiza o relatório */
       // JasperViewer.viewReport("C:\\2PHSoftware\\Social\\Relatorios\\Aniversariantes\\aniversariantes.jrprint", false,false);
    }

o JasperFillManager.fillReportToFile(is, parameters, jrResult); esta dando erro

M

Olá, eu comecei a trabalhar a pouco tempo com iReport. Eu instalei o plugin pro netbeans, porém não está criando a pasta iReport dentro da pasta do netbeans. Logo não posso importar as bibliotecas para o meu projeto. Alguém sabe o que está dando errado? obrigado!

Criado 17 de fevereiro de 2012
Ultima resposta 19 de abr. de 2012
Respostas 3
Participantes 3