Jasper reports 详细边框带

Jasper reports 详细边框带,jasper-reports,ireport,Jasper Reports,Ireport,我有一个关于边界应该如何显示在细节栏的问题,我想得到一些帮助 比如说,一个细节栏可能有很多数据,我的意思是有时候一条记录可能需要2~3页才能显示出来 现在,客户要求我们应该使报告始终显示边框的底线,只要它符合页面的结尾(即使此记录尚未结束) 我尝试的是: 制作一个具有1px高度线的列页脚 将“浮动列页脚”设置为TRUE。 结果:效果很好,但如果在列页脚后有一个摘要栏,此行将在表的末尾留出额外的空白。我想我离得很近,但我就是无法摆脱这个奇怪的空白 制作一个有边框的框架,将“细节溢出时打印”设置

我有一个关于边界应该如何显示在细节栏的问题,我想得到一些帮助

比如说,一个细节栏可能有很多数据,我的意思是有时候一条记录可能需要2~3页才能显示出来

现在,客户要求我们应该使报告始终显示边框的底线,只要它符合页面的结尾(即使此记录尚未结束)

我尝试的是:

  • 制作一个具有1px高度线的列页脚
    将“浮动列页脚”设置为TRUE。

    结果:效果很好,但如果在列页脚后有一个摘要栏,此行将在表的末尾留出额外的空白。我想我离得很近,但我就是无法摆脱这个奇怪的空白

  • 制作一个有边框的框架,将“细节溢出时打印”设置为TRUE,然后将细节带中的所有内容放入该框架。

    结果:没有像我预期的那样工作:(

由于此报表不仅包含详细信息栏中的表格,而且表格的高度是随机的。背景边框或页脚之类的技巧不适用于此


我还能做些什么?

当涉及到页面终止时,选项是有限的。这甚至很难做到,因为如果有项目在null时不显示,它仍然假定使用了空间


我会坚持使用列页脚或页脚作为您的最佳选择。

有一个
printWheenexpression
技巧可以帮助您处理页脚:

诀窍是在报表参数映射中放置一个标志,然后使用该标志决定是否打印文本(或字段、行等)

要在页脚中使用一行,总会有一些页面有额外的行。在这种情况下,报表总是从第1页开始,报表中的表格总是在打印摘要栏之前结束。这意味着,只要达到摘要栏,就不再需要该行。因此:

  • 使用PrintWheenPression在页脚中添加一行:

    新的布尔值(!(Boolean.TRUE).equals($p{REPORT\u PARAMETERS\u MAP}.get(“stopFlag”))

  • 然后在摘要栏中使用PrintWhenExpression创建一个虚拟文本字段,如下所示:

    $p{REPORT\u PARAMETERS\u MAP}.put(“stopFlag”,Boolean.TRUE)


这个技巧很有效,但可能需要对不同的布局进行一些调整。

Dave给出的选项是正确的

如果您关心仍在使用的空间,请将band和textfield高度设置为零

在我的例子中,使用Dave的选项是有效的(我不需要额外的空间)

我把它作为
printWheenexpression
放在我只想在最后一页显示的字段中:

$P{REPORT_PARAMETERS_MAP}.get("lastPage")!=null
在0高度摘要栏中的0高度文本字段中,当显示时,将其作为
打印:

$P{REPORT_PARAMETERS_MAP}.put("lastPage",":)")