Erro com relatorio jasper + annotations

6 respostas
barbafh3

Ae galera, começei a mexer com 1 relatorio simples, pra entender como funciona, fiz o seguionte, baseado num topico aki do forum:

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();
        }
    }

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?

6 Respostas

barbafh3

so totalmente iniciante nisso, n tenho nocao do q ta certo, intaum keria q alguem me falasse, por favor

alves.Felipe

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

barbafh3

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)
D

O erro está bem explícito na mensagem de saída:

barbafh3

mas existe nome_professor na classe professor, por isso q botei esse topico aki

barbafh3

q q tem de errado ae galera me ajuda, to precisando urgente fazer esses relatorios funcionarem

Criado 22 de julho de 2008
Ultima resposta 14 de set. de 2008
Respostas 6
Participantes 3