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

时间:2016-12-27 02:14:07

标签: jasper-reports

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

我无法将子报表的表达式类更改为java.util.List(我已经创建了subreport.jrxml和mainreport.jrxml)。但是如下图所示,我的子报表属性中不存在该类表达式。

java.util.List not found here

然后我尝试手动编写。我将这些代码添加到我的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>

现在它显示了这样的另一个错误。 another error

很抱歉,如果我解释得不好的话。这里有没有人和我有同样的问题?

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

1 个答案:

答案 0 :(得分:0)

subreportExpression只能与少数类一起使用,例如java.lang.String。它不能是java.util.List。您的第二条错误消息显示已接受类的列表。

<强>更新

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