Редактирование OLE-объекта. Удаление OLE-объекта.
Большинство OLE-объектов можно редактировать. Для этого откройте окно редактирования поля типа General (Общий), содержащее, например, такие OLE-объекты, как электронная таблица Microsoft Excel, документ Word или рисунок Paint, и дважды щелкните мышью. Откроется приложение-сервер для редактирования объекта.
Для редактирования точечных рисунков выберите команду Растровый рисунок Object (Объект) в меню Edit (Правка), а затем команду Изменить или Открыть, которые доступны в окне редактирования поля типа General (Общий). Для редактирования документа Word в меню Edit (Правка) появляется команда Документ Object, а для редактирования электронной таблицы – Лист Object (Объект).
Чтобы удалить OLE-объект из поля типа General (Общий), выполните команду Clear (Очистить) из меню Edit (Правка).
Использование объектно-ориентированного программирования
В Visual FoxPro для управления OLE-объектами можно использовать объектно-ориентированное программирование.
Замечание
Для создания OLE-объекта в Visual FoxPro предназначена команда CREATEOBJECT.
Передача данных в Microsoft Excel с помощью OLE
В рассматриваемом примере используем данные из таблицы Cntcust для построения диаграммы распределения клиентов по городам в программе Microsoft Excel с помощью OLE-объектов.
- В меню File (Файл) выберите команду New (Новый), установите опцию Program (Программа) и нажмите кнопку New file (Новый файл). Откроется новое окно редактирования программ.
- Для установления связи с Microsoft Excel, передачи в него данных и построения диаграммы введите следующие команды:
* Создание OLE-объекта objExcelSheet=CreateObject("Excel.Sheet") objExcelSheet.Application.Visible=.T. objExcelSheet = objExcelSheet.Sheets[1] *Передача данных из таблицы CntCust в Excel SELECT CNTCUST nRow=0 SCAN nRow=nRow+1 objExcelSheet.Cells(nRow,1).Value= CntCust.Город objExcelSheet.Cells{nRow,2).Value=CntCust.Количество ENDSCAN objChart = objExcelSheet. ChartObjects.Add(100, 100, 400, 200) *Выделение данных и создание диаграммы objExcelSheet. ChartObjects(1).Chart.; chartwizard(objExcelSheet.Range(objExcelSheet.Cells(1.1),; objExcelSheet.Cells(nRow,2)),; – 4100.4.1.0.1.1,"","","","") *Копирование диаграммы в буфер обмена Windows objExcelSheet.ChartObjects(1).Select obj ExcelSheet.ChartObj ects(1).Copy *Закрытие сервера objExcelSheet.application.quit release objExcelSheet
- Проверьте синтаксис и запустите программу на выполнение. Результат выполнения программы представлен на рис. 21.13.
Замечание
Наиболее простым способом формирования команд для выполнения действий над OLE-объектами является запись соответствующего макроса на сервере-приложении и использование текста этого макроса в Visual FoxPro.
Рис. 21.13. Создание диаграммы с помощью OLE