Открытые Приложения Automation и серверы Компонент COM могут работать как серверы Автоматизации (Automation Servers), или как Клиенты, использующие общедоступные Компоненты, или как /Приложения, выполняющие одновременно обе роли Сервер-Клиент. Некоторые компоненты данных приложений предоставляют услуги (объекты, их функциональность) другим активным Приложениям, или использовать в своей деятельности общедоступные Объекты других приложений.

Вы можете эффективно использовать разнообразный функционал установленных приложений, например: Microsoft Excel / Word. В тоже время, система Visual FoxPro также может выступать в качестве Сервера, предоставляющего услуги (свои функциональные возможности) другим активным приложениям, эффективно интегрироваться в комплексные программные Пакеты, например Microsoft Office, или другие Приложения, построенные на принципах Компонент COM.

Внедряемые в ваше Приложение объекты OLE, должны поддерживаться OLE-серверами, такими как объекты из Microsoft Excel / Word. Указанными объектами могут быть обычные текстовые Документы Word, или Таблицы Excel. В пользовательских Формах рассматриваемые внешние Объекты размещаются с помощью соответствующих Контролов или контейнеров OLE, данные объекты вы можете также разместить в полях типа General пользовательских таблиц, или отобразить их на формах с помощью контролов OLE Bound.

В разрабатываемых Приложениях Visual FoxPro технологии OLE и ActiveX могут быть использованы в разных вариантах. Сначала попытайтесь рассмотреть данные варианты внедрения этих технологий в ваше Приложение.

Связывание или Вложение объектов OLE (Linking or Embedding OLE Objects)

Внешние объекты OLE из других приложений Windows могут быть привязаны или внедрены в ваши Формы или Таблицы. Например, вы можете разместить некоторый документ Word в соответствующее поле типа General некоторой Таблицы, аналогичную операцию можно выполнить для внешней Рабочей книги Excel.

Различия между указанными вариантами Связывания или Внедрения заключается в физическом местоположении самого внешнего объекта. При Внедрении объект физически размещается в соответствующей Форме или Таблице, при Связывании - объект остается "физически внешним". Например, когда вы Внедряете рабочую книгу Excel в свою форму, данная форма содержит копию указанной рабочей книги. Однако, когда вы Связываете данный объект с Формой, в этой форме хранится только ссылка на внешний объект, сама Рабочая книга остается на своем прежнем месте.

Для обоих случаев, Связывания и Внедрения, непосредственные данные внешнего объекта сначала обрабатываются соответствующим Сервером, который предоставил данный объект.

В условиях Связывания - если изменяется объект-источник, то изменяются данные и в вашей Форме; в условиях Внедрения - данные автоматически не изменяются:

Связанные Данные обновляются и в Форме

LinkedDataFormUpdated screeenshot foxpro

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

Использование Связанных или Несвязанных объектов OLE

Для пользовательских Форм или Отчетов вы можете создавать необходимые Контролы, основанные на связанных полях типа General из пользовательских Таблиц. В этом случае рекомендуется использовать соответствующий системный контрол bound OLE objects, который позволит вам отобразить внешний объект OLE посредством соответствующего поля типа General. Стандартный объект-контейнер OLE Bound control размещен в соответствующем Form Controls Toolbar.  Кроме того, вы можете использовать внешний Несвязанный объект OLE, для этого используется соответствующий OLE Container control. Однако, несвязанные объекты OLE не поддерживаются для полей типа General.

См. также