|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
ON ROWS
FROM [PF] В общем случае функцию CrossJoin можно использовать для произвольного числа наборов. Поэтому мы можем добавить в качестве аргумента еще один набор — на этот раз из измерения «Услуги». В итоге получится плоская таблица, в которой присутствуют все атрибуты из отчета исходной сводной таблицы. Итак, первая часть задачи благополучно решена — сформирована выборка из OLAP-базы, удовлетворяющая поставленным условиям и подходящая для создания сводной таблицы (рис. 6). Осталось получить такую же таблицу в Microsoft Excel. Идея основана на организации в среде Microsoft Excel OLE DB-подключения к аналитической базе данных с возможностью изменения текста команды на запрос данных.
Рис. 6. Выборка из OLAP-базы Для начала изучим параметры источника данных, которые задаются по умолчанию при подключении сводной таблицы к кубу OLAP. Для этого выделим сводную таблицу, затем на ленте быстрого доступа Microsoft Excel на вкладке Данные в разделе Подключения выберем элемент Свойства. Перейдя на закладку Определение, можно увидеть поле Текст команды. Данное поле содержит текст запроса, посылаемого на сервер. В случае подключения сводной таблицы к аналитической базе в поле указывается название одного из хранящихся в ней кубов. Тип возвращаемого объекта задается в поле Тип команды, которое имеет предопределенное значение Куб и недоступно для выбора. Задача сводится к созданию такого источника данных, в котором поле Тип команды будет разблокировано. Делается это довольно просто. В параметрах сводной таблицы разрешаем выполнение операции DrillDown — на закладке Данные включаем опцию Разрешить отображение деталей. После этого дважды кликаем по любой ячейке с данными из сводного отчета. На отдельном листе книги должна появиться таблица, детализирующая выбранную нами сумму. Такая таблица является результатом MDX-запроса по текущему ракурсу сводного отчета и, что особенно ценно, имеет собственный источник данных. Выберем таблицу, после чего нажмем уже знакомую нам кнопку Свойства на вкладке Данные. В появившейся форме еще раз нажимаем эту же кнопу — на этот раз справа от поля Имя. Прорвавшись сквозь дебри интерфейса Microsoft Excel, попадаем на форму определения свойств подключения. Дадим подключению более удобное и понятное имя, например My_MDX (рис. 7). Отметим, что на вкладке Определение поле Тип команды имеет теперь значение По умолчанию.
Рис. 7. Настройка пользовательского подключения На листе со сводным отчетом выберем одну из ячеек и присвоим ей имя — MDX_Command. Напишем в ней одной строкой составленный ранее MDX-запрос: SELECT {[Measures].[Сумма]} ON СOLUMNS, CROSSJOIN(FILTER ({DESCENDANTS ([Дата].[Дата].[All], [Дата].[Дата].[Месяц])}, ([Дирекция].[Дирекция].[Дир_2])>400), [Дирекция].[Дирекция].[All].Children) ON ROWS FROM [PF] Перейдем в редактор Visual Basic, добавим к проекту модуль и вставим в него новую процедуру: Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.002 сек.) |