На одном из проектов возникла потребность в отчете с информацией об исполнении поручений добавлять ссылки на отчетные документы, добавленные исполнителем. В отчете должна выводиться информация по следующему формату:
Если исполнитель может добавлять только один отчетный документ, удобно использовать объект "Текст", помещаемый непосредственно в ячейку.
Но если предусмотрена возможность добавления нескольких документов, такой подход оказывается неудобным — через него можно разместить только одну ссылку на сущность в ячейке. В подобной ситуации нужно применять объект "Вложенный отчет".
Детали реализации зависят от того, может ли исполнитель вложить только один отчетный документ или несколько документов.
Данная задача легко закрывается добавлением объекта "Текст". Необходимо в таблицу с данными для отчета (ReportTable) добавить два поля, в которых будут храниться ссылка на отчетный документ (поле LinkDocument) и наименование отчетного документа (поле NameDocument). В дизайнера отчета в ячейку для отчетного документа добавляем объект "Текст" и настраиваем его отображение в виде гиперссылки:
Указываем выражение, в котором хранится ссылка на документ и устанавливаем флажок «Изменить внешний вид объекта, чтобы он выглядел как ссылка»:
В результате отчет выглядит так:
Здесь вариант с добавлением объекта "Текст" в ячейку не подойдет, так как с помощью него добавляется только одна ссылка на сущность в ячейку. В данной ситуации подойдет добавление объекта "Вложенный отчет". Рассмотрим как добавить "Вложенный отчет". Для отчетных документов необходимо создать отдельную таблицу (DocumentsReports), в которой будут храниться наименование (поле NameDocument) и ссылка на документ (поле LinkDocument) и ИД задания на исполнение поручения (поле AssignmentId). В ячейку для отчетного документа добавляем объект "Вложенный отчет":
Автоматически создается новая страница для вложенного отчета. В ней настраиваем бэнд "Данные" (подключим бэнд к данным, выбрав таблицу DocumentsReports), добавляем объект "Текст" и настраиваем его отображение в виде гиперссылки:
Для вложенного отчета устанавливаем флажок "Печатать на родителе":
Для того, чтобы вложенный отчет "знал", какие документы выводить для каждого исполнителя поручения, необходимо добавить связь между таблицами с данными. Для этого переходим на вкладку с Данными, выбираем таблицу с отчетными документами (DocumentsReports) далее "Действия" и "Новая связь":
Открывается окно для редактирования связей. В открывшемся окне настраиваем связь (связываем таблицы по ИД задания на исполнение):
В результате отчет выглядит так:
Авторизуйтесь, чтобы написать комментарий