Olá costumo usar o JasperViewer para os relatorios, quando chamo ele com o setVisible, ele já cria o frame novo com tudo que preciso.
Porém preciso agora mostar o relatorio dentro de um scrollPane de uma tela, então resolvi usar o JRViewer, porém não consegui fazer com que ele aparece-se dentro do meu ScrollPane, não sei exatamente o que ocorre…
Segue o trecho:
[code]Map<String, Object> map = new HashMap<String, Object>();
map.put(“dataInicio”, dataInicio);
map.put(“dataFinal”, dataFim);
map.put(“idRegiao”, SeccaoUsuario.getIdRegiao().getIdRegiao());
map.put(“logo”, “C:\RCVNA\Telecom_Italia_Mobile.png”);
//Adiciona o report ao jPanel
JRViewer jrView = null;
try {
GeraRelatorio gRel = new GeraRelatorio();
jrView = gRel.GeraRelatorio("/model/reports/Preventiva.jasper", map);
} catch (SQLException ex) {
Logger.getLogger(GestorView.class.getName()).log(Level.SEVERE, null, ex);
}
jrView.setVisible(true);
scrollPan.add(jrView);[/code]
metodo GeraRelatorio
public JRViewer GeraRelatorio(String caminho,Map<String, Object> map) throws SQLException{
//Recebe o caminho do jasper report e um MAP para montar o relatorio desejado
Connection con = new ConnectionFactory().getConnection();
try {
URL arquivo = getClass().getResource(caminho);
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(arquivo);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, con);
JRViewer viewer = new JRViewer(jasperPrint);
return viewer;
}catch (Exception ex) {
System.out.println("Erro: "+ex);
}finally{
//Fecha a conexão
con.close();
}
return null;
}
Ele não da erro nenhum, ele aparente gera o relatório todo somente não o exibe dentro do Pane, e não consigo entender o porque…