Word
#1
Отправлено 06 декабря 2006 - 11:31
в процессе работы приложения формируется вордовский документ. Документ сложный - с полями (fields), которые заполняются данными из базы.
Мне надо проверить правильность заполнения документа.
Как это можно сделать Силком? если я через буфер считываю текст документа, поля теряются- превращаются в текст....
И к тому же, важно положение курсора в тексте - надо определить ,где именно в документе он находится...
Да, вордовский документ определился как текстовое поле.
в какую сторону копать?
#2
Отправлено 06 декабря 2006 - 12:56
В сторону работы с объектами соответствующего класса. Если это текстовое поле, которое распознается как TextField, то у данного класса есть метод GetPosition, который позволяет определить положение курсора.и еще вопрос.
в процессе работы приложения формируется вордовский документ. Документ сложный - с полями (fields), которые заполняются данными из базы.
Мне надо проверить правильность заполнения документа.
Как это можно сделать Силком? если я через буфер считываю текст документа, поля теряются- превращаются в текст....
И к тому же, важно положение курсора в тексте - надо определить ,где именно в документе он находится...
Да, вордовский документ определился как текстовое поле.
в какую сторону копать?
Текст можно попробовать поизвлекать через свойство lsValue.
В общем, если распознается окно как экземпляр стандартного класса, то естественно надо копать этот класс
#3
Отправлено 06 декабря 2006 - 15:00
Ругается
*** Error: Window type mismatch - Expecting a multiple line text field
проверила свойство - bIsMulti - оно False
становить это свойство в TRUE нельзя - метода Set у него нет.
Метод GetContent() возвращает просто строку "Microsoft Word Document"
можно через буфер, но мы теряем место курсора.
и опять же - поля превращаются просто в текст...
и формат теряется...
#4
Отправлено 06 декабря 2006 - 15:09
#5
Отправлено 06 декабря 2006 - 17:23
буфер теряет место курсора
буфер не дает доступа к филдам... я их просто уже никак не отличу от обычного текста...
получется, мне просто нужно искать значение из базы в тексте, извлеченном из буфера. и если находится, считать, что это именно нужное заполненное поле.
#6
Отправлено 06 декабря 2006 - 17:56
COM interface?... вордовский документ. Документ сложный - с полями (fields) ...
#7
Отправлено 07 декабря 2006 - 09:00
#8
Отправлено 07 декабря 2006 - 10:45
#9
Отправлено 07 декабря 2006 - 10:56
Офис (и ворд в частности) поддерживает ОЛЕ-автоматизацию, т.е. Вы можете в любом приложении работать с вордовским документом как с объектом (если приложение поддерживает хотя бы COM, а еще лучше OLE, котрое основывается над COM)COM interface?... вордовский документ. Документ сложный - с полями (fields) ...
В принципе - можно написать внешнюю dll-ку, которая будет работать от вашего имени с Word-ом, надо только будет подумать - как вы будет передавать в нее данные и как получать результат.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных