Различия

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

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

ru:creating_user_reports:use_macros_in_reports:contents_update [2013/10/17 11:48]
belkin [Шаги решения ]
— (текущий)
Строка 1: Строка 1:
-====== Обновление Оглавления ====== 
  
-===== Текущая ситуация ===== 
- 
-В шаблоне отчета стандартными средствами может быть вставлено Оглавление - содержание документа с указанием разделов и их страниц. При обработке документа макросом может возникнуть смещение заголовков с исходных страниц. Данные о номерах страниц в Оглавлении останутся не обновлёнными сразу после формирования отчета. 
- 
-===== Постановка задачи ===== 
- 
-Необходимо, чтобы после выполнения макроса, Оглавление в документе полностью соответствовало  истинному положению заголовков на страницах. 
- 
-===== Исходные данные ===== 
- 
-Решение описывается с момента, когда уже есть некоторый отчет со своим макросом. В шаблоне отчета задано Оглавление. 
- 
-[{{ ru:creating_user_reports:use_macros_in_reports:contents_update:contents1.png?nolink |Рисунок 1. Вид Оглавления в шаблоне отчета}}] 
- 
-===== Концепция решения ===== 
- 
-Вместо того чтобы обновлять существующее Оглавление, в конце выполнения макроса сделаем добавление Оглавления в указанное место в документе. Имеющееся же Оглавление в шаблоне отчета удаляем. 
- 
-===== Шаги решения ===== 
- 
-Перед местом вставки Оглавления вставляем закладку с названием "Оглавление". 
- 
-Удаляем текущее поле вставки Оглавления. 
- 
-[{{ ru:creating_user_reports:use_macros_in_reports:contents_update:contents2.png?nolink |Рисунок 2. Вид места вставки Оглавления}}] 
- 
-<code vb> 
-Sub ПослеВыполненияОтчета(ob As Variant, app As Variant) 
-     
-'Вводная часть 
-     
-    ContentsBkmName = "Оглавление" 'Название закладки, определяющее место вставки 
-      
-       
-    'Код другой части макроса 
- 
-'Процедурная  часть 
-     
-      
-    'Код другой части макроса 
-      
-      
-    'ВСТАВКА ОГЛАВЛЕНИЯ В КОНЦЕ МАКРОСА 
-      
-    'Переходим к подготовленной закладке 
-    Selection.GoTo What:=wdGoToBookmark, Name:=ContentsBkmName 
-  
-   'Непосредственное добавление Оглавления 
-   'Уровень Заголовков 1 и 2 
-    With ActiveDocument 
-        .TablesOfContents.Add _ 
-            Range:=Selection.Range, _ 
-            RightAlignPageNumbers:=True, _ 
-            UseHeadingStyles:=True, _ 
-            UpperHeadingLevel:=1, _ 
-            LowerHeadingLevel:=2, _ 
-            IncludePageNumbers:=True, _ 
-            AddedStyles:="", _ 
-            UseHyperlinks:=True, _ 
-            HidePageNumbersInWeb:=True, _ 
-            UseOutlineLevels:=True 
-        .TablesOfContents(1).TabLeader = wdTabLeaderDots 
-        .TablesOfContents.Format = wdIndexIndent 
-    End With 
- 
-End Sub  
- 
-</code> 
- 
-===== Результат ===== 
- 
-[{{ ru:creating_user_reports:use_macros_in_reports:contents_update:contents3.png?nolink |Рисунок 3. Вид Оглавления сформированного отчета}}] 
Актуальные новости, публикации и практики для бизнес-архитекторов и аналитиков
Driven by DokuWiki