最近我使用JavaBeans数据源打印主详细信息报告时遇到问题(出于某些原因我没有使用MySQL数据源)。
我无法将子报表的表达式类更改为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,JDK 1.7在Linux Ubuntu 14.04 64位环境中运行。
答案 0 :(得分:0)
subreportExpression
只能与少数类一起使用,例如java.lang.String
。它不能是java.util.List
。您的第二条错误消息显示已接受类的列表。
<强>更新强>
您必须了解subreportExpression
告诉系统如何加载子报告。只能有一个值。所以表达式不能是java.util.List
。如果您有多个子报告,则必须有多个subreport
元素,每个元素都有自己的subreportExpression
。