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) и добавьте код кнопки:
<groupTable id="bookInstancesTable"
            multiselect="true">
            ...
    <buttonsPanel>
    ...
        <button id="printList"
                caption="msg://printList"/>После этого инжектируйте компонент Button в контроллере:
@Inject
private Button printList;Далее подпишитесь на событие InitEvent и добавьте следующий код:
@Subscribe
private void onInit(InitEvent event) {
    TablePrintFormAction action = new TablePrintFormAction("report", bookInstancesTable);
    bookInstancesTable.addAction(action);
    printList.setAction(action);
}Наконец, свяжите отчёт Book items location с экраном просмотра сущности BookInstance. Откройте отчёт на редактирование, перейдите на вкладку Roles and Screens, выберите экран library$BookInstance.browse из выпадающего списка и добавьте его в таблицу ниже:
 
 
  Теперь запустите отчёт из браузера экземпляров книг. Чтобы добавить экземпляры в отчет, сначала перейдите в экран Library → Accession Register и сгенерируйте экземпляры для одной из книг в выпадающем списке. Затем, перейдите в экран Library → Publications, выберите книгу, для которой сгенерировали экземпляры ранее, и нажмите кнопку Show items. В появившемся экране BookInstances выберите экземпляры для отчета в таблице и нажмите кнопку Print list. Опция Print selected экспортирует выбранные экземпляры, опция Print all – все экземпляры, выбранные текущим фильтром.
 
 
  Готовый отчёт будет выглядеть следующим образом:
