3.2. Отчёт по экземпляру сущности
Допустим, что мы хотим получить сведения об отдельно взятом издании книги, то есть экземпляре сущности library$BookPublication
.
Для этого запустите мастер создания отчётов и на первом этапе укажите детали отчёта:
Затем выберите тип построения отчёта – Report for single entity. Этот тип построения означает, что отчёт будет создаваться по одной сущности.

После этого нажмите на кнопку Next и в отобразившемся окне выберите атрибуты сущности BookPublication
и связанных с ней сущностей, которые будут включены в отчёт (Publication.Book.Name
, Publication.Publisher.Name
, Publication.Year
и Publication.City.Name
). Для этого выделите их в левой колонке и перенесите в правую колонку нажатием на кнопку или двойным кликом.
Атрибуты будут отображаться в отчёте в том порядке, в котором они выбраны на этом этапе. Для того чтобы изменить порядок отображения, перемещайте атрибуты при помощи кнопок /
.

После нажатия на кнопку ОК произойдет переход ко второму этапу – редактированию регионов отчёта.
Отобразившийся экран содержит список именованных регионов – полос шаблона отчёта, в которых будут отображаться данные. Мастер позволяет добавить в шаблон несколько регионов, позволяющих отображать разные наборы данных в виде простого текста.
При необходимости набор атрибутов сущности, загружаемых в регион шаблона отчёта, можно отредактировать, нажав на ссылку со списком атрибутов в описании региона. Также можно добавить новый регион, нажав на кнопку Add simple region.
Если в сущности есть атрибуты-коллекции, появится также кнопка Add tabulated region, позволяющая добавить регион для отображения данных в виде таблицы.
В обоих случаях отобразится окно выбора атрибутов сущности library$BookPublication
, позволяющее добавить или удалить атрибуты из набора.

На этом этапе посмотрите, как отчёт будет выглядеть с текущим набором данных, нажав на кнопку Run и выбрав экземпляр сущности library$BookPublication
.

После настройки регионов перейдите к третьему этапу – сохранению отчёта. На этом этапе просмотрите готовый шаблон отчёта, измените название и формат файла вывода, выбрав один из доступных типов.

После нажатия на кнопку Save откроется стандартный редактор отчёта, в котором при необходимости произведите более тонкую настройку шаблона и структуры данных. После завершения редактирования нажмите Save and close в редакторе отчёта.
Отчёт будет добавлен в группу отчётов General в браузере отчётов, откуда его можно запустить кнопкой Run.

Дополнительно мы можем сделать так, чтобы отчёт о деталях публикации запускался из браузера публикаций. Для этого в XML-дескрипторе bookpublication-browse.xml
определите для таблицы публикаций стандартное действие ListPrintFormAction:
<groupTable id="bookPublicationsTable"
width="100%"
dataContainer="bookPublicationsDc">
<actions>
<action id="create" type="create"/>
<!-- -->
<action id="list" type="listPrintForm" caption="msg://printDetails"/>
</actions>
<columns>
<!-- -->
</columns>
<rowsCount/>
<buttonsPanel id="buttonsPanel"
alwaysVisible="true">
<button id="createBtn" action="bookPublicationsTable.create"/>
<!-- -->
<button id="listBtn" action="bookPublicationsTable.list"/>
</buttonsPanel>
</groupTable>
Далее свяжите отчёт с экраном просмотра сущности BookPublication
. Откройте отчёт на редактирование, перейдите на вкладку Roles and Screens, выберите экран library$BookPublication.browse
из выпадающего списка и добавьте его в таблицу ниже:

После этого запустите отчёт по любой публикации, выбирая ее в таблице и нажимая на кнопку Print details.

Готовый отчёт выглядит следующим образом:
