Expasys Questionnaire Studio Pro
Руководство пользователя (версия 2023.1)
×

Взаимосвязь секций

 
Как уже было сказано выше, все секции (кроме 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 (список продуктов).