【问题标题】:How to declare and use a jasper parameter in a sub report without declaring it in my main report?如何在子报表中声明和使用 jasper 参数而不在我的主报表中声明它?
【发布时间】:2016-07-21 21:09:44
【问题描述】:

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

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

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

  • 在主报告中声明我的参数
  • 将我在主报表中的参数声明为子报表参数
  • 在子报表中声明我的参数终于可以使用了

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

【问题讨论】:

    标签: jasper-reports


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      并像这样使用

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

      只有一个参数的缺点是降低了子报告的可读性。对于像页脚这样的小型子报表来说,这可能是一个可以接受的折衷方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多