![]() |
![]() |
![]() |
|
1c и word перенос строки | ☑ | ||
---|---|---|---|---|
0
bestuzhev
23.03.10
✎
14:19
|
Перерыл весь форум, вопрос такой задавали и не раз ответа нет. По этому еще раз
сть макет activedocument, в нём определены поля типа DocumentVariable. КомОбъект = ПолучитьМакет("ШаблонWord").Получить(); КомОбъект.Variables.Add("ПредметКонкурса", ""); КомОбъект.Variables("ПредметКонкурса").Value = лПредметКонкурса; КомОбъект.ActiveWindow.Visible = Истина; лПредметКонкурса содержит Символы.ПС - при это в вёрд документе вместо переноса строки отображается квардратик (нечитаемый символ). Как экранировать Символы.ПС ? |
|||
1
Fragster
гуру
23.03.10
✎
14:20
|
Симв(10)+Симв(13) катит?
|
|||
2
bestuzhev
23.03.10
✎
14:23
|
(1) Неа, получается 2 квардратика (нечитаемый символ).
|
|||
3
Happy Bear
23.03.10
✎
14:42
|
(0) макрос выдал TypeParagraph
попробуй тогда вместо Символы.ПС вставить КомОбъект.ActiveWindow.Selection.TypeParagraph() |
|||
4
bestuzhev
23.03.10
✎
14:47
|
(3) Вообще ничего не выводит
|
|||
5
Point
23.03.10
✎
14:49
|
(0) тоже интересно. Присоединяюсь
|
|||
6
bestuzhev
23.03.10
✎
14:55
|
Есть зацепка
Если просто выполнить КомОбъект.ActiveWindow.Selection.TypeParagraph(); То переходит на следующую строку. Но как это применить незнаю т.к. в документа просто заменяю параметр. Если писать так КомОбъект.ActiveWindow.Selection.TypeText(Вставляемый текст'); КомОбъект.ActiveWindow.Selection.TypeParagraph(); то все гуд, выводит потом на следующую строку. Но как переместить курсор в нужное место документа. |
|||
7
bestuzhev
23.03.10
✎
14:56
|
http://www.citforum.ru/programming/delphi/delphi_word/index.shtml
Переход к закладке по имени, но как сделать закладку в документе |
|||
8
dk
23.03.10
✎
15:02
|
стрЗаменить(Стр, Символы.ПС, Симв(13)+Симв(10))
--- тока надо строку в ANSI кодировку перегнать из уникода --- наверно )) |
|||
9
dk
23.03.10
✎
15:02
|
это перед передачей в ворд надо сделать
|
|||
10
smaharbA
23.03.10
✎
15:18
|
стрЗаменить(Стр, Символы.ПС, Симв(13))
|
|||
11
Happy Bear
23.03.10
✎
15:32
|
может есть метод проще, но надумал только это:
Для й = 1 По КомОбъект.ActiveWindow.Document.Fields.Count() Цикл Если Найти(КомОбъект.ActiveWindow.Document.Fields(й).Code, "ПредметКонкурса") > 0 Тогда КомОбъект.ActiveWindow.Document.Fields(й).Select(); КомОбъект.ActiveWindow.Selection.TypeText("бла-бла-бла"); КомОбъект.ActiveWindow.Selection.TypeParagraph(); КомОбъект.ActiveWindow.Selection.TypeText("бла-бла-бла"); КонецЕсли; КонецЦикла; |
|||
12
smaharbA
23.03.10
✎
15:47
|
за активе и селект надо лишать наследства
|
|||
13
Happy Bear
23.03.10
✎
15:58
|
(12) ну так человек сказал, что вместо Симв(13) квадрат
|
|||
14
smaharbA
23.03.10
✎
16:00
|
а причем тут квадрат ?
|
|||
15
Happy Bear
23.03.10
✎
16:01
|
(14) смотри (1), (2)
|
|||
16
bestuzhev
23.03.10
✎
17:15
|
Как просто перенести курсор в нужное место? к примеру перед словом "Мама"?
|
|||
17
bestuzhev
23.03.10
✎
18:30
|
Ура! Победил!
Сделал так: С начало в нужном месте добавил Закладку Тыкнул мышкой где надо, потом в главном меню Вставка-Закладка Назвал ее tovar Потом MSWord.ActiveWindow.Selection.GoTo(-1, , , "tovar"); MSWord.ActiveWindow.Selection.TypeText("Бла бла бла"); MSWord.ActiveWindow.Selection.TypeParagraph(); Если 2 последние строки загнать в цикл и менять строку то можно вывести что угодно построчно. Осталась другая проблема как этот макет сохранить в файл |
|||
18
smaharbA
24.03.10
✎
06:08
|
убивать за такой код надо в детстве из рагатки
|
|||
19
smaharbA
24.03.10
✎
06:08
|
(15) и чо там ?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |