Взаимосвязь секций
Как уже было сказано выше, все секции (кроме PageHeaderBand1, PageFooterBand1, OverlayBand1, ReportTitleBand1, ReportSummaryBand1) при построении отчета зависят от секции DataBand1. Рассмотрим эти взаимосвязи более подробно и начнем с простого примера. На странице шаблона отчета лежит секция Данные (Data Band2):
Количество записей в источнике данных равно пяти, и это значит, что секцияДанные будет напечатан 5 раз в построенном отчете.
Почти все секции можно разделить на две категории: Заголовки и Итоги, т.е. для каждого типа заголовков существует итог этого же типа. Например, для заголовка групп - есть итог групп, для заголовка данных - есть итог данных и т.д.
Info | При одинаковом количестве заголовков и итогов, каждому заголовку будет соответствовать свой итог. Соответствие "заголовок - итог" считается не сверху и снизу страницы, а от блока Данные |
Рассмотрим пример.
Допустим на странице одна секция Данные, два ее заголовка и два ее итога.
Блок данных
Порядок расположения блоков на странице, в направлении сверху вниз:
Порядок | Название блока |
---|---|
1 | Заголовок данных - блок HeaderBand3 |
2 | Заголовок данных - блок HeaderBand2 |
3 | Блок Данные - DataBand2 |
4 | Итог данных - блок FooterBand3 |
5 | Итог данных - блок FooterBand2 |
В этом случае, секции HeaderBand3 будет соответствовать FooterBand2, а секции HeaderBand2 - FooterBand3. Таким образом, первому заголовоку от секции Данные (двигаемся сверху) соответствует первый итог от секции Данные (двигаемся вниз).
Пример построенного отчета выглядит так:
Чаще всего, количество заголовков и итогов определенного типа, получается разное количество.
Например, если изменить пример представленный выше, добавив к нему HeaderBand4 между HeaderBand2 и DataBand2, то теперь заголовку HeaderBand4 соответствует итог FooterBand3 ( желтый), HeaderBand2 - FooterBand2 (бирюзовый), а вот секция HeaderBand3 (синий) остается без итога:
Info | Простые заголовки/итоги выводятся только один раз до или после блока данные, и их количество ни на что не влияет. Заголовки и итоги групп выводятся для каждой группы, и каждому заголовку группы строго соответствует свой итог группы. В сложных отчетах, при неодинаковых количествах заголовков и итогов групп, может возникнуть ошибочная связь итогов и заголовков, поэтому рекомендуем стремиться к одинаковому количеству блоков заголовков и итогов групп в шаблоне отчета. |
Для корректного примера выше, уровняем количество заголовков и итогов данных:
Для того, чтобы блок присутствовал в шаблоне отчете, но не отображался в построенном отчете, необходимо установить у него нулевую высоту в Свойствах секции
По итогу получаем, что HeaderBand4 соответствует FooterBand3 (желтый), HeaderBand2 - FooterBand4 (бирюзовый), HeaderBand3 (синий) - FooterBand2 (нулевая высота). При этом, в построенном отчете FooterBand4 печататься (отображаться) не будет:
Таким образом, в шаблоне отчета получилось равное количество заголовков и итогов, и легко определить их соответствие. В тоже время, можно выключать (т.е. не отображать) определенные блоки. Все примеры выше были рассмотрены для блоков Заголовок данных и Итог данных, но этот же принцип соответствия применим и к блокам Заголовок группы, Итог группы, Заголовок колонки и Итог колонки.
Рассмотрим пример, когда в шаблоне отчета несколько секций Данные:
Эти блоки не имеют связи между собой, поэтому обрабатываться они будут последовательно.
Первым будет обработан DataBand1 (список категорий), затем - DataBand2 (список продуктов).