OLE: работа с MS Word и IE

Мы не будем здесь влезать в дебри OLE, его сути и различных тонкостей и отличий от аналогичных технологий. OLE есть OLE и применять его иногда бывает очень полезно. Что же он дает ?

Часть 1.Работа с Word

Мы не будем здесь влезать в дебри OLE, его сути и различных тонкостей и отличий от аналогичных технологий. OLE есть OLE и применять его иногда бывает очень полезно. Что же он дает ? Последнне время, большая часть софтверных компаний (по-крайней мере Microsoft) пишут свои приложения как OLE-объекты. Следовательно, мы можем из Foxpro полностью управлять работой таких программ. К таким программам относятся Word, Excel и другие из MS Office, так же Outlook Express и много других. Достаточно хорошо, что можно легко ввести данные в фокспрошную программу, там их обработать, сделать отчет в формате MS Word и отдать начальнику. Так как Word является намного более используемой программой, с него и начнем.
Перед началом работы с ЛЮБЫМ OLE объектом его сначала нужно проиницилизировать. Для Wordа это выглядит следующим образом: [code] oword=create('word.application') oword.documents.add() [/code] Здесь происходит загрузка Word в память и создание нового(пустого) документа. Теперь можно указать заголовок окна Wordа: [code] oword.caption='Word97 Test' [/code] В принципе, можно и не указывать заголовок окна, но возможность такая есть. Это была обязательная часть кода (исключая заголовок) для работы с Wordом. Теперь будем работать непосредственно с созданным документом. Для вставки текста в документ используется метод INSERTAFTER(text), где text - необходимый для вставки текст 😉
Пример вствки текста в документ: [code] oword.Selection.insertafter(chr(13)) && вставляем ENTER oword.Selection.insertafter('DATE: ') oword.Selection.insertafter(date()) && ... и текущую дату [/code] Точно также можно вставлять несколько ENTERов (отделяя блоки текста) [code] FOR i = 1 to 3 oword.Selection.insertafter(chr(13)) ENDFOR [/code] И сразу вставлять текст и перевод курсора на следующую строку: [code] oword.selection.insertafter('Thank you,'+chr(13)) [/code] Также можно вставлять разделительные полосы: [code] oword.selection.insertafter(repl('_',25))[/code] И осталось только снять выделение с введенного текста: [code] END=oword.activedocument.Bookmarks("ENDOFDOC").select[/code] Теперь придадим форму самому окну Wordа и сделаем его видимым: [code] oword.top = 1 oword.left = 1 oword.width = 500 oword.height = 450 oword.visible= .t. [/code]

Урок 2. Работа с IE.

Теперь по аналогии работы с Word, мы нмного поуправляем Internet Explorerом. Вообще, чтобы управлять любым OLE объектом достаточно просто узнать все его совйства и методы, но для этого нужно уметь владеть мало-мальским отладчиком (хотя бы отладчиком от фокспро). Для IE есть несколько следующих методов: переход на нужную страницу и заполнение форм.
Попробуем сделать небольшой пример работы с IE.
Сначала нужно определить запущем-ли уже браузер из нашего примера, для этого проверяется определена-ли переменная oie, если нет, то определяем ее как ссылку на объект IE.
[code] IF type ('oie')='U' PUBLIC oie oie=createobject('internetexplorer.application') ENDIF [/code] Теперь с помощью метода Navigate переходим на страничку поиска людей в Yahoo! [code] oie.navigate('http://www.yahoo.com/search/people') [/code] Делаем небольшую паузу, чтобы бровзер открыл сайт. Если в работе программы будут ошибки из-за медленного Интернет-соединения, то это время нужно увеличть. [code] lntime=seconds() DO while seconds()-lntime< 6 ENDDO [/code] Теперь делаем окно IE видимым и заполняем форму. [code] oie.visible= .t. [/code] Нижеследующие обращения к IE весьма напоминают синтаксис JavaScript, и вы можете почерпнув оттуда свойства сделать с IE что-нибудь ужасное ;-). А что происходит тут: идет обращение(заполнение) полей формы forms(1) значениями имени, фамилии и т.д., где firstname - поле имя и т.п. [code] oie.document.script.window.document.forms(1).firstname.value = "john" oie.document.script.window.document.forms(1).lastname.value = "harvey" oie.document.script.window.document.forms(1).city.value = "memphis" oie.document.script.window.document.forms(1).state.value = "tn" oie.document.script.window.document.forms(1).submit() [/code] Ну а последняя строка кода "нажимает" на кнопку отправить. Вы можете ее временно убрать, чтобы посмотреть как заполняются поля формы.

Автор: Неизвестно

Автор публикации

не в сети 1 месяц

Joys

2
Комментарии: 4Публикации: 227Регистрация: 25-06-2000
0
Вложенные файлы
#
Тип файла
Размер
Название
1 .zip 728,00 Б 49ole
Оставить комментарий
Авторизация
*
*
Генерация пароля