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