我有.repx格式的报告。使用组头,详细信息和组页脚。
问题是当第一页上没有组页脚的空间时,组页脚会打印在下一页上,但是在此页面上也会打印组标题,即使在详细信息部分中没有更多记录。如果没有更多详细记录将组标题放在下一页不可见,我该怎么办呢。
谢谢!
答案 0 :(得分:0)
请参阅此How do I hide the GroupFooterBand when the grouping field is empty or null?
有两种方法可以达到这个目的,但我建议您按照以下方式进行操作:
如果你能找出隐藏在哪个细节带中 GroupHeaderBand.BeforePrint和GroupFooterBand.BeforePrint事件 处理程序,然后您可以隐藏相应的组页眉和页脚。
参考文献:
Hide GroupHeader & GroupFooter
[来自报告的来源。]
How to shrink groupHeader or to hide a xrtable in the groupHeader - don't work
suppress group footer if group header is suppressed
How to hide GroupFooterBand on the last page
GroupFooter BeforePrint with Hierarchical data structure
答案 1 :(得分:0)
我想出的解决几乎相同问题的方法是跟踪在每个页面上重置的计数器。
首先,在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年,可以帮助落在这里的其他人...