Для привязок, которые показаны в отчете как таблица (например, "Список", "Фильтр"), необходимо, чтобы количество столбцов было не меньше, чем количество выводимых параметров в рамках этих привязок.
В случае необходимости в таблицу такой привязки можно добавить столбцы в шаблоне. При этом при выполнении отчета столбцы таблицы будут заполняться слева направо. Незаполненными останутся столбцы лишь справа. В шаблоне отчета вставить столбец со своими значениями между столбцами со значениями бизнес-модели нельзя.
Раздел Термины в Объектах деятельности используется как "Глоссарий компании". В отчете формата Word по Терминам таблицей выводится список терминов (параметр "Название") и определений (параметр "Комментарий").
Необходимо представить эти данные в форме, как представлен глоссарий в стандартных регламентных документах Business Studio:
Решение описывается с момента, когда уже существует привязка типа "Фильтр", выводящая перечень терминов и их определений.
Сначала напишем код VBA, который вставит столбец и заполнит тире. Чтобы было наглядней видно как работает макрос. Кроме того, это будет удобно в случае необходимости отладки кода. И после этого внесем изменения в вид таблицы в шаблоне отчета.
Пишем код VBA
Определяем название привязки типа "Фильтр", которая представляет нужную таблицу (см. Руководство пользователя → Пример определения названия привязки типа "Список").
Sub ПослеВыполненияОтчета(ob As Variant, app As Variant) 'Вводная часть 'название закладки для привязи типа Список, формирующей нужную таблицу GlossaryBookmarkName = "Глоссарий_компании_e26caa29" columnInsertAfter = 1 'номер столбца, после которого необходимо вставить таблицу insertText = Chr(151) 'текст для вставки, длинное тире 'Проверка на корректность названия привязки Dim GlossaryBkmOk As Boolean 'сначала считаем, что нужной закладки нет Dim Bkm As Bookmark 'переменная типа Закладка 'если искомая закладка есть среди закладок в документе For Each Bkm In ActiveDocument.Bookmarks If Bkm.Name = GlossaryBookmarkName Then GlossaryBkmOk = True 'отмечаем, что закладка есть 'будем работать с таблицей через закладку Set tableGlossary = Application.ActiveDocument.Bookmarks(GlossaryBookmarkName).Range.Tables(1) End If Next 'Процедурная часть If GlossaryBkmOk Then 'переходим к первой ячейке столбца, справа от которого 'необходимо будет вставить столбец tableGlossary.Cell(1, columnInsertAfter).Range.Select 'Вставляем столбец справа Selection.InsertColumnsRight 'проход по всем ячейкам вставленного столбца 'кроме первой ячейки (заголовка) For i = 2 To tableGlossary.Rows.Count 'вставляем нужный текст tableGlossary.Cell(i, columnInsertAfter + 1).Range.Text = insertText Next i 'Автподбор таблицы по содержимому tableGlossary.AutoFitBehavior (wdAutoFitContent) End If End Sub
После выполнения отчета и обработки его макросом отчет будет иметь вид:
Изменение вида таблицы в шаблоне
В шаблоне отчета стандартными средствами для работы с таблицами: