Различия

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

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

ru:creating_user_reports:use_macros_in_reports:work_in_macros [2016/04/04 11:29]
admin [Создание макроса и работа с ним]
ru:creating_user_reports:use_macros_in_reports:work_in_macros [2017/10/16 15:07] (текущий)
Строка 85: Строка 85:
 Любой отчет изначально содержит следующий макрос: Любой отчет изначально содержит следующий макрос:
  
-<code vb>+<code>
  
 Sub ПослеВыполненияОтчета(ob As Variant, app As Variant) Sub ПослеВыполненияОтчета(ob As Variant, app As Variant)
Строка 125: Строка 125:
 Использование названия привязки в коде: Использование названия привязки в коде:
  
-<code vb>+<code>
    
 ПеременнаяВКоде = Application.ActiveDocument.Variables.Item("НазваниеПривязки").Value ПеременнаяВКоде = Application.ActiveDocument.Variables.Item("НазваниеПривязки").Value
Строка 139: Строка 139:
 Использование названия привязки в коде: Использование названия привязки в коде:
  
-<code vb>+<code>
      
 Set ТаблицДляОбработки = Application.ActiveDocument.Bookmarks("НазваниеПривязки").Range.Tables(1) Set ТаблицДляОбработки = Application.ActiveDocument.Bookmarks("НазваниеПривязки").Range.Tables(1)
Строка 154: Строка 154:
 **Работа с таблицей через название привязки** **Работа с таблицей через название привязки**
  
-<code vb>+<code>
  'переменная для работы с конкретной таблицей  'переменная для работы с конкретной таблицей
 Set Table = Application.ActiveDocument.Bookmarks("НазваниеПривязки").Range.Tables(1) Set Table = Application.ActiveDocument.Bookmarks("НазваниеПривязки").Range.Tables(1)
Строка 168: Строка 168:
 **Работа с таблицей через её номер в документе** **Работа с таблицей через её номер в документе**
  
-<code vb>+<code>
  
 сountTables = ActiveDocument.Tables.Count 'количество таблиц в документе сountTables = ActiveDocument.Tables.Count 'количество таблиц в документе
Строка 186: Строка 186:
   * Таблицы могут содержать объединенные ячейки. В случае перебора всех строк таблицы может возникнуть ошибка. Чтобы этого не было,  необходимо использовать команду игнорирования ошибки:   * Таблицы могут содержать объединенные ячейки. В случае перебора всех строк таблицы может возникнуть ошибка. Чтобы этого не было,  необходимо использовать команду игнорирования ошибки:
  
-<code vb>+<code>
 On Error Resume Next ' игнорирование <error 5991> - ячейки таблицы имеют вертикальное объединение On Error Resume Next ' игнорирование <error 5991> - ячейки таблицы имеют вертикальное объединение
    
Строка 193: Строка 193:
   * При получении текста таблицы следует помнить, что полученное значение ячейки так же содержит в себе 2 служебных символа. Для обработки данных ячейки без этих служебных символов следует произвести «очистку» значения. Например:   * При получении текста таблицы следует помнить, что полученное значение ячейки так же содержит в себе 2 служебных символа. Для обработки данных ячейки без этих служебных символов следует произвести «очистку» значения. Например:
  
-<code vb>+<code>
  
 СellText = Selection.Tables(1).Cell(3,2).Range.Text 'текст ячейки со служебными символами СellText = Selection.Tables(1).Cell(3,2).Range.Text 'текст ячейки со служебными символами
Строка 224: Строка 224:
    
 Пример использования в коде: Пример использования в коде:
-<code vb>+<code>
  
 Dim HTMLCreate As Boolean Dim HTMLCreate As Boolean
Строка 271: Строка 271:
 Определяем название привязки типа "Список", которая представляет нужную таблицу (см. [[ru/manual/manual]] -> [[ru/manual/report/insert_anchor?&#пример_определения_названия_привязки_типа_список|Пример определения названия привязки типа "Список"]]). Определяем название привязки типа "Список", которая представляет нужную таблицу (см. [[ru/manual/manual]] -> [[ru/manual/report/insert_anchor?&#пример_определения_названия_привязки_типа_список|Пример определения названия привязки типа "Список"]]).
  
-<code vb>+<code>
  
 BookmarkName = "Изменения_процесса_e1ded8b0" 'название привязки BookmarkName = "Изменения_процесса_e1ded8b0" 'название привязки
Строка 306: Строка 306:
 Определяем название привязки типа "Объект", которая представляет нужное поле в отчёте (см. статью [[ru/manual/manual]] -> [[ru/manual/report/insert_anchor?&#пример_определения_названия_привязки_типа_объект|Пример определения названия привязки типа "Объект"]]). Определяем название привязки типа "Объект", которая представляет нужное поле в отчёте (см. статью [[ru/manual/manual]] -> [[ru/manual/report/insert_anchor?&#пример_определения_названия_привязки_типа_объект|Пример определения названия привязки типа "Объект"]]).
  
-<code vb>+<code>
  
 VarName = "Статус_процесса_c9a10e8d" 'название привязки VarName = "Статус_процесса_c9a10e8d" 'название привязки
Строка 359: Строка 359:
 Например, при выводе отчета от процесса получить данные названия процесса можно таким образом: Например, при выводе отчета от процесса получить данные названия процесса можно таким образом:
  
-<code vb>+<code>
  
    Name = ob.Название  'получаем Название объекта, от которого вызвали отчет     Name = ob.Название  'получаем Название объекта, от которого вызвали отчет 
Строка 383: Строка 383:
  
 В таких случаях каждую решаемую задачу удобно оформлять отдельным макросом. А в ключевом макросе "ПослеВыполненияОтчета" лишь вызывать по очереди нужные макросы. Все эти макросы оформляются в том же окне, где и ключевой макрос и делается так: В таких случаях каждую решаемую задачу удобно оформлять отдельным макросом. А в ключевом макросе "ПослеВыполненияОтчета" лишь вызывать по очереди нужные макросы. Все эти макросы оформляются в том же окне, где и ключевой макрос и делается так:
-<code vb>+<code>
 Sub ПослеВыполненияОтчета(ob As Variant, app As Variant) Sub ПослеВыполненияОтчета(ob As Variant, app As Variant)
  
Строка 405: Строка 405:
 Если такие макросы имеют одинаковые части кода, то их тоже можно (и рекомендуется) выносить в отдельные макросы или функции в том же окне с ключевым макросом. Например, функция для определения присутствия в отчете необходимой привязки типа "Список" (см. [[#работа_с_копией_отчета_содержащим_макрос|Работа с копией отчета, содержащим макрос]]) может быть следующей: Если такие макросы имеют одинаковые части кода, то их тоже можно (и рекомендуется) выносить в отдельные макросы или функции в том же окне с ключевым макросом. Например, функция для определения присутствия в отчете необходимой привязки типа "Список" (см. [[#работа_с_копией_отчета_содержащим_макрос|Работа с копией отчета, содержащим макрос]]) может быть следующей:
  
-<code vb>+<code>
 Function BookmarkIs(BookmarkName As String) As Boolean Function BookmarkIs(BookmarkName As String) As Boolean
  
Строка 429: Строка 429:
  
 Использование этой функции из макроса может быть таким: Использование этой функции из макроса может быть таким:
-<code vb>+<code>
 Sub MacrosN () Sub MacrosN ()
  
Актуальные новости, публикации и практики для бизнес-архитекторов и аналитиков
Driven by DokuWiki