3.2. Отчёт по экземпляру сущности

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

Для этого запустите мастер создания отчётов и на первом этапе укажите детали отчёта:

  • Entity – сущность, по экземпляру которой будет создаваться отчёт – library$BookPublication.

  • Template type – формат шаблона, по которому будет создаваться отчёт – DOCX. Доступны также форматы XSLX, HTML, CSV и Chart.

  • Report name – имя, под которым будет сохранен отчёт – Publication details.

Затем выберите тип построения отчёта – Report for single entity. Этот тип построения означает, что отчёт будет создаваться по одной сущности.

single entity step 1
Рисунок 2. Создание отчёта по экземпляру сущности в мастере: шаг 1

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

Атрибуты будут отображаться в отчёте в том порядке, в котором они выбраны на этом этапе. Для того чтобы изменить порядок отображения, перемещайте атрибуты при помощи кнопок attributes_selection_up/attributes_selection_down.

single entity attributes
Рисунок 3. Создание отчёта по экземпляру сущности в мастере: выбор атрибутов

После нажатия на кнопку ОК произойдет переход ко второму этапу – редактированию регионов отчёта.

Отобразившийся экран содержит список именованных регионов – полос шаблона отчёта, в которых будут отображаться данные. Мастер позволяет добавить в шаблон несколько регионов, позволяющих отображать разные наборы данных в виде простого текста.

При необходимости набор атрибутов сущности, загружаемых в регион шаблона отчёта, можно отредактировать, нажав на ссылку со списком атрибутов в описании региона. Также можно добавить новый регион, нажав на кнопку Add simple region.

Если в сущности есть атрибуты-коллекции, появится также кнопка Add tabulated region, позволяющая добавить регион для отображения данных в виде таблицы.

В обоих случаях отобразится окно выбора атрибутов сущности library$BookPublication, позволяющее добавить или удалить атрибуты из набора.

single entity step 2
Рисунок 4. Создание отчёта по экземпляру сущности в мастере: шаг 2

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

single entity test running
Рисунок 5. Окно предварительного запуска отчёта с текущим набором данных

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

single entity step 3
Рисунок 6. Создание отчёта по экзмепляру сущности в мастере: шаг 3

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

Отчёт будет добавлен в группу отчётов General в браузере отчётов, откуда его можно запустить кнопкой Run.

single entity reports list
Рисунок 7. Созданный отчёт в списке отчётов системы

Дополнительно мы можем сделать так, чтобы отчёт о деталях публикации запускался из браузера публикаций. Для этого в 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 из выпадающего списка и добавьте его в таблицу ниже:

single entity screens
Рисунок 8. Окно редактирования отчёта: связывание отчёта с экраном

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

single entity running
Рисунок 9. Запуск отчёта из браузера публикаций

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

single entity result
Рисунок 10. Пример выполненного отчёта