我正在创建一份 jasper 报告,其中包含一些非常具体的要求。
这不是问题,因为我只需告诉它“在每页上重新打印标题”。到目前为止一切顺利。
此时我注意到该组有一个名为“开始新页面的最小高度”的属性。这对于详细信息很有用 然而,恒定高度的部分...
我尝试在组上使用“保持在一起”,但如果第一个组很小,但第二个组很大,则可能会在页面上留下太多空白。它作为解决方案被拒绝。
牢记这些要求。我想做的就是当页面无法容纳任何详细条目时不打印组标题。
我怀疑,当它填写报告时,它可能不知道详细信息部分的高度,直到它填写完毕为止,那时已经太晚了。我希望我是错的。
我尝试用两种方式重新创建此报告:
这两种方法都让我得到了相同的结果。
从视觉上看,如果这是我的数据:
Province - Ontario
City - Ottawa
City - Toronto
Province - Nova Scotia
City - Halifax
City - New Glasgow
Province - Quebec
City - Montreal
City - Quebec City
我可能会得到这样的结果:
**Page 1**
Province - Ontario
City - Ottawa
City - Toronto
Province - Nova Scotia
City - Halifax
City - New Glasgow
Province - Quebec **<- This hanging header is unwanted**
**Page 2**
Province - Quebec
City - Montreal
City - Quebec City
我尝试了许多设置排列,将子报表放在不同的区域中,但我还没有找到有效的方法。我希望有人知道可行的设置组合,将子报表放在不同的区域等。
知道我如何实现这个目标吗?
您无法真正阻止这种情况,因为您的详细信息带可能不止一页。但是,您有几个可以尝试的选择。
转到组属性并将“开始新页面的最小高度”设置为 200 之类的值或满足您需要的值。
其次,您可以选中“在每页上打印组标题”,这样,如果您的详细信息部分跨过一页,则标题会重复。
希望这有帮助!
为了回答#4,防止在页面末尾出现没有详细信息的组标题,此解决方案可能有效。你在#5 中说细节部分的高度是动态的。如果您指的是细节带的高度,那么我没有很好的解决方案。如果您指的是一个组的详细信息部分中的详细条目数量,那么以下解决方案应该有效。
与 Fatih 所说的类似,将“开始新页面的最小高度”设置为组标题带高度的像素数,加上细节带高度的像素数。如果没有空间容纳组标题和单个详细信息区域,这将强制组标题仅打印在下一页上。
我希望这有帮助。
我也遇到过类似的情况,一份包含大量子报告的报告。每个子报表由组标题和详细信息区域组成。
我遇到的问题是,有时组标题出现在一页中,然后其余空间将成为间隙,子报表的详细信息将出现在下一页中。我的子报告详细信息是动态调整高度。
我解决的方法如下:
主要报告,我以前有splitType =“Stretch”,我将其更改为splitType =“Prevent”
<detail>
<band height="20" splitType="Prevent">
<!-- this part contains all my subreports -->
</band>
</detail>
对于我的子报告,我曾经删除了 minHeightToStartNewPage="200" (也使用 keepTogether="true" 对我来说不起作用)
<group name="titleGroup">
<groupHeader>
<band height="20" splitType="Stretch">
对于我的子报告中的详细区域,splitType 仍为“Stretch”