Программирование >>  Разработка пользовательского интерфейса 

1 ... 112 113 114 [ 115 ] 116 117 118 ... 147


Application.Workbooks.Item(1)

Для того чтобы закрыть первую книгу Application.Workbooks.Item(1).Close

в коллекции:

В свою очередь каждая рабочая книга содержит коллекцию рабочих листов, каждый рабочий лист - коллекцию ячеек и т. д. В программе сослаться на ячейку A1 можно таким образом:

Application.Workbooks.Item(1).Worksheets.Item( Sheet1 ).Cells.Item(1,1)

Как видно из приведенных примеров, мы должны разбираться в коллекциях для того, чтобы иметь возможность спускаться вниз по иерархии объектов. На рис. 10.1 приведена схема такого перемещения между объектами Microsoft Excel.

Application

Wcrkboo<

l Wortshests

Workshesl

ccbinia на оцим лист

Рис. 10.1. Перемещение вниз по иерархии объектов с помощью коллекций в Microsoft Excel

Принцип перемещения вверх по иерархии более привычен для программиста, освоившего объектно-ориентированное программирование. Для этого используется свойство Parent и пока отсутствующее в Visual FoxPro, но привычное для приложений Microsoft Office свойство Application. Соответствующая схема для использования этих свойств приведена на рис. 10.2.

из-за команды FOR, которая не поддерживается в интерактивном режиме командного окна. Вам также может показаться, что в этом фрагменте лишней является переменная nCount. Это не так! При использовании OLE Automation не встраивайте ее код внутрь команд Visual FoxPro. Запустите программный файл.

Как вы могли заметить из приведенного примера, для ссылки на одну рабочую книгу в коллекции мы применяли метод Item, в котором используется номер элемента коллекции. Для ссылки на первую рабочую книгу в коллекции укажите:



Afjpliualiun

Workbooks

Wine OWE

Ч Chart Apt:iliu3licin чоршймот c&Ksirr приложения

Wcrkboo-f

l Charts

Panes

Рис. 10.2.

Chart

РапеРэгегс зозззэнет

При использовании OLE Automation очень важным понятием является понятие объектов верхнего уровня.

В каждом приложении объекты верхнего уровня позволяют ссылаться на них из другой программы.

Имеющиеся, например, в Microsoft Excel объекты верхнего уровня представлены на рис. 10.3.

Обеспечивает доступ ко всем о&ъенп ам

и фуМКЦИНГу! приложи! 1ИЯ

Включает ье объекты и данные, - ссдсрокащиося в одном файле

Application

Workbook

Chart

Sheet

Add-in

Включает графические объдкты - для предота&ления данньу

Включает и сбеспечиБает выполнение расчетов с данными в таблице

Обеспечивает достт-п к дополнительным федствам прилол ния

Рис. 10.3.

Несколько ранее вы, наверное, уже обратили внимание, что ссылка на вновь создаваемый объект OLE Automation в программе Visual FoxPro выполняется так же, как при не визуальном программировании на новый объект самого Visual FoxPro - с помощью функции

CREATEOBJECT(ClassName [, eParameter1, eParameter2, ...])

Если OLE-объект уже существует, получить на него ссылку можно с помощью функции



GETOBJECT([FileName ][, ClassName])

Параметр FileName позволяет указать имя существующего файла (и при необходимости путь к нему), содержащего OLE-объект, который необходимо активизировать. С помощью параметра ClassName можно указать имя объекта верхнего уровня (класс OLE-объекта). Это необходимо в том случае, если, как мы это показали на примере Microsoft Excel, в приложении в одном файле может храниться несколько объектов верхнего уровня, например таблицы, графики и т. д. В данном случае для параметра должен использоваться следующий синтаксис:

<< Имя приложения >>.<< Имя объекта верхнего уровня >> Например:

oSht = GETOBJECT( C:\VFP\SAMPLE\VAT.XLS , EXCEL.SHEET )

В Visual Basic и соответственно Access мы можем использовать аналогичные функции, но для обеспечения ссылки на объект необходимо применять оператор Set, как показано в следующих примерах:

В первом примере создаем объект MS Excel Dim oExlApp As Object

Объявляем переменную для ссылки на объект Set oExlApp = CreateObject( Excel.Application ) Создаем объект

oExlApp.Visible = True Выводим объект на экран

oExlApp.Quit После окончания работы закрываем Excel Set oExlApp = Nothing Стираем ссылку на объект из памяти Во втором примере ссылаемся на объект MS Excel Dim oExlApp As Object

Set oExlApp = GetObject( C:\VFP\SAMPLE\VAT.XLS , Excel.Sheet ) Set oExlApp = Nothing

Управление объектами Excel

Для того чтобы остановиться на проблемах взаимодействия пользовательского приложения с объектами Excel, нам придется более подробно обсудить специфические в данном случае особенности работы функций CREATEOBJECT() и GETOBJECT(). Поэтому систематизируем необходимые данные для важнейших объектов верхнего уровня Microsoft Excel и приведем их в табл. 10.2.

Таблица 10.2. Поведение объектов верхнего уровня Microsoft Excel Объект Функция Описание поведения

Application CreateObject Всегда запускает невидимую

копию Microsoft Excel. Файл рабочей книги не загружается.

GetObject Если параметр FileName

представляет собой пустую строку, запускается новая невидимая копия Microsoft Excel без загрузки файла рабочей книги. Если параметр пропущен, то предпринимается попытка получить ссылку на уже запущенную копию Microsoft Excel и в случае неудачи генерируется ошибка. Не указывайте в параметре FileName имя файла. Для этого случая используйте объекты Sheet или Chart.

Sheet или CreateObject Если не существует



1 ... 112 113 114 [ 115 ] 116 117 118 ... 147

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика