Jasper reports 如何在JasperReports中防止细节栏之间的页面拆分

Jasper reports 如何在JasperReports中防止细节栏之间的页面拆分,jasper-reports,Jasper Reports,我有一份有两个详细等级的报告。第一个波段显示图像,第二个波段显示其文件名。然而,在某些情况下,图像会以这样一种方式放入页面中,以至于下面的文本行没有位置。文件名会转到下一页,看起来很傻: some other contents +-------------------+ | | | | Page 1 | | |

我有一份有两个详细等级的报告。第一个波段显示图像,第二个波段显示其文件名。然而,在某些情况下,图像会以这样一种方式放入页面中,以至于下面的文本行没有位置。文件名会转到下一页,看起来很傻:

  some other contents

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

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

     foto.jpg                    Page 2
有没有办法防止JR出现这种分裂?也就是说,我希望在记录之间进行页面分割,但不希望在同一记录的不同细节栏之间进行页面分割。在上面的用例中,图像及其文件名都应转到下一页:

  some other contents            Page 1

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

     +-------------------+
     |                   |
     |                   |
     |                   |       Page 2
     |                   |
     +-------------------+
     foto.jpg
将第二个详细信息栏上的“split type”设置为“Prevent”似乎没有帮助…

您可以将“dummy”组添加到报告中

添加具有常量表达式的组(如
true

取消勾选选项
添加组页眉
添加组页脚
。你可能不需要这些

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

  • 在“组选项”下,勾选名为“保持在一起”的属性。在早期版本的Jasper Reports中,它并不总是正常工作。也许现在好多了
  • 在“组选项”下,有一个名为“开始新页面的最小高度”的属性。将其值设置为两个详图标注栏的高度之和。然后,无论何时打印组,Jasper Reports都会检查页面中的剩余空间是否大于或等于该属性。如果没有,它将在新页面上打印组

  • 更新:使用新的细节标注栏和设置splitType=Prevent对对象进行分组要容易得多。忘记下面的答案

    __

    brunobastosg
    答案转换为XML,您只需将其添加到报告中即可:

    <group name="DummyGroup" keepTogether="true">
        <groupExpression><![CDATA[true]]></groupExpression>
    </group>
    
    • 问:如何指定哪些项目是组的一部分
    • 你不能。此报表(或子报表)中的所有项目都将属于同一组。所以,也许你需要将你的子报告分成许多部分(我的情况,顺便说一句)

    谢谢,“团结一致”效果很好。在我的情况下,最小高度实际上不是一个选项,因为拉伸(即要求的高度事先不知道)。你的回答救了我一天!谢谢我将为您的答案添加一个XML版本。
    <jasperReport ... >
        ....
        <field ... />
        <group name="DummyGroup" keepTogether="true">
            <groupExpression><![CDATA[true]]></groupExpression>
        </group>
        <detail>
            ...
    </jasperReport>