3.5.3 Элемент управления List (Список) в отчетах BIRT
«Парным» элементом управления к Table в BIRT можно считать элемент управления List. Если у кого-то есть опыт работы с Microsoft Reporting Services, то Table в BIRT — это примерный аналог Tablix, а List — аналог List в Reporting Services.
Если опыта работы с Reporting Services нет, то ничего страшного. Принцип выбора элемента управления очень простой:
- если вам нужен отчет четко табличного вида, со строками и столбцами, выбираем Table;
- если нужен более гибкий отчет (счет, счет-фактура, письмо, договор, акт сдачи… в общем, что угодно, в чем используются данные из источника), то выбираем List.
Отметим принципиальный момент: и Table, и List (в отличие, например, от внешне похоже на Table элемента управления Grid) привязаны к данным. Для Table и List при создании потребуется указать набор данных (Data Set), к которому они будут привязаны. Соответственно, при запуске отчета в Table и List будет столько строк Details, сколько вернулось строк в Data Set. В этом отношении Table и List — близкие родственники, и многие их возможности и свойства совпадают.
Проиллюстрируем возможности элемента List на примере. Предположим, что нам надо известить каждого сотрудника, информация о котором возвращается при помощи набора данных HREmpDept, о том, что ему полагается премия в размере 5 окладов, в виде письма. Как может выглядеть решение этой задачи?
- Добавляем в наш отчет элемент управления List (например, через меню Insert | List или перетаскиванием из Palette);
- В Property Editor в нижней части экрана на вкладке Binding в списке Data Set выбираем требуемый набор данных (в нашем случае — HREmpDept) и в открывшемся окне устанавливаем флажки напротив всех столбцов в Data Set (см. рис. 3.5.3.1 )
Рис. 3.5.3.1 Добавление элемента управления List в отчете BIRT
3. Перетаскиваем в секцию Detail из Palette элемент управления Dynamic Text и в открывшемся окне Expression Builder (см. рис.) конструируем выражение с полями из набора данных, например, такое:
«Уважаемый » + row[«FIRST_NAME»] + » » +row[«LAST_NAME»] + «!» +»<br \/>» + «Вам начислена премия в размере 5 окладов.»
4. Выбираем элемент управления Dynamic Text, переходим в Property Editor на вкладку Page Break и в списке After выбираем Always (см. рис. 3.5.3.2), чтобы после каждого раза, когда выводится Dynamic Text, начиналась новая страница: нам же нужны письма на отдельных страницах, а не все вместе.
Рис. 3.5.3.2 Настройка вывода каждой записи отчета на новой странице
Все, можно запускать отчет на просмотр для проверки. Выглядеть он может примерно так, как представлено на рис. 3.5.3.3.
Рис. 3.5.3.3 Отчет BIRT с элементом управления List
Как мы видим, в отчете теперь 106 страниц, и внутрь текста добавлены поля из Data Set. Конечно, наш пример достаточно условен (и ориентирован на больше на то, чтобы вы могли быстро его воспроизвести), но на месте этой пары строк текста вполне можно представить себе документ любой сложности, который можно сформировать при помощи BIRT.
Свойства элемента управления List практически на сто процентов совпадают со свойствами элемента управления Table, поэтому здесь описывать их не будем.