3.3. Отчёт по списку экземпляров сущности
Мастер отчётов позволяет создавать два вида отчётов по списку экземпляров сущности:
-
Отчёт по вручную выбранным экземплярам определенной сущности;
-
Отчёт по экземплярам сущности, удовлетворяющим некоторому запросу.
Рассмотрим первый тип отчёта. Допустим, что нам необходимо получить список экземпляров книг, находящихся в библиотеке (сущность library$BookInstance
) с их названиями и отделами библиотеки, в которых они находятся.
На первом этапе укажите детали отчёта:
-
Entity – сущность, по списку экземпляров которой будет создаваться отчёт –
library$BookInstance
. -
Template type – формат вывода отчёта – XSLX.
-
Report name – имя отчёта –
Book items location
.
Затем нужно выбрать тип построения отчёта – Report for list of entities и нажать Next.
В соответствии с условием задачи, в окне выбора атрибутов необходимо выбрать BookItem.Publication.Book.Name
, BookItem.LibraryDepartment.Name
.
Нажмите ОК для перехода ко второму этапу – редактированию регионов отчёта.
Шаблон отчёта по списку сущностей содержит только один регион, выводящий данные в виде таблицы. Добавлять новые регионы нельзя, но можно отредактировать набор данных в существующем, нажав на ссылку со списком атрибутов, либо удалить существующий регион и создать его заново, для чего наверху станет активной кнопка Add tabulated region.
В данном случае, менять ничего не нужно. Нажмите Next → Save для сохранения отчёта. В редакторе отчётов отчёт будет выглядеть следующим образом:
После сохранения запустите отчёт через общий список отчётов.
Добавьте кнопку запуска отчёта в экран просмотра экземпляров книг, открывающийся из браузера публикаций по кнопке Show items. Для этого в XML-дескрипторе экрана bookinstance-browse.xml
установите атрибут multiselect="true"
у таблицы экземпляров книг (bookInstancesTable
) и добавьте стандартное действие ListPrintFormAction:
<groupTable id="bookInstancesTable"
multiselect="true"
...>
<actions>
<action id="create" type="create"/>
<!-- -->
<action id="list" type="listPrintForm" caption="msg://printList"/>
<columns>
<!-- -->
</columns>
<rowsCount/>
<buttonsPanel id="buttonsPanel"
alwaysVisible="true">
<button id="createBtn" action="bookInstancesTable.create"/>
<!-- -->
<button id="listBtn" action="bookInstancesTable.list"/>
</buttonsPanel>
</groupTable>
Далее свяжите отчёт Book items location с экраном просмотра сущности BookInstance
. Откройте отчёт на редактирование, перейдите на вкладку Roles and Screens, выберите экран library$BookInstance.browse
из выпадающего списка и добавьте его в таблицу ниже:
Теперь запустите отчёт из браузера экземпляров книг. Чтобы добавить экземпляры в отчет, сначала перейдите в экран Library → Accession Register и сгенерируйте экземпляры для одной из книг в выпадающем списке. Затем, перейдите в экран Library → Publications, выберите книгу, для которой сгенерировали экземпляры ранее, и нажмите кнопку Show items. В появившемся экране BookInstances выберите экземпляры для отчета в таблице и нажмите кнопку Print list. Опция Print selected экспортирует выбранные экземпляры, опция Print all – все экземпляры, выбранные текущим фильтром.
Готовый отчёт будет выглядеть следующим образом: