如何在子报表中声明和使用jasper参数而不在主报表中声明它?

时间:2012-11-30 16:59:18

标签: jasper-reports

我想使用子报告(页脚)的参数。

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

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

并像这样使用

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

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