After the article explaining why the Wrong Record Shows in the Page Header, we realized that another behavior may seem counterintuitive if you don't know the logic behind it. There is one situation in which the group header does not appear at the top of the page, even when you set the RepeatStyle property of the GroupHeader section to OnPageIncludeNoDetail. Let's take a closer look at how this happens and learn a little more about how Section reports work.
In Section reports, when you set the RepeatStyle property of the GroupHeader to OnPage, the section doesn't render to pages with no Detail section rendered on them. This is not ideal when you have, for example, group totals in the GroupFooter section, and labels in the GroupHeader section. That is how we came to have another option for the RepeatStyle property: OnPageIncludeNoDetail. It renders the group header on every page including pages on which only the GroupFooter section is rendered. Important: Section report specifications dictate that the GroupHeader and GroupFooter work as a set to make up one group. This means that the rendering of a group ends upon completion of the GroupFooter. So after rendering the GroupFooter on one page, having the RepeatStyle property of the GroupHeader set to OnPageIncludeNoDetail doesn't cause the group header for that group to display at the top of the next page. At this point, when you're only talking about one group, the behavior is intuitive. Of course you wouldn't print the group header after the group is finished. But when you nest multiple groups, things can get a little hazy. To explain it better, let me clarify with an image. First, take a look at Case 1 on the left. The inner group, B, can't be concluded on Page 1, so its GroupFooter is displayed on Page 2. In this case, GroupHeader B is also rendered on Page 2 because the rendering of this inner group wasn't completed on Page 1. Next, in Case 2, group B is concluded on Page 1. However, GroupFooter A overflows and is rendered on Page 2. In this case, GroupHeader B isn't rendered on Page 2, because rendering of group B was already completed on Page 1.
Problem and Solution
Please note that this is only an issue when all of the following is true:
- The report is a Section report
- The report has multiple groupings
- The RepeatStyle property is set to OnPageIncludeNoDetail
- A nested group ends on one page and you want its header to repeat on the following page
If it becomes a problem for you, we recommend that you modify the structure of your groups or the layout of the report.