【问题标题】:Fix Subreport Expression Class in iReport修复 iReport 中的子报表表达式类
【发布时间】:2016-12-27 23:12:34
【问题描述】:

最近我在使用 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,JDK 1.7 在 Linux Ubuntu 14.04 64 位环境中运行。

【问题讨论】:

  • 一个 subreport 元素仅用于一份报告。 subreportExpression 不能取列表

标签: jasper-reports


【解决方案1】:

subreportExpression 只能用于少数几个类,例如java.lang.String。不能是java.util.List。您的第二条错误消息显示了接受的课程列表。

更新

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

【讨论】:

  • 谢谢。我现在明白了。很抱歉回复慢了,好久没查邮件了。我意识到我必须使用 JRBeanDataSource 并将构造函数中的列表类型作为子报表元素的数据源传递。非常感谢!
  • 我已接受您的回答。但我需要分钟。 15 代表支持它
猜你喜欢
  • 2010-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多