Имя: Пароль:
1C
 
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) и чо там ?