Ae galera, começei a mexer com 1 relatorio simples, pra entender como funciona, fiz o seguionte, baseado num topico aki do forum:
[code] public void mostrarRelatorio() {
try {
// Um List com os registros que vêm do DAO
CTR_ManterProfessor ctrProf = new CTR_ManterProfessor(factory);
List<Professor> dataSource = ctrProf.listarProfessores("nome_professor");
if (dataSource.isEmpty()){
JOptionPane.showMessageDialog(null, "erro");
}
// Um HashMap com os parâmetros
HashMap params = new HashMap();
// Exibicao do Relatorio
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(dataSource);
JasperReport report = (JasperReport) JRLoader.loadObject(getClass().getClassLoader().getResource("classic.jasper"));
JasperPrint impressao = JasperFillManager.fillReport(report, params, ds);
JasperViewer.viewReport(impressao, false);
JRViewer viewer = new JRViewer(impressao);
JFrame frameViewer = new JFrame("Relatorio");
frameViewer.setSize(800, 600);
frameViewer.setResizable(true);
frameViewer.add(viewer);
princ.setEnabled(false);
frameViewer.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
frameViewer.setTitle("SPH - Relatório");
frameViewer.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosed(java.awt.event.WindowEvent evt) {
formWindowClosed(evt);
}
private void formWindowClosed(WindowEvent evt) {
princ.setEnabled(true);
princ.toFront();
}
});
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Problema ao gerar Relatorio.\n" + e.getMessage());
e.printStackTrace();
}
}[/code]
so q ele da erro e cai no catch, com essa mensagem:
Erro retrieving field value from bean: nome_professor
o q q tem de errado?
so totalmente iniciante nisso, n tenho nocao do q ta certo, intaum keria q alguem me falasse, por favor
cara
provavelmente o erro esta na hora de recuperar os dados da propriedade nome_professor…
faça um System.out.println… depois desta linha para ver se passa
Cada ora da 1 erro, to fikano doido aki ja, olhae o erro q da nessa linha:
JasperReport report = (JasperReport) JRLoader.loadObject(getClass().getClassLoader().getResource("classic.jasper"));
net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : nome_professor
at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:127)
at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:100)
at net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCollectionDataSource.java:104)
at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:787)
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:751)
at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1422)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:111)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:879)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:801)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
at br.com.planejamentoHorario.report.Relatorio.mostrarRelatorio(Relatorio.java:47)
at br.com.planejamentoHorario.report.NewMain.main(NewMain.java:19)
Caused by: java.lang.NoSuchMethodException: Unknown property 'nome_professor’
at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1122)
at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:686)
at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715)
at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:290)
at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:115)
O erro está bem explícito na mensagem de saída:
mas existe nome_professor na classe professor, por isso q botei esse topico aki
q q tem de errado ae galera me ajuda, to precisando urgente fazer esses relatorios funcionarem