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

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

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

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

  • Format of template file - формат шаблона, по которому будет создаваться отчет - DOCX. Доступны также форматы XSLX и PDF.

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

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

single entity step 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

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

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

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

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

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

single entity step 2

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

single entity test running

После настройки регионов можно переходить к третьему этапу - сохранению отчета. На этом этапе можно просмотреть готовый шаблон отчета, изменить название и формат файла вывода. Доступны три типа: DOCX, HTML, PDF.

single entity step 3

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

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

single entity reports list

Дополнительно мы можем сделать так, чтобы чтобы отчет о деталях публикации запускался из браузера публикаций. Для этого необходимо добавить в XML-дескрипторе bookpublication-browse.xml к таблице публикаций кнопку Print details для запуска отчета:

<groupTable id="bookPublicationTable"
    ...
    <buttonsPanel>
        ...
        <button id="printDetails"
        caption="msg://printDetails"/>

После чего необходимо добавить к ней в контроллере экрана действие TablePrintFormAction для запуска отчета:

@Inject
private Button printDetails;

@Override
public void init(Map<String, Object> params) {
    TablePrintFormAction action = new TablePrintFormAction("report", bookPublicationTable);
          bookPublicationTable.addAction(action);
          printDetails.setAction(action);
    }

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

single entity running

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

single entity result