在JasperReport中,有没有办法为组的最后一页制定“打印时表达式”?

问题描述 投票:0回答:1

场景如下:

  • 我正在创建一个报告来为多个客户生成报表,并按客户分组。
  • 该报表至少包含三页信息,可能更多,具体取决于详细子报告 1 部分中各个行项目的数量。
  • 打印时,报表将被双面打印
  • 如果客户的信息页数为奇数,最后一页的背面将有类似“此页故意留空”的声明。
  • 我有详细的第 2、3 和 4 部分,从分页符开始。
  • 详细信息 4 页面有“故意留空”注释。如果页面是奇数页,我可以创建一个 Print When 表达式来抑制该页面。

但是,我有一个水印/背景图像,并且页眉中的第 n 页(共 nn 页)我想在该“空白”页面上隐藏。

我有办法知道 Detail-4 部分正在打印吗?或者有什么方法可以知道它在小组的最后一页上?后者似乎有些可行,除了页码的评估时间为“现在”,而“nn”的评估时间为组,因此我应该能够说“如果当前页码等于”之类的话似乎是合乎逻辑的组中的总页数...',然后禁止打印对象。

这两种情况都能实现吗?或者还有其他选择吗?

我唯一能想到的尝试是创建一个变量,每次处理一个带时该变量都会递增,并按组重置 - 我认为我可以尝试确定该值何时为 4 并在我的 Print When 表达式中使用它。

我尝试将变量作为文本字段放置在每个频段中,并将评估时间更改为“频段”(或“现在”),但这似乎没有任何作用。它从未增加。对于变量本身,没有可用的“band”评估时间。

jasper-reports jaspersoft-studio
1个回答
0
投票

对于任何对此感到好奇的人,我在帖子中找到了dada67的答案如何在每次使用时增加变量

我创建了一个名为“bandCount”的变量 - 尽管在我的例子中,我在组级别有一个“重置类型”;随后在每个带中放置一个隐藏文本字段,表达式为 $V{bandCount}.getAndIncrement(),如帖子中所述。对于我想在除最后 Detail-4 部分之外的所有页面上看到的元素,我添加了“$V{bandCount}.intValue() 的“Print When Expression”< 4'.

© www.soinside.com 2019 - 2024. All rights reserved.