如何在子报表中声明和使用 jasper 参数,而无需在我的主报表中声明它

  • 本文关键字:声明 报表 jasper 参数 jasper-reports
  • 更新时间 :
  • 英文 :


我想为子报表(页脚)使用参数。

有没有一种简单的方法来声明参数并仅在子报告中使用它?

我已经有一个可行的解决方案,但我必须:

  • 在主报表中声明我的参数
  • 将主报表中的参数声明为子报表参数
  • 在子报表中声明我的参数,以便最终能够使用它

我直接处理xml文件,没有iReport。

基本上,我们不能。这是不可能的。

由于参数可以是任何可以想象的类,因此您始终可以将参数包装在其他类中。例如,在 Java 中,您可以使用 Map .这样,您只需为子报表声明一个参数,并通过包装类的相应 getter 访问映射中的每个子报表参数。

作为通用HashMap的示例:像这样声明

<parameter name="subreportParameters" class="java.util.HashMap" isForPrompting="false"/>

并像这样使用

<![CDATA[$P{subreportParameters}.get("YOUR_PARAMETER_KEY") ]]>

只有一个参数的缺点是降低了子报表中的可读性。对于页脚等小型子报表,这可能是可以接受的权衡。

最新更新