我有一份 .repx 格式的报告。带有组页眉、详细信息和组页脚。
问题是当第一页没有更多的组页脚空间时,组页脚会打印在下一页上,但在这一页上也会打印组页眉,即使详细部分没有更多记录。如果没有更多详细记录部分组标题在下一页上不可见,我该怎么做。
谢谢 !
我有一份 .repx 格式的报告。带有组页眉、详细信息和组页脚。
问题是当第一页没有更多的组页脚空间时,组页脚会打印在下一页上,但在这一页上也会打印组页眉,即使详细部分没有更多记录。如果没有更多详细记录部分组标题在下一页上不可见,我该怎么做。
谢谢 !
请参阅此当分组字段为空或为空时如何隐藏 GroupFooterBand?
有两种方法可以实现这一点,但我建议您遵循以下方法:
如果您可以在 GroupHeaderBand.BeforePrint 和 GroupFooterBand.BeforePrint 事件处理程序中找出将隐藏哪些细节带,那么您可以隐藏相应的组页眉和页脚。
参考:
隐藏 GroupHeader 和 GroupFooter
[来自报告。]
如何缩小 groupHeader 或隐藏 groupHeader 中的 xrtable - 如果组标题被抑制,则不工作
抑制组页脚
如何在最后一页上隐藏 GroupFooterBand
GroupFooter BeforePrint with Hierarchical数据结构
对于几乎相同的问题,我想出的解决方案是跟踪在每个页面上重置的计数器。
首先,在每页上打印BeforePrint
的带子上连线:TopMargin
private int detailsPrintedThisPage = 0;
private void TopMargin_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) {
detailsPrintedThisPage = 0;
}
接下来,每当打印细节时,都要跟踪它:
private void Details_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) {
detailsPrintedThisPage++;
}
最后,在组页脚上,如果没有详细信息已打印此页,则取消页脚:
private void GroupFooter1_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) {
e.Cancel = (detailsPrintedThisPage == 0);
}
我要解决的问题最初与您的问题相同,只是我的组页脚只是一个空白标签,用于在组之间提供填充。如果详细信息排列得恰到好处,空白间距会导致整个页面(带有组标题)打印在最后一页上,这正是您所描述的情况。
然而,在我的情况下,我通过完全删除页脚并在组标题之前添加额外的空间来简化问题,如果它是打印在给定页面上的第一个组标题,我会抑制它。但是,上面的代码改编自我的解决方案,适用于更一般的情况下,如果页面上没有详细信息,则您要专门描述要隐藏组页脚的位置。分享晚了 7 年,以防它帮助其他登陆这里的人......