Minha aplicação é em swing e estou aprendendo a usar o iReports, e logo de cara ele já pede uma conexão. O problema é que eu não quero abrir mais uma conexão no meu projeto, apenas uma. E já tenho o conteúdo que quero emitir o relatório numa tabela já filtrada pela pesquisa.
Este filtro foi feito numa lista, e gostaria de pegar essa lista e enviar para um relatório, só que nem o layout eu consigo fazer sem criar uma conexão.
Alguem poderia dar um exemplo, ou disponibilizar algum link com o material referente a esse assunto em específico? Porque estou tendo dificuldades em encontrar na web.
publicvoidgeraRelatorio()throwsSQLException,ClassNotFoundException,JRException{Connectionconn=null;PreparedStatementstmt=null;ResultSetrs=null;conn=Conectabd.conectabd();Stringsql="select * from usuarios";stmt=conn.prepareStatement(sql);rs=stmt.executeQuery();JRResultSetDataSourcerelatResul=newJRResultSetDataSource(rs);JasperPrintjpPrint=JasperFillManager.fillReport("src/RELATORIOS/CadUsuarios.jasper",newHashMap(),relatResul);JasperViewerjv=newJasperViewer(jpPrint,false);jv.setVisible(true);jv.toFront();if(rs!=null){rs.close();}if(stmt!=null){stmt.close();}if(conn!=null){try{conn.close();}catch(SQLExceptionex){Logger.getLogger(FrmRelatorio.class.getName()).log(Level.SEVERE,null,ex);}}}
T
Thishinoda
Substitui o seu “relatResul” por um new JRBeanCollectionDataSource(listaDeObjetos));
Ficaria assim: JasperFillManager.fillReport("xxx.jasper", parameters, new JRBeanCollectionDataSource(listaDeObjetos));
É isso que vc queria fazer?
A
AlessandroGois
Isso ai amigo, muito obrigado!
Já está implementado e funcionando redondo. E menos uma conexão na minha aplicação.