如何设置Crystal Report,使内容无法容纳的节自动移至下一页?
Crystal Report 实现整节(含动态子报表)跨页时自动移至下一页的方法
一、基础设置(Section Expert)
- 打开Section Expert:点击菜单栏
Report->Section Expert,或右键报表节空白处选择该选项。 - 选中需要控制的目标节(比如包含评论子报表的组页眉/Detail节):
- 取消勾选
Underlay Following Sections,避免节内容被后续节覆盖,确保高度计算准确。 - 勾选
Keep Together,让节内内容尽量保持连续(配合后续公式实现整节跳转)。
- 取消勾选
二、子报表适配设置
右键目标节内的子报表,选择Format Subreport,勾选Can Grow,确保子报表能根据动态评论行数自动调整高度,保证节高度计算的准确性。
三、用公式控制“整节移至下一页”
在Section Expert中,选中目标节,找到New Page Before选项,点击右侧的公式按钮(x+2图标),输入以下公式:
// 判断当前页面剩余空间是否不足以容纳该节,是则跳转新页 If PageRemaining < SectionHeight({目标节名称}) Then True Else False
- 替换
{目标节名称}为实际节的名称,比如GroupHeader1、Detail1等(需与报表中节的命名一致)。 - 公式逻辑:
PageRemaining返回当前页面剩余可用高度(单位:缇),SectionHeight()返回目标节的实际高度,若剩余空间小于节高度,则触发新页跳转,让整节内容显示在下一页。
补充说明
- 检查页面边距:通过
File->Page Setup确认上下左右边距设置,避免剩余空间计算偏差。 - 若节内包含多个元素(比如文本框+子报表),
SectionHeight()会自动计算整个节的总高度,无需单独计算每个元素。
内容的提问来源于stack exchange,提问作者krunal.cp
相关产品推荐
相关产品推荐

