Опубликован: 13.09.2006 | Уровень: для всех | Доступ: свободно | ВУЗ: Тверской государственный университет
Лекция 10:

Возможности и применение Office Web-компонентов

Методы объекта Range

Что касается методов объекта Range, то их чуть более 20, и практически все они наследованы от объекта Excel.Range. Из специфических методов можно упомянуть лишь два:

  • LoadText - позволяет загружать данные из текстового файла в заданную область. Об этом методе я уже говорил при описании объекта SpreadSheet.
  • FreezePanes - "замораживает" подокно. Вот небольшой пример. В предыдущей процедуре можно видеть следующие строчки:
'Замораживание подокна
			myr.FreezePanes myc.ssFreezeTop

В результате действия этого оператора произошло расщепление окна, и окружающее сверху подокно было заморожено, так что, например, прокрутка не оказывает действие на это подокно - оно всегда видимо. Заметьте, на рисунке 10.5 видна черта, отделяющая подокна.

Я уже говорил о том, что можно делать с помощью методов объекта Range. Напомню, - можно выполнять фильтрацию, сортировку и поиск данных в пределах области. Можно осуществлять чистку содержимого и формата, удалять и вставлять столбцы и строки и ряд других подобных операций.

На этом я закончу рассмотрение объектной модели компонента SpreadSheet. Я специально достаточно подробно рассмотрел эту модель, чтобы показать, что объекты OWC построены также как и все остальные объекты Office 2000, и работа с этими объектами ведется аналогичным образом. Для других компонентов OWC я не буду уже столь подробно разбирать объектную модель, а ограничусь кратким обзором и примерами.

Компонент Chart

Говоря о замечательных свойствах приложения Excel, на первое место я поставил его машину вычислений. Второе место по справедливости занимает способность Excel представлять данные в наглядной графической форме. Казалось бы, что представление данных, хранящихся в таблицах, столь же информативно, как и их отображение в виде графиков и гистограмм. Более того, понятно, что информация, хранимая в больших таблицах Excel или в различных хранилищах данных, значительно более полна в сравнении с той, которая может быть отображена в тех или иных графиках и гистограммах. Однако для человека графическая форма представления информации является более приемлемой, позволяя ему значительно быстрее воспринять информацию, обработать ее, осознать тенденции процессов, показанных на графиках, что, в конечном итоге, позволяет быстро принять необходимые решения. Компонент Chart реализует практически в полном объеме все возможности Excel по визуализации данных - представлению их в графической форме.

Типы диаграмм

Также как, во многом, мощь машины вычислений Excel определяется разнообразием функций, составляющих ее библиотеку, так мощь визуализации определяется разнообразием возможных типов диаграмм. Элемент Chart сохранил это многообразие, отказавшись, правда, от объемных, трехмерных изображений, - такие диаграммы будут представляться в обычном двухмерном изображении. На мой взгляд, это небольшая потеря. Зато появилась новая возможность - рисовать графики в полярной системе координат. Для визуализации инженерных расчетов такая возможность во многих случаях может быть весьма существенной.

Другие свойства

Конечно же, объект Chart обладает свойствами, позволяющими при отображении диаграмм показывать не только саму диаграмму, но и все ее основные элементы оси категорий и значений, заголовок и легенду. Сохранена также такая важная возможность, как показ линии тренда с прогнозом будущих и предыдущих значений, не представленных данными диаграммы. Можно также показывать на диаграмме интервалы, задающие возможную погрешность данных. Следует отметить, что не сохранена возможность показа текущих справок при подведении курсора к той или иной области диаграммы. Однако при желании, эту возможность можно ввести в собственном решении, используя программную настройку и те возможности, которые предоставляет объектная модель компонента Chart.

На следующем рисунке показана уже знакомая диаграмма с данными об объемах продаж, просматриваемая в Internet Explorer. На диаграмме показана линия тренда с прогнозом продаж, которые можно ожидать от одного из продавцов в следующем периоде. Для данных другого продавца показаны пределы возможной погрешности.

Диаграмма с линией тренда и интервалом погрешностей

увеличить изображение
Рис. 10.6. Диаграмма с линией тренда и интервалом погрешностей
Интерфейс

