如何防止JasperReports中细节带之间的页面拆分

时间:2015-02-16 14:07:14

标签: jasper-reports

我有两个细节乐队的报道。第一个带显示图像,第二个带显示其文件名。但是,在某种情况下,图像会适合页面,使得下面的文本行没有剩余的位置。文件名将转到下一页,看起来很傻:

  some other contents

     +-------------------+
     |                   |
     |                   |       Page 1
     |                   |
     |                   |
     +-------------------+

  ----------------------------------------------

     foto.jpg                    Page 2

有没有办法防止JR中的这种分裂?即我希望页面拆分发生在记录之间,但不是在同一记录的不同细节带之间。在上面的用例中,图像及其文件名应该转到下一页:

  some other contents            Page 1

  ----------------------------------------------

     +-------------------+
     |                   |
     |                   |
     |                   |       Page 2
     |                   |
     +-------------------+
     foto.jpg

在第二个细节带上将分割类型设置为“防止”似乎没有帮助...

2 个答案:

答案 0 :(得分:7)

您可以添加"虚拟"分组到您的报告。

添加一个具有常量表达式的组(如true)。

取消选项Add the group headerAdd the group footer。你可能不需要那些。

现在有两种方法可以阻止拆分:

  1. 在群组选项下,勾选名为Keep Together的媒体资源。它在Jasper Reports的早期版本中始终无法正常工作。也许它现在好多了。
  2. 在群组选项下,有一个名为Min Height To Start New Page的属性。将其值设置为两个细节带的高度之和。然后,只要它打印该组,Jasper Reports将检查页面中的剩余空间是否大于或等于该属性。如果没有,它将在新页面上打印该组。

答案 1 :(得分:1)

UPDATE:使用新的细节带组合对象并设置splitType = Prevent更加容易。忘记下面的答案了。

__

0答案翻译成XML,您只需将其添加到报告中即可:

npm

请注意,元素brunobastosg必须按特定顺序排列,如下所示:

<group name="DummyGroup" keepTogether="true">
    <groupExpression><![CDATA[true]]></groupExpression>
</group>
  • 问:如何指定哪些项目属于该组?
  • 答:你不能。此报告(或子报告)中的所有项目都将属于同一组。所以,也许你需要在很多(我的情况下,BTW)
  • 中拆分你的子报告
相关问题