Jasper reports 修复iReport中的子报表表达式类

Jasper reports 修复iReport中的子报表表达式类,jasper-reports,Jasper Reports,最近,我在使用JavaBeans数据源打印主详细报告时遇到问题(出于某些原因,我没有使用MySQL数据源) 我无法将subreport的表达式类更改为java.util.List(我制作了subreport.jrxml和mainreport.jrxml)。但正如您在下图中看到的,该类表达式不存在于我的子报表属性中 然后我试着手工写。我将这些代码添加到XML文件中 <subreport> <reportElement x="0" y="20" width="555" h

最近,我在使用JavaBeans数据源打印主详细报告时遇到问题(出于某些原因,我没有使用MySQL数据源)

我无法将subreport的表达式类更改为java.util.List(我制作了subreport.jrxml和mainreport.jrxml)。但正如您在下图中看到的,该类表达式不存在于我的子报表属性中

然后我试着手工写。我将这些代码添加到XML文件中

<subreport>
    <reportElement x="0" y="20" width="555" height="100"/>
    <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{orderDetails})]]></dataSourceExpression>
    <subreportExpression class="java.util.List"><![CDATA[$P{SUBREPORT_DIR} + "sub_main_report.jasper"]]></subreportExpression>
</subreport>

现在它显示了另一个类似这样的错误。

对不起,我解释得太糟了。这里有人和我有同样的问题吗


注意:我的iReport版本是4.0.1,JDK1.7在Linux Ubuntu 14.04 64位环境中运行。

子报表表达式只能用于少数类,例如
java.lang.String
。它不能是
java.util.List
。第二条错误消息显示了已接受类的列表

更新


您必须了解
子报表表达式告诉系统如何加载子报表。只能有一个值。因此表达式不能是
java.util.List
。如果有多个子报表,则必须有多个
子报表
元素,每个元素都有自己的
子报表表达式

一个子报表元素只能用于一个报表。
子报表表达式
无法获取列表谢谢。我现在明白了。很抱歉回复太慢,我已经很久没有查看我的电子邮件了。我意识到我必须使用JRBeanDataSource并在构造函数中传递列表类型作为子报表元素的数据源。谢谢!我接受了你的回答。但我需要15分钟的代表投票