![]() |
![]() |
|
1С->Word по OLE. Как удалить страницу? Ø |
☑ | ||
---|---|---|---|---|
0
Zam
14.12.05
✎
07:38
|
Есть договор в ворде (шаблон). У договора 4 страницы. В зависимости от некоторых условий при формировании договора удаляется либо 3, либо 4 страница. Подскажите плиз как.
|
|||
1
Zam
14.12.05
✎
08:01
|
1С:Предприятие 7.7
:) |
|||
2
Sasha
14.12.05
✎
08:03
|
Хм, а просто распечатывать либо без третьей, либо без четвертрой страницы не катит. Вообще-то в Word'е страницы удаляютс удалением текста с него...
|
|||
3
banda
14.12.05
✎
08:04
|
переведи договор в формат Excel,
а дальше я тебе помогу |
|||
4
smaharbA
14.12.05
✎
08:17
|
Поставь разрыв - новый раздел со следующей страницы на всех страницах шаблона и
Documents(1).Sections(3).Range.Delete |
|||
5
Zam
14.12.05
✎
08:18
|
(2) Про удаление страницы с удалением текста это я знаю :) У мну договор ЗАПОЛНЯЕТСЯ из 1С. И если будут все страницы - это будет геморно очень, во всяком случае с таким подходом, который я реализую. Проще найти метод который удалит страницу.
(3) Брр.... Форматирование и все такое... Можно конечно в Ексель, но надеюсь что разберусь с Вордом :) |
|||
6
smaharbA
14.12.05
✎
08:20
|
Я что опять невидимка ?
|
|||
7
Zam
14.12.05
✎
08:29
|
(6)Нет. С чего ты решил? :) Когда я писал свой пост, твоего еще не было. Потом я увидел твой пост, и начал делать так как ты говоришь, пока еще не все получилось, но вроде это то что мне надо. Если не получится напишу :)
|
|||
8
Zam
14.12.05
✎
09:17
|
(4) Не получается, вернее не совсем получается. Весь текст, все удаляется, но страница пустой остается.
|
|||
9
smaharbA
14.12.05
✎
09:24
|
(8) Все удаляется, скажи подробнее что делал и код, хотя там кодато 1 строка...
|
|||
10
Zam
14.12.05
✎
09:58
|
Такое ощущение, что не там поставли разрыв. Но блин, ставлю в начале страницы... Куда еще его ставить....
|
|||
11
Gloom
14.12.05
✎
10:02
|
Так можно удалить (непоследнюю страницу):
============================================= диапазон=myDocument.goTo(1,1,номерСтраницы); началоДиапазона=диапазон.start; диапазон=myDocument.goTo(1,1,номерСтраницы); диапазон.start=началоДиапазона; диапазон.delete(); |
|||
12
smaharbA
14.12.05
✎
10:03
|
(11) "поплывет" если разделов нету...
|
|||
13
Gloom
14.12.05
✎
10:04
|
+11 Упс, очепятался, вот так правильно:
============================================= диапазон=myDocument.goTo(1,1,номерСтраницы);//второй параметр - wdGoToAbsolute началоДиапазона=диапазон.start; диапазон=myDocument.goTo(1,2,номерСтраницы);//второй параметр - wdGoToNext диапазон.start=началоДиапазона; диапазон.delete(); |
|||
14
smaharbA
14.12.05
✎
10:07
|
(10) ставь в конце каждой "новый раздел со следующей"
|
|||
15
Zam
14.12.05
✎
10:26
|
(13) Последняя удаляется, а вот предпоследняя нет :(
|
|||
16
Zam
14.12.05
✎
10:33
|
+(15) Вернее наоборт :) Надо чтобы удалил 3 страницу из 4, удаляет. Когда нужно чтобы удалил 4 из 4, не удаляет.
|
|||
17
Gloom
14.12.05
✎
10:53
|
(16)Ну, дык, я ж в (11) так и написал - "непоследнюю страницу". Последнюю
можно так грохнуть: ============================================= диапазон=myDocument.goTo(1,1,номерПоследнейСтраницы); началоДиапазона=диапазон.start; диапазон=myDocument.range; диапазон.start=началоДиапазона; диапазон.delete(); |
|||
18
Zam
14.12.05
✎
10:54
|
Я так понимаю проблема с этим
"второй параметр - wdGoToNext" т.е. следующая страница, которой собственно говоря и нет... Значит туда нужно что-то другое передавать? |
|||
19
Zam
14.12.05
✎
10:57
|
Спасибо. Уже второй раз выручаешь с Вордом :)
|
|||
20
Zam
14.12.05
✎
11:03
|
Когда писал 18, 17 еще не увидел :)
|
|||
21
Zam
14.12.05
✎
11:09
|
Одна маленькая проблемка. При удалении последней страницы - все удаляется, но сама страница остается. Пустая, но все равно есть. Мелочь, а не приятно :)
|
|||
22
Gloom
14.12.05
✎
11:31
|
(21)Значит на предыдущей странице PageBreak(символ с кодом 12) вставлен...
|
|||
23
smaharbA
14.12.05
✎
11:36
|
это от разделов осталось...
А с разделами всеже правильнее... |
|||
24
Zam
14.12.05
✎
11:37
|
(22) А как поглядеть/убрать?
|
|||
25
smaharbA
14.12.05
✎
11:47
|
(24) руками, так - нажми кнопочку Пи...
программно Documents(1).Range.Find.Execute("^m", , , , , , , , , "") |
|||
26
Gloom
14.12.05
✎
11:48
|
(24)
Если КодСимв(myDocument.range(началоДиапазона-1).Characters(1).text)=12 Тогда диапазон.start=началоДиапазона-1; ... |
|||
27
Zam
14.12.05
✎
11:48
|
(23) Нет, я заново сделал файл из двух. Может и правильнее, тока заморочено чуток. Я плоховато в Ворде ориентируюсь, мне проще в 1С алгоритм прописать.
|
|||
28
Zam
14.12.05
✎
12:03
|
(25, 26) Не катит...
Включил кнопку Пи, вроде постарался перевод строки убрать везде, где можно. Но с предыдущей страницы неполучается убрать, вернее когда убираешь текст поднимается вверх. И еще, после текста на последней странице знак Пи стоит, и никак не убирается. Я так понимаю так и должно быть? |
|||
29
Zam
14.12.05
✎
12:07
|
(26) НачалоДиапазона - 10 помогло :)))))
Думаю и меньше десяти хватит |
|||
30
Zam
14.12.05
✎
12:09
|
Gloom и smaharbA
Большое вам спасибо :) Все работает так как надо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |