Passar arraylist para subreport - Ireport

5 respostas
S

Olá a todos, meu primeiro post, se estiver no lugar errado, desculpe!
Galera estou meio que sem pra quem recorrer por isso resolvi tentar vcs… provavelmente minha última chance.

Pois bem estou tentando passar um JRBeanCollection para um Subreport do Ireport, entretando na classe java que chama o .jasper sempre gera o mesmo erro
Segue codigo

List<vencimentos> v = new ArrayList<vencimentos>();
            v.add(new vencimentos("20/04/2012", "30/12/2012"));
            v.add(new vencimentos("20/04/2012", "30/12/2012") );
            JRDataSource deps = new JRBeanCollectionDataSource(v);
            
            p.put("subVencimento",deps);

Quando tento chamar o relatorio ele gera o seguinte erro:

net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : 
        Source text : new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{subVencimento})
        at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:203)
        at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:591)
        at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:559)
        at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:876)
        at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:356)
        at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:275)
        at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:257)
        at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:473)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillFixedBand(JRVerticalFiller.java:2072)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillPageFooter(JRVerticalFiller.java:1007)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillSummaryWithLastFooterNoPageBands(JRVerticalFiller.java:1549)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillSummary(JRVerticalFiller.java:1047)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportEnd(JRVerticalFiller.java:296)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:135)
        at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:836)
        at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:765)
        at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:540)
        at Frames.FrameNotaCompra.imprimirActionPerformed(FrameNotaCompra.java:347)
        at Frames.FrameNotaCompra.access$000(FrameNotaCompra.java:47)
        at Frames.FrameNotaCompra$2.actionPerformed(FrameNotaCompra.java:174)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6267)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6032)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
        at java.awt.Dialog$1.run(Dialog.java:1046)
        at java.awt.Dialog$3.run(Dialog.java:1098)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.awt.Dialog.show(Dialog.java:1096)
        at java.awt.Component.show(Component.java:1563)
        at java.awt.Component.setVisible(Component.java:1515)
        at java.awt.Window.setVisible(Window.java:842)
        at java.awt.Dialog.setVisible(Dialog.java:986)
        at Frames.FramePrincipal.jMenuItem6ActionPerformed(FramePrincipal.java:174)
        at Frames.FramePrincipal.access$500(FramePrincipal.java:22)
        at Frames.FramePrincipal$6.actionPerformed(FramePrincipal.java:107)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
        at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1223)
        at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1264)
        at java.awt.Component.processMouseEvent(Component.java:6267)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6032)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.ClassCastException: net.sf.jasperreports.engine.data.JRBeanCollectionDataSource cannot be cast to java.util.List
        at ordem_de_pagamento_1339417425668_791849.evaluate(ordem_de_pagamento_1339417425668_791849:350)
        at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:190)
        ... 81 more

Galera estou usando o ireport 4.6.0… qualquer ajuda é bem vinda!

5 Respostas

R

No xml que é gerado,provavelmente o $P{subVencimento} está como java.lang.String,caso esteja modifique pra java.util.List .

L

p.put(“subVencimento”,deps);

No subrelatorio você eu acho que tem que passar a list não o JRBeanCollectionDataSource

tenta passar assim

List v = new ArrayList();

v.add(new vencimentos(20/04/2012, 30/12/2012));

v.add(new vencimentos(20/04/2012, 30/12/2012) );

p.put(“subVencimento”,v);

S

Certo, tentei passando a list diretamente no parametro e o erro foi este!

S

Opa, raf4ever
entao ja verifiquei é o parametro esta com java.util.List

R
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/PropertyUtils

Faltando o commons-beanutils.jar

Aliás coloque logo os commons-xxx.jar mais utilizados,pois esses erros costumam ser encadeados.

Criado 11 de junho de 2012
Ultima resposta 11 de jun. de 2012
Respostas 5
Participantes 3