Erro Chamar Relatorio iReport- sai em branco

10 respostas
douglasduarte360
Pessoal Quando clico no botão Relatorio aparece "O documento Não contem Paginas" Classe Relatorio:
ublic class Relatorios extends javax.swing.JFrame{
    
UsuarioDAO con_relatorio = new UsuarioDAO();
Connection CONEX;


public Relatorios() throws JRException{
Map parameters = new HashMap();
        
JRResultSetDataSource rsds = new JRResultSetDataSource(con_relatorio.resultset);
       
        JasperPrint jp = JasperFillManager.fillReport("RelatorioCursos.jasper", parameters,rsds);
JasperViewer.viewReport(jp);
//System.out.println("Testandoooo");

}

public void Relatorios() throws JRException{
    
String REPORT = "src/util/RelatorioCursos.jasper";
JasperReport JASP_REP = JasperCompileManager.compileReport(REPORT);
JRResultSetDataSource rsds = new JRResultSetDataSource(con_relatorio.resultset);
JasperPrint JASP_PRINT = JasperFillManager.fillReport(JASP_REP, null,CONEX);
JasperViewer.viewReport(JASP_PRINT);


}
ação do botao:
private void SecretariaActionPerformed(java.awt.event.ActionEvent evt) {                                           
        try {           
            new util.Relatorios();
        } catch (JRException ex) {
            Logger.getLogger(TelaInicial.class.getName()).log(Level.SEVERE, null, ex);
        }
     
    }

O que esta de errado com meu metodo.

quando eu abro o layout do relatorio aparece os dados.

10 Respostas

R

rapaz… que rolo vc fez ai :stuck_out_tongue:

tem 2 fillReport e tal…

apaga tudo isso dai do construtor e do método da classe Relatorio e deixa só isso no metodo relatorio:

// caminho completo da classe jasper + parametros que voce quiser + sua Connection ou seu rsds.. no meu eu uso apenas a Connection e faço as consultas no jasper
JasperPrint jpt = JasperFillManager.fillReport( caminhoCompletoRelatorio, parameters, conn);

// seu jpt e o caminho de saída do relatório + nome do arquivo de saída
JasperExportManager.exportReportToPdfFile(jpt, caminhoSaida);

somente isso… se quiser visualizar no View do ireport, usa o jasperprint ao inves do jasperexportmanager…

JasperViewer jv = new JasperViewer( jpt );
jv.setVisible( true );
douglasduarte360

Aparece a mesma Mensagem “O documento não tem paginas”

erro:

Jan 23, 2013 10:43:07 AM net.sf.jasperreports.engine.query.JRJdbcQueryExecuter <init> WARNING: The supplied java.sql.Connection object is null. CONSTRUÍDO COM SUCESSO (tempo total: 21 segundos)

R

seu resultset ta retornando valores? tentou usar o resultset direto no preview do ireports pra ver se exibe?

cria um relatório vazio no IREPORT, só com um texto, e tenta imprimir ele primeiro… coloca um dataset DENTRO desse relatório e veja se o erro persiste no preview do ireport e depois no seu programa

R

ahh seu Connection ta null… dai vai dar erro mesmo…

voce precisa consertar isso primeiro… nao sei como voce ta criando ela no con_relatorio.resultset senão eu te ajudava

douglasduarte360
redr4gon:
seu resultset ta retornando valores? tentou usar o resultset direto no preview do ireports pra ver se exibe?

cria um relatório vazio no IREPORT, só com um texto, e tenta imprimir ele primeiro... coloca um dataset DENTRO desse relatório e veja se o erro persiste no preview do ireport e depois no seu programa


Direto do preview da certo aparece os valores

Minha classe Relatorios ficou assim: Mas ainda não esta dando certo
public class Relatorios extends javax.swing.JFrame{
    

Connection CONEX;


public Relatorios() throws JRException{

}

public void Relatorios() throws JRException{
Map parameters = new HashMap();
    JasperPrint jpt = JasperFillManager.fillReport("src/util/RelatorioCursos.jasper", parameters, CONEX);      
   
    JasperViewer jv = new JasperViewer( jpt );  
    jv.setVisible( true );  


}


}
R

sua conex ta null

Cria uma Connection normalmente ( sabe, usando DriverManager.getConnection blablabla) ou entao tenta com sua conexao

JRResultSetDataSource rsds = new JRResultSetDataSource(con_relatorio.resultset); 
JasperPrint jpt = JasperFillManager.fillReport( caminhoCompletoRelatorio, parameters,rsds );
douglasduarte360

Não precisa ter um metodo na minha clase UsuarioDAO(dao)para buscar os valores certo?
nessa classe ja uma conexão
o que precisa é so uma conexão com o BD?

Alterei o metodo para

JRResultSetDataSource rsds = new JRResultSetDataSource(con_relatorio.resultset); JasperPrint jpt = JasperFillManager.fillReport("src/util/RelatorioCursos.jasper", parameters, rsds);
Não da nenhum erro, mas tambem nao gera o relatorio, aparece a mensagem " o documento nao tem pagina"

douglasduarte360

redr4gon valeu pela força consequi

Meu metodo ficou assim:

public void Relatorios() throws JRException, SQLException{

   
            //conecta no BD  
            Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=erp","sa","Suporte*12"); 
  
            Statement stmt= (Statement) con.createStatement();//objeto comdo sql  
    
            ResultSet rs= stmt.executeQuery("Select * from Cursos");  



    
    
    Map parameters = new HashMap();


JasperPrint jpt = JasperFillManager.fillReport("src/util/RelatorioCursos.jasper", parameters, con);      
   
    JasperViewer jv = new JasperViewer( jpt );  
    jv.setVisible( true );  


}
douglasduarte360

DEU CERTO

R

tranquilo… precisar estamos ai… :wink:

Criado 23 de janeiro de 2013
Ultima resposta 23 de jan. de 2013
Respostas 10
Participantes 2