Перейти к содержимому

Фотография

Word


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 OlgaV

OlgaV

    Новый участник

  • Members
  • Pip
  • 38 сообщений
  • Город:Киев


Отправлено 06 декабря 2006 - 11:31

и еще вопрос.
в процессе работы приложения формируется вордовский документ. Документ сложный - с полями (fields), которые заполняются данными из базы.
Мне надо проверить правильность заполнения документа.
Как это можно сделать Силком? если я через буфер считываю текст документа, поля теряются- превращаются в текст....
И к тому же, важно положение курсора в тексте - надо определить ,где именно в документе он находится...
Да, вордовский документ определился как текстовое поле.
в какую сторону копать?
  • 0

#2 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 06 декабря 2006 - 12:56

и еще вопрос.
в процессе работы приложения формируется вордовский документ. Документ сложный - с полями (fields), которые заполняются данными из базы.
Мне надо проверить правильность заполнения документа.
Как это можно сделать Силком? если я через буфер считываю текст документа, поля теряются- превращаются в текст....
И к тому же, важно положение курсора в тексте - надо определить ,где именно в документе он находится...
Да, вордовский документ определился как текстовое поле.
в какую сторону копать?

В сторону работы с объектами соответствующего класса. Если это текстовое поле, которое распознается как TextField, то у данного класса есть метод GetPosition, который позволяет определить положение курсора.

Текст можно попробовать поизвлекать через свойство lsValue.

В общем, если распознается окно как экземпляр стандартного класса, то естественно надо копать этот класс
  • 0

#3 OlgaV

OlgaV

    Новый участник

  • Members
  • Pip
  • 38 сообщений
  • Город:Киев


Отправлено 06 декабря 2006 - 15:00

попробовала получить текст через lsValue
Ругается
*** Error: Window type mismatch - Expecting a multiple line text field :hi:
проверила свойство - bIsMulti - оно False
становить это свойство в TRUE нельзя - метода Set у него нет.
Метод GetContent() возвращает просто строку "Microsoft Word Document"

можно через буфер, но мы теряем место курсора.
и опять же - поля превращаются просто в текст...
и формат теряется...
  • 0

#4 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 06 декабря 2006 - 15:09

Ну, если поле однострочное, то не помешает проверить, что возвращает свойство sValue. Если вернет то же, что и GetContents() или вообще какую-то ерунду ( а скорее всего так и произойдет ), то тогда все-таки придется через Clipboard работать. Формат потеряется, но только частично. Clipboard хранит данные в списках строк. Так что нужные участки все-таки можно локализовать
  • 0

#5 OlgaV

OlgaV

    Новый участник

  • Members
  • Pip
  • 38 сообщений
  • Город:Киев


Отправлено 06 декабря 2006 - 17:23

именно такую ерунду и возвращает...
буфер теряет место курсора
буфер не дает доступа к филдам... я их просто уже никак не отличу от обычного текста...
получется, мне просто нужно искать значение из базы в тексте, извлеченном из буфера. и если находится, считать, что это именно нужное заполненное поле.
  • 0

#6 Yury

Yury

    Опытный участник

  • Members
  • PipPipPipPip
  • 258 сообщений
  • ФИО:Yury

Отправлено 06 декабря 2006 - 17:56

... вордовский документ. Документ сложный - с полями (fields) ...

COM interface?
  • 0

#7 OlgaV

OlgaV

    Новый участник

  • Members
  • Pip
  • 38 сообщений
  • Город:Киев


Отправлено 07 декабря 2006 - 09:00

а это что такое?
  • 0

#8 VegaX

VegaX

    Активный участник

  • Members
  • PipPip
  • 85 сообщений

Отправлено 07 декабря 2006 - 10:45

А это одна такая хорошая вещь, которую Силк Тест не поддерживает (насколько я помню).
  • 0

#9 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 07 декабря 2006 - 10:56

... вордовский документ. Документ сложный - с полями (fields) ...

COM interface?

Просмотр сообщения

Офис (и ворд в частности) поддерживает ОЛЕ-автоматизацию, т.е. Вы можете в любом приложении работать с вордовским документом как с объектом (если приложение поддерживает хотя бы COM, а еще лучше OLE, котрое основывается над COM)
В принципе - можно написать внешнюю dll-ку, которая будет работать от вашего имени с Word-ом, надо только будет подумать - как вы будет передавать в нее данные и как получать результат.
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных