Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
ru:creating_user_reports:use_macros_in_reports:examples:table_on_page [2013/10/25 09:39] belkin [Шаги решения] |
ru:creating_user_reports:use_macros_in_reports:examples:table_on_page [2018/04/09 15:33] (текущий) |
||
---|---|---|---|
Строка 7: | Строка 7: | ||
===== Постановка задачи ===== | ===== Постановка задачи ===== | ||
- | В отчете формата Word по процессу необходимо, чтобы таблица с описанием подпроцессов умещалась на одну страницу. При этом допускаемся изменение внешних параметров шрифта. Минимальный допустимый размер шрифта -- 7. | + | В отчете формата Word по процессу необходимо, чтобы таблица с описанием подпроцессов умещалась на одну страницу. При этом допускается изменение внешних параметров шрифта. Минимальный допустимый размер шрифта - 7. |
В случае невозможности размещения таблицы на одной странице необходимо разместить ее на меньшем количестве страниц. | В случае невозможности размещения таблицы на одной странице необходимо разместить ее на меньшем количестве страниц. | ||
Строка 20: | Строка 20: | ||
[{{ ru:creating_user_reports:use_macros_in_reports:table_on_page:tablepage2.png?nolink }}] | [{{ ru:creating_user_reports:use_macros_in_reports:table_on_page:tablepage2.png?nolink }}] | ||
[{{ ru:creating_user_reports:use_macros_in_reports:table_on_page:tablepage3.png?nolink |Рисунок 2. Таблица с описанием подпроцессов располагается почти на 2х полных страницах }}] | [{{ ru:creating_user_reports:use_macros_in_reports:table_on_page:tablepage3.png?nolink |Рисунок 2. Таблица с описанием подпроцессов располагается почти на 2х полных страницах }}] | ||
+ | |||
===== Концепция решения ===== | ===== Концепция решения ===== | ||
- | Начало таблицы будет определяется по положению указателя в первой левой ячейке таблицы. | + | Начало таблицы будем определять по положению указателя в первой левой ячейке таблицы. |
- | Для определения конца таблицы добавит в ее конец разрыв раздела (без разрыва страницы). Когда курсор будет находиться в следующем разделе от текущего (где находится таблица), то будем определять номер страницы. Этот номер и будет принимать за номер страницы конца таблицы. | + | Для определения конца таблицы добавим в ее конец разрыв раздела (без разрыва страницы). Когда курсор будет находиться в следующем разделе от текущего (где находится таблица), то будем определять номер страницы. Этот номер и будет принимать за номер страницы конца таблицы. |
Определяя разницу между номерами страниц начала и конца таблицы, будем находить ответ на вопрос: "На 1й странице находится таблица?". | Определяя разницу между номерами страниц начала и конца таблицы, будем находить ответ на вопрос: "На 1й странице находится таблица?". | ||
Строка 38: | Строка 39: | ||
===== Шаги решения ===== | ===== Шаги решения ===== | ||
- | Сразу после таблицы добавляем раздел раздела без разрыва страницы: лента "Разметка страниц", группа "Параметры страницы", меню "Разрывы", группа меню "Разрывы разделов" -- пункт "Текущая страница". | + | Сразу после таблицы добавляем разрыв раздела без разрыва страницы: лента "Разметка страниц", группа "Параметры страницы", меню "Разрывы", группа меню "Разрывы разделов" -- пункт "Текущая страница". |
[{{ ru:creating_user_reports:use_macros_in_reports:table_on_page:tablepage4.png?nolink |Рисунок 3. Сразу после таблицы добавили разрыв раздела}}] | [{{ ru:creating_user_reports:use_macros_in_reports:table_on_page:tablepage4.png?nolink |Рисунок 3. Сразу после таблицы добавили разрыв раздела}}] | ||
Строка 46: | Строка 47: | ||
[{{ ru:creating_user_reports:use_macros_in_reports:table_on_page:tablepage5.png?nolink |Рисунок 4. Высоту строк после таблицы уменьшили до 1}}] | [{{ ru:creating_user_reports:use_macros_in_reports:table_on_page:tablepage5.png?nolink |Рисунок 4. Высоту строк после таблицы уменьшили до 1}}] | ||
- | Определяем название привязки типа "Список", которая представляет нужную таблицу (см. [[ru/manual/report/insert_anchor?&#пример_определения_названия_привязки_типа_список ]]). | + | Определяем название привязки типа "Список", которая представляет нужную таблицу (см. [[ru/manual/manual]] -> [[ru/manual/report/insert_anchor?&#пример_определения_названия_привязки_типа_список|Пример определения названия привязки типа "Список"]]). |
- | <code vb> | + | <code> |
Sub ПослеВыполненияОтчета(ob As Variant, app As Variant) | Sub ПослеВыполненияОтчета(ob As Variant, app As Variant) | ||
Строка 54: | Строка 55: | ||
HTMLCreate = Application.ActiveDocument.Variables("BSHtml").Value 'True или False | HTMLCreate = Application.ActiveDocument.Variables("BSHtml").Value 'True или False | ||
- | 'Изменять размер таблицы имеет мысл только для файлов Word | + | 'Изменять размер таблицы имеет смысл только для файлов Word |
If Not (HTMLCreate) Then | If Not (HTMLCreate) Then | ||
'Вводная часть | 'Вводная часть | ||
- | 'название закладки для привязи типа Список, формирующей нужную таблицу | + | 'название закладки для привязки типа Список, формирующей нужную таблицу |
PodProcBkmName = "Подпроцессы_4244cf23" | PodProcBkmName = "Подпроцессы_4244cf23" | ||
MinFontSize = 7 'минимальный допустимый размер шрифта | MinFontSize = 7 'минимальный допустимый размер шрифта | ||
Строка 82: | Строка 83: | ||
Next | Next | ||
- | 'Поцедурная часть | + | 'Процедурная часть |
If PodProcOk Then | If PodProcOk Then | ||
Строка 132: | Строка 133: | ||
End If | End If | ||
- | 'Определеяем конец таблицы | + | 'Определяем конец таблицы |
Selection.GoToNext wdGoToSection | Selection.GoToNext wdGoToSection | ||
numberNextSection = Selection.Information(wdActiveEndPageNumber) | numberNextSection = Selection.Information(wdActiveEndPageNumber) | ||
Строка 139: | Строка 140: | ||
If numberNextSection > numberPageTable Then | If numberNextSection > numberPageTable Then | ||
- | 'Автподбор таблицы по содержимому | + | 'Автоподбор таблицы по содержимому |
tablePodProc.AutoFitBehavior (wdAutoFitContent) | tablePodProc.AutoFitBehavior (wdAutoFitContent) | ||
Строка 155: | Строка 156: | ||
[{{ ru:creating_user_reports:use_macros_in_reports:table_on_page:tablepage6.png?nolink |Рисунок 5. Результат выполнения отчета -- таблица на одной странице }}] | [{{ ru:creating_user_reports:use_macros_in_reports:table_on_page:tablepage6.png?nolink |Рисунок 5. Результат выполнения отчета -- таблица на одной странице }}] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | [<contextnavigator>] | ||
+ | |||
+ |