Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

ru:creating_user_reports:use_macros_in_reports:rtf_in_table [2013/10/17 11:38]
belkin [Текущая ситуация]
— (текущий)
Строка 1: Строка 1:
-====== Форматирование привязки типа RTF в таблице ====== 
- 
-===== Текущая ситуация ===== 
- 
-В свойствах объектов существуют параметры, которые позволяют фиксировать не просто текст, а форматированный текст. Так называемый формат RTF. Несмотря на то, что для таких параметров, можно задать формат шрифта по умолчанию, бывают ситуации, когда информация в них заносится из других документов путем копирования данных через буфер обмена. При этом остается форматирование текста как у источника. При выводе таких параметров в отчет при сохранении форматирования RTF может происходить выделение данного текста на фоне общего представления отчета. Например, текст будет выведен другим шрифтом и другим размером. 
- 
-===== Постановка задачи ===== 
- 
-В отчете формата Word по процессу в таблице с описанием подпроцесса необходимо столбец "Комментарий" сделать таким же шрифтом, таким же размером как другие столбцы таблицы и таким же стилем абзаца. При этом оставить  другое форматирование: подчеркивание, выделение, цвет и т.д. 
- 
-===== Исходные данные ===== 
- 
-Решение описывается с момента, когда уже существует привязка типа "Список", выводящая список подпроцессов. 
- 
-[{{ ru:creating_user_reports:use_macros_in_reports:rtf_in_table:rtf1.png?nolink |Рисунок 1. Привязка, выводящая список подпроцессов, в котором существует привязка с типом RTF - "Комментарий"}}] 
- 
-[{{ ru:creating_user_reports:use_macros_in_reports:rtf_in_table:rtf2.png?nolink |Рисунок 2. Вид выполненного отчета - стиль текста "Комментарий" отличен он других столбцов таблицы}}] 
- 
-===== Концепция решения ===== 
- 
-Необходимо обратиться к нужной таблице. Определить параметры шрифта в соседнем столбце от столбца "Комментарий" (значения из ячейки). Далее выделить столбец "Комментарий" и задать необходимые параметры шрифта. 
- 
-===== Шаги решения ===== 
- 
-Определяем название привязки типа "Список", которая представляет нужную таблицу. (см. [[ru/manual/report/insert_anchor?&#пример_определения_названия_привязки_типа_список ]]). 
- 
-<code vb> 
-Sub ПослеВыполненияОтчета(ob As Variant, app As Variant) 
- 
-'Вводная часть 
- 
-    'название закладки для привязи типа Список, формирующей нужную таблицу 
-    PodProcBookmarksName = "Подпроцессы_41fc2dd5" 
-    columnRTF = 2 'столбец в таблице, содержащий параметр RTF - "Комментарии" 
- 
-        'Проверка на корректность названия привязки 
-        Dim PodProcBkmOk As Boolean 'сначала считаем, что нужной закладки нет 
- 
-        Dim Bkm As Bookmark 'переменная типа Закладка 
- 
-        'если искомая закладка есть среди закладок в документе 
-        For Each Bkm In ActiveDocument.Bookmarks 
- 
-            If Bkm.Name = PodProcBookmarksName Then 
- 
-                PodProcBkmOk = True 'отмечаем, что закладка есть 
-                'будем работать с таблицей через закладку 
-                Set tablePodProc = Application.ActiveDocument.Bookmarks(PodProcBookmarksName).Range.Tables(1) 
- 
-            End If 
- 
-        Next 
- 
-'Процедурная  часть 
- 
-    If PodProcBkmOk Then 'если есть необходимая закладка 
- 
-        'Запоминаем параметры шрифта первой ячейки после заголовка справа от поля RTF 
-        Dim Rng As Range 'здесь будет область ячейки справа от столбца RTF 
-        Set Rng = tablePodProc.Cell(2, columnRTF + 1).Range 
- 
-        FontName = Rng.Font.Name 'запоминаем шрифт 
-        FontSize = Rng.Font.Size 'запоминаем размер 
- 
-        'Выделяем столбец с RTF кроме заголовка 
-        Dim RngRTF As Range 
-        'начало и конец диапазона 
-        RngRTFStart = tablePodProc.Cell(2, columnRTF).Range.Start 
-        RngRTFEnd = tablePodProc.Cell(tablePodProc.Rows.Count, columnRTF).Range.End 
- 
-        'выделяем ячейки RTF 
-        ActiveDocument.Range(RngRTFStart, RngRTFEnd).Select 
- 
-        'Задаем шрифт текста и размер 
-        With Selection.Font 
-            .Name = FontName 
-            .Size = FontSize 
-        End With 
- 
-        'Форматирование абзаца 
-        Selection.ParagraphFormat = Rng.ParagraphFormat 
- 
-    End If 
- 
-End Sub 
-</code> 
- 
-===== Результат ===== 
- 
-[{{ ru:creating_user_reports:use_macros_in_reports:rtf_in_table:rtf3.png?nolink |Рисунок 3. Вид сформированного отчета. Параметр типа RTF имеет такой же шрифт и размер, как и остальная таблица}}] 
  
Актуальные новости, публикации и практики для бизнес-архитекторов и аналитиков
Driven by DokuWiki