АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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, добавим к проекту модуль и вставим в него новую процедуру:


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.002 сек.)