Devexpress Xtrareports-报告标题问题

Devexpress Xtrareports-报告标题问题,devexpress,Devexpress,我有一份.repx格式的报告。具有组标题、详细信息和组页脚 问题是,当第一页上没有更多的组页脚空间时,组页脚将打印在下一页上,但在该页上也会打印组页眉,即使详细信息部分中没有更多记录。如果在下一页的组标题的详细信息部分中没有更多的记录是不可见的,我该怎么做呢 谢谢大家! 参考此 实现这一点有两种方法,但我建议您遵循以下方法: 如果您能找出哪些详图标注栏将隐藏在 GroupHeaderBand.BeforePrint和GroupFooterBand.BeforePrint事件 处理程序,然后可以隐

我有一份.repx格式的报告。具有组标题、详细信息和组页脚

问题是,当第一页上没有更多的组页脚空间时,组页脚将打印在下一页上,但在该页上也会打印组页眉,即使详细信息部分中没有更多记录。如果在下一页的组标题的详细信息部分中没有更多的记录是不可见的,我该怎么做呢

谢谢大家!

参考此

实现这一点有两种方法,但我建议您遵循以下方法:

如果您能找出哪些详图标注栏将隐藏在 GroupHeaderBand.BeforePrint和GroupFooterBand.BeforePrint事件 处理程序,然后可以隐藏相应的组页眉和页脚

参考资料:
[来源于报告。]



请参阅此

实现这一点有两种方法,但我建议您遵循以下方法:

如果您能找出哪些详图标注栏将隐藏在 GroupHeaderBand.BeforePrint和GroupFooterBand.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年,以防有人在这里登陆…

对于几乎相同的问题,我提出的解决方案是跟踪每页上重置的计数器

首先,在打印前将
连接到
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年,以防有人在这里登陆…

这怎么可能。。如果没有记录组,那么如何在报告中打印组???详细说明并简化您的问题。所有记录都打印在第一页,但没有更多空间打印组页脚,页脚将打印在下一页,但组标题也将打印。我希望在第二页,如果详细信息部分没有更多记录,则组标题将不可见。然后在打印事件之前使用,并检查是否为第2页。。如果是,则抑制组标题。。我认为您的报告不会超过第2页的计数。但在某些情况下,第2页上有记录,我需要在这种情况下的组标题。这怎么可能。。如果没有记录组,那么如何在报告中打印组???详细说明并简化您的问题。所有记录都打印在第一页,但没有更多空间打印组页脚,页脚将打印在下一页,但组标题也将打印。我希望在第二页,如果详细信息部分没有更多记录,则组标题将不可见。然后在打印事件之前使用,并检查是否为第2页。。如果是,则抑制组标题。。我假设您的报告不会超过第2页的计数。但在某些情况下,第2页上有记录,在这种情况下,我需要组标题。