将字段传递给 Jasper Reports 中的子报表

问题描述 投票:0回答:1

我正在使用 Jasper-Reports 5.2.0,并且有一个包含 2 个子报告的主报告。

我有一个模型

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 Reports 尝试使用属性作为

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 类型的字段。我做错了什么?

java jasper-reports subreport
1个回答
0
投票

感谢您的回复,我刚刚发现了问题...这是一个愚蠢的语法错误...它必须是 $F{felder} 而不是我的 JRExpression 中的 $F(felder)...现在工作正常!

© www.soinside.com 2019 - 2024. All rights reserved.