 |
Часть 1.Работа с Word
Мы не будем здесь влезать в дебри OLE, его сути и различных тонкостей и отличий от аналогичных технологий. OLE есть OLE и применять его иногда бывает очень полезно. Что же он дает ? Последнне время, большая часть софтверных компаний (по-крайней мере Microsoft) пишут свои приложения как OLE-объекты. Следовательно, мы можем из Foxpro полностью управлять работой таких программ. К таким программам относятся Word, Excel и другие из MS Office, так же Outlook Express и много других. Достаточно хорошо, что можно легко ввести данные в фокспрошную программу, там их обработать, сделать отчет в формате MS Word и отдать начальнику. Так как Word является намного более используемой программой, с него и начнем.
Перед началом работы с ЛЮБЫМ OLE объектом его сначала нужно проиницилизировать. Для Wordа это выглядит следующим образом:
oword=create('word.application')
oword.documents.add()
Здесь происходит загрузка Word в память и создание нового(пустого) документа. Теперь можно указать заголовок окна Wordа:
oword.caption='Word97 Test'
В принципе, можно и не указывать заголовок окна, но возможность такая есть. Это была обязательная часть кода (исключая заголовок) для работы с Wordом. Теперь будем работать непосредственно с созданным документом. Для вставки текста в документ используется метод INSERTAFTER(text), где text - необходимый для вставки текст ;-)
Пример вствки текста в документ:
oword.Selection.insertafter(chr(13)) && вставляем ENTER
oword.Selection.insertafter('DATE: ')
oword.Selection.insertafter(date()) && ... и текущую дату
Точно также можно вставлять несколько ENTERов (отделяя блоки текста)
FOR i = 1 to 3
oword.Selection.insertafter(chr(13))
ENDFOR
И сразу вставлять текст и перевод курсора на следующую строку:
oword.selection.insertafter('Thank you,'+chr(13))
Также можно вставлять разделительные полосы:
oword.selection.insertafter(repl('_',25))
И осталось только снять выделение с введенного текста:
END=oword.activedocument.Bookmarks("\ENDOFDOC").select
Теперь придадим форму самому окну Wordа и сделаем его видимым:
oword.top = 1
oword.left = 1
oword.width = 500
oword.height = 450
oword.visible= .t.
Урок 2. Работа с IE.
Теперь по аналогии работы с Word, мы нмного поуправляем Internet Explorerом. Вообще, чтобы управлять любым OLE объектом достаточно просто узнать все его совйства и методы, но для этого нужно уметь владеть мало-мальским отладчиком (хотя бы отладчиком от фокспро). Для IE есть несколько следующих методов: переход на нужную страницу и заполнение форм.
Попробуем сделать небольшой пример работы с IE.
Сначала нужно определить запущем-ли уже браузер из нашего примера, для этого проверяется определена-ли переменная oie, если нет, то определяем ее как ссылку на объект IE.
IF type ('oie')='U'
PUBLIC oie
oie=createobject('internetexplorer.application')
ENDIF
Теперь с помощью метода Navigate переходим на страничку поиска людей в Yahoo!
oie.navigate('http://www.yahoo.com/search/people')
Делаем небольшую паузу, чтобы бровзер открыл сайт. Если в работе программы будут ошибки из-за медленного Интернет-соединения, то это время нужно увеличть.
lntime=seconds()
DO while seconds()-lntime< 6
ENDDO
Теперь делаем окно IE видимым и заполняем форму.
oie.visible= .t.
Нижеследующие обращения к IE весьма напоминают синтаксис JavaScript, и вы можете почерпнув оттуда свойства сделать с IE что-нибудь ужасное ;-). А что происходит тут: идет обращение(заполнение) полей формы forms(1) значениями имени, фамилии и т.д., где firstname - поле имя и т.п.
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()
Ну а последняя строка кода "нажимает" на кнопку отправить. Вы можете ее временно убрать, чтобы посмотреть как заполняются поля формы.
|
|