Элемент Chart не имеет собственного интерфейса. Поэтому если поместить этот элемент в единственном числе на Web-странице или в каком-либо другом допустимом контейнере, то у пользователя не будет никаких возможностей взаимодействия с этим элементом. По существу, в этом случае все сведется лишь к статическому просмотру диаграммы. В этом тоже есть некоторый смысл, поскольку диаграмма при перерисовке будет отображать последние изменения источника данных. Возможны два пути решения проблемы создания интерактивной диаграммы:

  • Программное создание интерфейса. При построении собственных решений такой путь может оказаться предпочтительным, так как позволяет в полной мере дать пользователю необходимые средства графического представления данных, учитывающих специфику решаемой задачи.
  • Размещение вместе с диаграммой источника данных. По этому пути пошел Microsoft, встраивая компоненты OWC в Office 2000. При сохранении диаграммы, как интерактивной Web-страницы, на эту страницу помещается не только компонент Chart, но и два других компонента - SpreadSheet и Data Source. Первый из них задает источник данных для построения диаграммы, второй - служит мостиком для передачи данных от компонента SpreadSheet к компоненту Chart. Достоинством такого подхода является то, что пользователь получает возможность изменять данные в таблице компонента SpreadSheet и тут же увидеть, как эти изменения отражаются на диаграмме. Пользователь может также использовать интерфейс компонента SpreadSheet, но он по-прежнему не сможет изменить, например, тип отображаемой диаграммы. В собственном решении можно сочетать достоинства обоих подходов.
Источники данных компонента Chart

Что может служить источником данных для построения диаграммы компонента Chart? Это, наверное, один из основных вопросов, на который следует ответить. Компонент Chart можно связать со следующими источниками данных:

  • компонентами OWC - SpreadSheet, PivotTable, Data Source ;
  • объектом ADO RecordSet ;
  • массивом символьных данных с заданной синтаксической структурой,
  • другими источниками, реализующими интерфейс IDataSource, документированный, например, в OLE DB SDK.

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

Объектная модель и программирование

Начну с некоторого обзора, позволяющего дать общее представление об объектной модели этого компонента. Прежде всего, замечу, что корневым объектом в этой модели является не объект Chart, а объект - ChartSpace, задающий пространство диаграммы, в котором можно разместить несколько объектов Chart. Содержательно это означает, что компонент ChartSpace играет роль листа книги, который может одновременно отображать несколько диаграмм. Для программиста важно то, что объект ChartSpace имеет свойство Charts, возвращающее коллекцию объектов Chart и для добавления элементов в эту коллекцию используется стандартный для коллекций метод Add.

Особую роль среди методов объекта ChartSpace играет метод ExportPicture, позволяющий экспортировать пространство диаграммы со всем ее содержимым в графический файл в формате GIF. Такой прием применяется при размещении компонент OWC на серверной стороне, о чем я еще скажу особо. Из свойств объекта Chart упомяну свойство Type, позволяющее задать тип диаграммы. Говоря о методах этого объекта, назову метод SetData, который используется для того, чтобы установить связь с разнообразными источниками данных и направить их в те или иные области диаграммы. Одноименный метод объекта Series, входящего в коллекцию серий данных - SeriesCollection объекта Chart, - позволяет загружать данные отдельной серии. Из событий объекта Chart нельзя не назвать событие DataSetChange. Это событие зажигается, когда связанный источник данных изменяет свои данные. При возникновении события компонент Chart автоматически перестраивается, чтобы соответствовать обновленным данным. Но, если обновление связано с изменением структуры диагра ммы, например, появлением новой серии, то для подобных обновлений следует написать собственный обработчик события.

В заключение обзора хочу представить схему, отражающую устройство основных объектов модели - ChartSpace, WCChart, WCSeries:

Схема устройства основных объектов модели

Рис. 10.7. Схема устройства основных объектов модели
Ольга Гафарова
Ольга Гафарова

Добрый день. Подскажите формулы при решении задачи на рис. 2.2 в лекции №2. Закон Ома, какие должны использоваться формулы для I и R

Курс: Основы офисного программирования и документы Excel

Серегй Лушников
Серегй Лушников