Это старая версия документа.


Вставка столбца в таблицу

Текущая ситуация

Для привязок, которые показаны в отчете как таблица (например, "Список", "Фильтр"), необходимо, чтобы количество столбцов было не меньше, чем количество выводимых параметров в рамках этих привязок.

В случае необходимости в таблицу такой привязки можно добавить столбцы в шаблоне. При этом при выполнении отчета столбцы таблицы будут заполняться слева направо. Незаполненными останутся столбцы лишь справа. В шаблоне отчета вставить столбец со своими значениями между столбцами со значениями бизнес-модели нельзя.

Постановка задачи

Раздел Термины в Объектах деятельности используется как "Глоссарий компании". В отчете формата Word по Терминам таблицей выводится список терминов (параметр "Название") и определений (параметр "Комментарий").  

Рисунок 1. Исходный вывод "Глоссарий компании". Сделано стандартными средствами Мастера отчетов

Необходимо представить эти данные в форме, как представлен глоссарий в стандартных регламентных документах Business Studio:

  1. Между термином и определением вставить длинное тире.
  2. Не должно быть видно заголовка таблицы и границ таблицы.
Рисунок 2. Пример оформления "Термины и сокращения" в регламенте процесса

Исходные данные

Решение описывается с момента, когда уже существует привязка типа "Фильтр", выводящая перечень терминов и их определений.

Концепция решения

Сначала напишем код VBA, который вставит столбец и заполнит тире. Чтобы было наглядней видно как работает макрос. Кроме того, это будет удобно в случае необходимости отладки кода. И после этого внесем изменения в вид таблицы в шаблоне отчета.

Шаги решения

Пишем код VBA

Определяем название привязки типа "Фильтр", которая представляет нужную таблицу (см. Вставка привязки в шаблон отчета).

Sub ПослеВыполненияОтчета(ob As Variant, app As Variant)
 
название заклад часть
 
    па Список, формирующей нужную таблицу
    GlossaryBookmarkName = "Глосссок, формирующей нужную таблицу
    GlossaryBookmarkName = "Глоссарий_компании_e26caa29"
    columnInsertAfter = 1 ое тире
 
        'Проверка на корректность названия привязкобходимо вставить таблицу
    insertText = Chr(151)  нет
 
        Dim Bkm As Bookmark, длинное тире
 
         'если искомая закладка есть среди закладок ь названия привязки
        Dim GlossaryBkmOk As Boolean f Bkm.Name = GlossaryBookmarkName Then
   жной закладки нет
 
        Dim Bkm As Bookmark                 'будем рабпа Закладка
 
        
                Set tableGlossary = Application.Activeеди закладок в документе
        For Each Bkm In ActiveDocument.Bookmarks
 
            If Bkm.Name = GlossaryBookmarkName Then
                GlossaryBkmOk = True рава от которого
        'неокладка есть
                tableGlossary.Cell(1, columnInsertAfter).Rцей через закладку
                Set tableGlossary = Application.ActiveDocument.Bookmarks(GlossaryBookmarkName).Range.Tables(1)
 
            End If
 
        Next
 
      For i = 2 To ая часть
 
    If GlossaryBkmOk Then
 
        ный текст
            tableGlossary.Cell(i, columnInserлбца, справа от которого
                'Автподбор таблицы по содерставить столбец
        tableGlossary.Cell(1, columnInsertAfter).Range

После выполнения отчета и обработки его макросом отчет будет иметь вид:

Рисунок 3. Отчет после выполнения макроса, еще без форматирования таблицы

Изменение вида таблицы в шаблоне

В шаблоне отчета стандартными средствами для работы с таблицами:

  • снимаем заливку с заголовков таблицы;
  • убираем текст из заголовков;
  • делаем невидимыми границы таблицы.
Рисунок 4. Вид привязки в шаблоне отчета

Результат

Рисунок 5. Вид сформированного отчета
Актуальные новости, публикации и практики для бизнес-архитекторов и аналитиков
Driven by DokuWiki