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

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

Компонент PivotTable

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

Конечно же, иметь подобный инструмент при работе с документами в интрасетях чрезвычайно важно. И такой инструмент был создан - среди компонентов OWC имеется компонент PivotTable, позволяющий создать интерактивный Web-документ, содержащий сводную таблицу, с которой можно практически работать также, как в обычном Excel.

Создание интерактивных сводных таблиц в Excel

Самый простой способ создать интерактивную Web-страницу, содержащую сводную таблицу, - использовать для этой цели Excel. Здесь давно существовала возможность создать сводную таблицу по данным реляционной базы данных, например, Microsoft Access или Microsoft SQL Server. В Excel 2000 в процессе создания сводной таблицы можно параллельно создать и OLAP - куб, который и будет служить источником данных для этой таблицы. После того, как сводная таблица в Excel получена, ее можно сохранить в виде интерактивной Web-страницы, на которой будет помещен компонент PivotTable. При публикации можно присоединить и сводную диаграмму. Замечу, что фактически на Web-странице Excel разместит два компонента - PivotTable и Data Source. Источником данных для компонента Data Source может служить, например, OLAP-куб, а уж затем данные будут переданы компоненту PivotTable. Взгляните, как выглядит подобная Web-страница со сводной таблицей, открытая в Internet Explorer: Sґ

Интерактивная Web-страница со сводной таблицей

увеличить изображение
Рис. 10.11. Интерактивная Web-страница со сводной таблицей
Как компонент PivotTable взаимодействует с источником данных OLAP

Одним из главных вопросов, требующих решения при работе со сводными таблицами, является организация связи с источником данных. Как я уже говорил, при создании в Excel такого инструмента анализа данных, как сводная таблица, с самого начала предполагалось, что основным источником данных для них будут внешние источники - базы данных. Естественно, что возможность использования в качестве источника данных таблиц самого Excel подразумевалась сама собой, и была гарантирована в первую очередь. Три основных типа внешних источников данных могут быть использованы сводными таблицами Excel:

  • Табличные - реляционные базы данных различного типа - MS Access, MS SQL Server и другие.
  • Многомерные хранилища - прежде всего, кубы OLAP.
  • XML-потоки - данные, поступающие из интернет.

Компонент Pivot Table сохранил все эти возможные источники данных. Более того, еще одним источником данных может быть DataSource - четвертый компонент, входящий в состав OWC. Для связи с базами данных используется интерфейс OLE DB - стандарт, разработанный Microsoft. Для связи с OLAP источниками данных Microsoft разработала модификацию этого стандарта - OLE DB for OLAP, которая позволяет взаимодействовать с многомерными хранилищами данных аналогично тому, как это взаимодействие происходит при работе с табличными базами данных. Этот стандарт поддерживается как базами данных от Microsoft, так и многими другими многомерными хранилищами данных.

Взаимодействие компонента с источником данных начинается с того, что указанный при соединении провайдер источника данных определяет механизм этого взаимодействия. Для OLE DB for OLAP провайдера используется интерфейс TCP/IP. После того как соединение установлено, в список полей компонента - Pivot Table Field List, который будет более подробно рассматриваться ниже - передается структура OLAP-куба, его поля, измерения, а также иерархии, связанные с измерениями. Когда пользователь начинает в интерактивном режиме оперировать со сводной таблицей или когда это делается программным путем, компонент Pivot Table генерирует соответствующий MDX-запрос (MultiDimensional Expression), определенный спецификациями интерфейса OLE DB for OLAP. Этот запрос передается на сервер, там выполняется, и результаты выполнения пересылаются клиенту. Поскольку серверу передается по существу один запрос, а результаты содержат агрегированные данные, то объем передаваемой информации сводится к минимуму, что и обеспечивает высокую эффекти вность работы при использовании OLAP-источников данных.

XML-источник данных

В качестве источника данных для компонента Pivot Table можно указать адрес в Internet - URL, который возвращает XML-поток данных. Конечно, данные этого потока должны удовлетворять определенным требованиям. Microsoft разработала стандарт, которому должен удовлетворять XML-поток данных, и провайдера - OLE DB persistence provider, который способен принимать данные в этом формате. В главе, посвященной ADO, упоминался среди прочих и этот провайдер данных.

Интерфейс компонента Pivot Table

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

  • Изменение структуры сводной таблицы. Пользователь может перетаскивать поля, меняя их местами не только внутри одного измерения, но и перемещая их между измерениями. Так что поле, которое было полем строки, может по желанию пользователя стать полем столбца или полем фильтра.
  • Группировать и разгруппировывать данные полей. Иерархии, заданные для измерений, позволяют проводить анализ "в глубину" с необходимой пользователю степенью детализации. О сути этого анализа я говорил ранее.
  • Фильтровать данные. Задавая те или иные значения полей на оси фильтров, можно выполнять требуемую фильтрацию данных.
  • Выполнять команды, определенные инструментальной панелью. Инструментальная панель компонента Pivot Table содержит набор командных кнопок, запускающих выполнение определенных команд.
  • Выполнять расширенный набор команд. Помимо команд, вынесенных на инструментальную панель, пользователю доступен и расширенный набор команд, заданный специальной панелью свойств. Набор команд, появляющийся на этой панели, зависит от контекста, с которым работает пользователь. При выборе того или иного элемента сводной таблицы, например, поля данных или поля фильтра, на панели свойств будет отображаться набор команд, доступных для выполнения при работе с выбранным элементом сводной таблицы.
