|
Формирование печатной формы MS Word из макета. Как выводить оди макет на несколько страниц | ☑ | ||
---|---|---|---|---|
0
slnes
02.05.18
✎
10:12
|
Делаю печатную форму которая формируется в MS Word, примерно вот так
Для н = 1 по 10 Цикл Макет = ПолучитьМакет("Макет"); Word = Макет.Получить(); Doc = Word.Application.Documents(1); Doc.Activate(); Doc.Content.Find.Execute("{Параметр}",Ложь,Истина,Ложь,,,Истина,,Ложь,"Параметр1"); Word.Application.Visible = Истина; Word.Activate(); КонецЦикла В результате открывается 10 документов. Подскажите пожалуйста как вывести это в один документ ворд на 10 листов? |
|||
1
Chameleon1980
02.05.18
✎
10:28
|
за цикл не пробовал выносить:
Doc = Word.Application.Documents(1); Doc.Activate(); ? |
|||
2
Chameleon1980
02.05.18
✎
10:28
|
Макет = ПолучитьМакет("Макет");
Word = Макет.Получить(); Doc = Word.Application.Documents(1); Doc.Activate(); |
|||
3
Chameleon1980
02.05.18
✎
10:28
|
Word.Application.Visible = Истина;
Word.Activate(); |
|||
4
Chameleon1980
02.05.18
✎
10:29
|
а я не понял
ты чего вообще делаешь то? |
|||
5
Chameleon1980
02.05.18
✎
10:34
|
макросы - начать запись - вставить разделитель - закончить запись - смотреть код макроса
|
|||
6
Chameleon1980
02.05.18
✎
10:43
|
Selection.InsertBreak Type:=wdPageBreak
wdPageBreak = 7 какой-то |
|||
7
slnes
02.05.18
✎
10:46
|
(1)-(3) Параметр1 изменяется - забыл сказать, и вынос за цикл выведет документ один раз с первым значением параметра.
(4) Мне нужно как то после этого разделителя макет скопировать на новый лист, и потом вставить туда новый параметр (6) что такое Selection? и что с этим делать непонятно |
|||
8
Chameleon1980
02.05.18
✎
10:49
|
ну тогда тебе с нуля надоть искать примеры работы с Word
это о вопросе с "Selection", наример |
|||
9
slnes
02.05.18
✎
10:50
|
(8) я кучу примеров нашел, но то метод не найден то ещё чего, мнеб рабочий примерчик для word 2010
|
|||
10
Chameleon1980
02.05.18
✎
10:51
|
||||
11
Chameleon1980
02.05.18
✎
10:51
|
//Получаем выделенную область
Selection = Object.Application.Selection; |
|||
12
Chameleon1980
02.05.18
✎
10:54
|
а просто
Doc.InsertBreak(7); не пробовал? ну и чепятай на каждом или тебе параметры печати поменять может просто? |
|||
13
slnes
02.05.18
✎
10:57
|
(10) читал у меня шаблон с параметрами уже готовый в макетах Макет = ПолучитьМакет("Макет"); Word = Макет.Получить(); не подходит оно мне.
(12) от того что я вставлю разрыв страницы шаблон туда не перенесется и получится только первое значение параметра с 10 переносами строк |
|||
14
slnes
02.05.18
✎
10:59
|
Надо как то так:
1. Скопировать шаблон 2. Вставить шаблон в документ 3. Заменить параметры 4. Вставить разрыв страницы и опять с 2 -го |
|||
15
Chameleon1980
02.05.18
✎
11:03
|
(14) ну значит некоторое выноси за цикл
раз у тебя 10 доков создалось я не работая с водр программно и то смею это логически предположить. блин обленился народ |
|||
16
Chameleon1980
02.05.18
✎
11:04
|
ну и типовые посмотреть решения не?
|
|||
17
Chameleon1980
02.05.18
✎
11:10
|
может что-то типа запомнить все (область) перед заполнением
потом заполнить потом вставить разделитель вставить запомненное заполнить вставленное и т.д. ? |
|||
18
Chameleon1980
02.05.18
✎
11:11
|
Sub CopyPaste()
' ' CopyPaste Ìàêðîñ ' ' Selection.Copy Selection.InsertBreak Type:=wdPageBreak Selection.PasteAndFormat (wdFormatOriginalFormatting) End Sub |
|||
19
Chameleon1980
02.05.18
✎
11:12
|
wdFormatOriginalFormatting=16
|
|||
20
slnes
02.05.18
✎
11:32
|
Ничего не получается
Задам вопрос снова с исправлением Делаю печатную форму которая формируется в MS Word, примерно вот так Для н = 1 по 10 Цикл Макет = ПолучитьМакет("Макет"); Word = Макет.Получить(); Doc = Word.Application.Documents(1); Doc.Activate(); Doc.Content.Find.Execute("{Параметр}",Ложь,Истина,Ложь,,,Истина,,Ложь,"Параметр"+строка(н)); Word.Application.Visible = Истина; Word.Activate(); КонецЦикла В результате открывается 10 документов. Подскажите пожалуйста как вывести это в один документ ворд на 10 листов? |
|||
21
Chameleon1980
02.05.18
✎
11:40
|
ну блин.
видимо, это только в конце MSWord.Application.Visible = Истина; MSWord.Activate(); |
|||
22
slnes
02.05.18
✎
12:54
|
(21) ну нет тогда получим один {параметр1} на странице и только один раз.
Уже при втором проходе в документе не будет найден {Параметр}, т.к. он будет заменен на Параметр1 при первом проходе цикла |
|||
23
slnes
02.05.18
✎
12:56
|
в (21) ошибся, вместо {параметр1} надо написать Параметр1
|
|||
24
K1RSAN
02.05.18
✎
14:07
|
(23) А нельзя сначала использовать ТабличныйДокумент, туда и разделители страниц и текст напихать, а потом то, что получилось вставить в Word документ?
Получается ты формируешь 10 раз в Word кусочек текста, а что мешает скомпановать 10 кусочков в один (с разделителями), и готовый кусман отправить в Word 1 раз? |
|||
25
slnes
02.05.18
✎
14:15
|
(24) У меня там шаблон из 5 листов и 10 параметров, в реальном варианте перебирается результат запроса, это я сократил что бы много не читать. И шаблон у меня ворд уже есть. Мне бы содержимое шаблона скопировать и после разравы страницы вставлять и заполнять.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |