Jasper reports 如何在Jasperreports中以特定的方式将页眉、页脚和表体拆分为页面
朋友们 我对我的报告有非常特殊的要求。让我们先看一下报告:Jasper reports 如何在Jasperreports中以特定的方式将页眉、页脚和表体拆分为页面,jasper-reports,export-to-excel,export-to-pdf,Jasper Reports,Export To Excel,Export To Pdf,朋友们 我对我的报告有非常特殊的要求。让我们先看一下报告: ___________ | | | header | | | | row | | row | | row | | footer | | footer | |_________| 这是我典型的页面,所有行、页眉和页脚都在同一页面上。有时我的一页有太多行,我的报告如下所示: __________ | | | header | | | | row
___________
| |
| header |
| |
| row |
| row |
| row |
| footer |
| footer |
|_________|
这是我典型的页面,所有行、页眉和页脚都在同一页面上。有时我的一页有太多行,我的报告如下所示:
__________
| |
| header |
| |
| row |
| row |
| row |
| row |
| row |
|________|
__________
| row |
| row |
| row |
| row |
| row |
| row |
| row |
| footer |
|________|
__________
| footer |
| |
| |
| |
| |
| |
| |
| |
|________|
我不能在最后一行和页脚之间插入拆分器,因为我的要求是:
-页眉页必须至少有一行
-页脚页必须至少有一行
所以,我找不到解决这个问题的办法。我的页脚可以分成两页。我的页脚可能没有行,这对打印XLS文件非常不利。我可以用PDF代替XLS,但我也有同样的问题。有人知道如何解决这个问题吗
-----==更新===-----
因此,dada67先生提供了很好的解决方案。我们可以将组放入文档中,组将使用表达式='1'执行我们需要的操作(看起来我们选择了所有元素)。但我的问题有一些更新
如果我的每一行都是包含一些行的子报表呢?当我在主报表中使用group时,Jasper会将我的每个子报表及其所有行作为一行进行处理。我能强迫Jasper认为单个元素不是整个子报表元素,而是子报表中的一行吗
-----==更新2===-----
所以,解决方案就在这里。当您需要将上一个子报表的最后一行移动到下一页时,您只需要在子报表中创建一个组,使用espression='1'(收集所有行)和来自dada67的正确答案的设置。这迫使jasper在每个子报表之后绘制页脚,但您可以在除最后一个子报表之外的所有子报表中隐藏页脚
感谢爸爸67 JasperReports 6.4.3引入了两个新的组属性,称为
minDetailsToStartFromTop
和preventOrphanFooter
,用于指定组页眉和页脚是否需要带有一个详细信息栏位(页眉情况下为多个)
因此,您可以使用常量表达式在报表中创建组,设置两个属性并使用组页眉和页脚标注栏
如
<group name="Group" minDetailsToStartFromTop="1" preventOrphanFooter="true">
<groupExpression><![CDATA[1]]></groupExpression>
<groupHeader>
...
</groupHeader>
<groupFooter>
...
</groupFooter>
</group>
...
...
所以你想在报告中有一个页眉和一个页脚?是的。很多行,但只有一个页脚(有几行的块)和一个页眉。您可以使页眉和页脚成为全局的。谢谢您的回答。你能对我添加到主题中的内容给出更多的评论吗?当发布带有“minDetailsToStartFromTop”的报告时,我收到一个错误,声称该报告不允许在组中使用。正如回答中所述,minDetailsToStartFromTop是在JasperReports 6.4.3中引入的。您使用的是旧版本吗?