Инструментальная панель

Инструментальная панель расположена в верхней части компонента Pivot Table и содержит 19 командных кнопок, часть из которых уже знакома нам по интерфейсу компонента SpreadSheet, часть - по работе с инструментальной панелью сводной таблицы в Excel. Вот краткое описание этих кнопок:

  • - кнопка с логотипом Office отображает информацию о компоненте, задавая номер инсталлированной версии. Имеет ссылку, позволяющую перейти на узел технической поддержки пользователей программных продуктов Microsoft.
  • - позволяет скопировать выделенную часть сводной таблицы в буфер, а затем содержимое буфера перенести в то или иное приложение. Таким образом, можно осуществлять передачу данных от компонента Pivot Table в приложения, допускающие работу с буфером. Заметьте, что в отличие от компонента SpreadSheet, здесь нет кнопки Paste, так что обратная передача данных не допускается. Очевидно, что наличие этой возможности противоречило бы самой сути сводных таблиц, поскольку проводимый анализ не связан с изменением данных в процессе анализа. Данные можно изменять только в самом источнике.
  • - знакомые нам кнопки позволяют проводить сортировку выделенных данных сводной таблицы в порядке возрастания или убывания. Последняя из этой группы кнопок включает или выключает фильтр, заданный полями фильтра сводной таблицы.
  • - кнопка автосуммирования позволяет произвести вычисление итогов для выбранного поля, применяя одну из возможных функций. Серый цвет кнопки означает, что тип поля не позволяет подводить итоги или провайдер не обеспечивает выполнения такой функции. Замечу, что OLAP-провайдер не допускает автосуммирования, поскольку подобные вычисления проводятся на стороне сервера, а не на клиентской машине. Таким образом, при работе с кубами OLAP эта кнопка всегда будет оставаться серой.
  • - позволяет включать или выключать промежуточные итоги для выбранного поля. Эта кнопка работает и для OLAP-провайдера.
  • - эта группа кнопок позволяет перемещать поля между измерениями, перенося поле соответственно на ось строк, столбцов, фильтра или в область данных.
  • - эта пара кнопок также позволяетперемещать поля, но внутри одного измерения, меняя их порядок следования.
  • - включает или выключает иерархию, допустимую для данного измерения.
  • - обновляет список полей сводной таблицы, с учетом всех изменений, которые могли произойти в источнике данных.
  • - создает новую рабочую книгу Excel и копирует туда сводную таблицу с сохранением ее интерактивности. Это позволяет сохранить в Excel структуру сводной таблицы, выбранную пользователем. Замечу, что данные не передаются в Excel, а поступают туда из источника данных. Возможность экспорта сводной таблицы в Excel, конечно же, увеличивает мощь компонента Pivot Table.
  • - открывает инструментальную панель свойств, набор кнопок которой зависит от контекста, - какой из элементов сводной таблицы является выделенным.
  • - открывает окно, содержащее список полей, доступных для конструирования сводной таблицы в интерактивном режиме.
  • - открывает справочную систему по компоненту Pivot Table.
Панель свойств

Панель свойств задает дополнительный набор команд, которые можно выполнять над тем или иным элементом. Вот какой вид имеет эта панель при выборе поля строки:

Панель свойств элемента "поле строки"

Рис. 10.12. Панель свойств элемента "поле строки"

Как видно на рисунке, свойства на этой панели сгруппированы по разделам. Для всех элементов сводной таблицы присутствует раздел "Общее", где отображается выбранный элемент сводной таблицы и есть кнопка, позволяющая перейти в справочную систему. Для всех элементов сводной таблицы доступен также раздел "Формат" с различными возможностями, зависящими от типа элементов. Форматирование позволяет менять используемый шрифт, цвета, размеры поля. Для числовых полей и полей дат разрешается применять различные форматы записи. Раздел "Отображение" позволяет изменять внешний вид сводной таблицы, включая или отключая те или иные элементы, например, индикаторы развертывания или главную инструментальную панель. Я не буду в деталях описывать все возможные команды, доступные на этой панели.

Ольга Гафарова
Ольга Гафарова
Непонятен ход решения задачи
Серегй Лушников
Серегй Лушников
Может ли объект Recordset быть потомком объекта Record?
Геннадий Шестаков
Геннадий Шестаков
Беларусь, Орша
Светлана Ведяева
Светлана Ведяева
Россия, Саратов