-1
我正在使用Jasper-Reports 5.2.0并具有包含2个子报表的主报表。在Jasper Reports中将字段传递给子报表
我有一个型号ReportData
其中包含两个属性:List<Feld> felder
和List<Wert> werte
。这两个子模型包含多个属性,数据将显示在表中。
所以这就是我将数据源传递给子报告的方式。
<subreport>
<reportElement x="0" y="28" width="553" height="51" uuid="502d9559-e6bf-49c8-a34c-ffb8916634cd"/>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F(werte)]]></dataSourceExpression>
<subreportExpression><![CDATA["werte_subreport.jasper"]]></subreportExpression>
</subreport>
<subreport>
<reportElement x="0" y="90" width="555" height="50" uuid="5e5b0287-5002-4e31-aa8f-afe36ea78827"/>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F(felder))]]></dataSourceExpression>
<subreportExpression><![CDATA["felder_subreport.jasper"]]></subreportExpression>
</subreport>
,这就是我如何度过我的报告(数据源是ReportData
集合):
printable = JasperFillManager.fillReport(PropertyLoader.getSingleton().loadAsInputStream(REPORT_FOLDER + File.separatorChar + KONFIG_JASPER),parameters, datasource);
不知怎的,我的价值观是不传递到子报表和Jasper报表尝试使用属性作为defaultWert
,它不是Wert
类的一部分,应显示在子报告中。
net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : defaultWert
Caused by: java.lang.NoSuchMethodException: Unknown property 'defaultWert' on class XXXXXXXXXXXXXXXXXXXXXX.model.ReportData'
我所定义的两个列表werte
和felder
作为主报告java.util.List
类型的字段和定义的属性为defaultWert
作为子报告类型为String的字段。我究竟做错了什么?
我不明白为什么这个问题被标记为iText标记。 JasperReports使用iText和AFAIK的过时版本,目前iText和JasperSoft/TIBCO之间没有任何业务关系。我正在移除标签。 – 2014-10-28 16:07:54
我不知道这种不存在的关系。我使用了这个标签,因为它被用在我问这个之前的很多问题中。 – shuricano 2014-10-28 16:13:01
@shuricano您可以添加如何为您的问题创建数据源。你还有在主报告或子报告中定义的称为'defaultWert'的字段吗?我对这些问题的一般故障排除步骤是删除子报告,并确保主报告正常工作。一次只能添加一个子报告,因此我可以找到导致该问题的特定报告。 – 2014-10-29 02:20:53