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


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

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

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

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

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

Раздел Термины в Объектах деятельности используется как "Глоссарий компании". В отчете формата 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