Мир объектов Excel 2000

Компонент Data Source


Компонент Data Source (DSC), оставаясь невидимым, выполняет большую работу по связыванию с различными внешними источниками данных, построению и выполнению команд по их доставке. В свою очередь он служит, как правило, источником данных для других компонент OWC - SpreadSheet, Chart, Pivot Table. Этот компонент несет основную нагрузку по доставке данных и при работе со страницами доступа данных в Access (Access 2000 Data Access Pages).

Так как DSC реализует стандартный интерфейс источников данных - IDataSource Interface, - определенный и поддерживаемый Internet Explorer (начиная с версии 5) и Visual Basic (начиная с версии 6), то эти контейнеры воспринимают его как правильный источник данных. Это означает, что при размещении компонента DSC на Web-странице или на форме Visual Basic он может служить источником данных для других элементов, расположенных на этой странице или форме.

Замечу, что не только DSC, но и другие компоненты OWC могут служить источниками данных и удовлетворяют интерфейсу IDataSource. Так, компонент SpreadSheet может поставлять данные компонентам Chart и Pivot Table, а последний, в свою очередь, может поставлять данные для компонента Chart.

Источники данных имеют достаточно сложную структуру и состоят из наборов данных, называемых элементами (членами) источника - Data Member. Каждый такой элемент задает некоторый набор данных - Recordset, который может использоваться при связывании источника данных с тем или иным элементом, расположенным на Web-странице. Для компонента SpreadSheet в качестве элемента источника - Data Member - может использоваться любой диапазон его ячеек. Для компонента DSC элементы источника следует определять. Эти определения элементов составляют специальную коллекцию - RecordsetDefs.

В детали объектной модели этого компонента я углубляться не буду. Вместо этого я приведу пример, в котором на Web-странице строится круговая диаграмма по данным внешнего источника - базы данных Access. Посредником в связывании данных будет выступать компонент Data Source. На этом примере я постараюсь прояснить и роль Data Member, и роль RecordsetDefs.

Прежде чем перейти к примеру, хочу отметить следующее. Надеюсь, понятно, что поскольку элемент является невидимым, то никакого интерфейса у него нет, так что общение с ним возможно только на программном уровне. Поэтому в данном разделе я приведу достаточно большой кусок программного кода. Следует заметить также, что элемент действительно невидим в момент выполнения, например при просмотре Web-страницы в Internet Explorer. Однако в режиме проектирования, например, при открытии страницы в приложении FrontPage, местоположение элемента отмечается небольшим значком с изображением ключа -

.



Содержание раздела