Створення рішень на базі Microsoft Data Analyzer, Різне, Інтернет-технології, статті

У попередній статті “Microsoft Data Analyzer – аналіз даних в Microsoft Office“Ми ознайомили читачів з новим продуктом сімейства Microsoft Office – Microsoft Data Analyzer, який являє собою засіб аналізу даних, призначений для кінцевих користувачів, і істотно полегшує процес добування інформації з корпоративних сховищ даних.


Microsoft Data Analyzer підтримує велику об’єктну модель, за допомогою якої можна створювати рішення на базі даного продукту. Вся функціональність доступна як через інтерфейс, так і через об’єктну модель Microsoft Data Analyzer, якій присвячена ця стаття.



Об’єктна модель Microsoft Data Analyzer стає доступною при використанні компонента ActiveX, що входить до складу даного продукту. Цей компонент може використовуватися в додатках, що підтримують COM-інтерфейси, – в додатках на основі Windows Forms в Visual Basic, в VBA-програмах Microsoft Office або в складі Web-сторінок.


Компонент ActiveX забезпечує програмний доступ до таких функцій Microsoft Data Analyzer:



Для того щоб скористатися компонентом ActiveX, запустимо Microsoft Visual Basic і виконаємо наступні дії:




Завантаження існуючих відображень


Тепер ми можемо перейти до написання коду. Почнемо з того, що помістимо компонент ActiveX на форму. Перейдемо в режим написання коду, виберемо підпрограму ініціалізації компонента (Max3Ax1_Initialized) і напишемо наступний код:



Private Sub Max3Ax1_Initialized()
Const ViewName = “C:Program FilesMicrosoft Data Analyzer” & _
“Data Analyzer 3.5Airline.MAX”

With Max3Ax1.Application.ActiveView
.OpenView ViewName, vlocFileSystem
End With
End Sub


Виконавши програму, ми побачимо компонент ActiveX у дії – він відображає дані, завантажені з файлу (рис. 3).


У даному прикладі ми використовували метод OpenView об’єкта ActiveView, до якого звернулися через об’єкт Application, що забезпечує програмний доступ до компоненту ActiveX. У табл. 1




















































Об’єкт / Колекція 

Опис 

Application Забезпечує програмний доступ до компоненту ActiveX Microsoft Data Analyzer
Aspect Являє собою аспект відображення
AspectMember Являє собою члена аспекту відображення
AspectMembers Являє собою колекцію всіх членів аспекту відображення
Aspects Являє собою колекцію всіх аспектів відображення
Band Являє собою один елемент смуги команд
Band Являє собою колекцію елементів смуги команд
ColorManager Забезпечує програмний доступ до менеджера квітів
History Забезпечує програмний доступ до менеджера раніше введених команд
Qualities Являє собою колекцію якостей
Toolbar Являє собою смугу команд
Trait Являє собою або колір або якість, або колекцію квітів і якостей типу таблиці
TraitsManager Управляє колекціями квітів і якостей
View Являє собою відображення
ViewQualities Являє собою колекцію якостей відображення

показані об’єкти і колекції, що надаються об’єктною моделлю Microsoft Data Analyzer.


Перераховані вище об’єкти і колекції об’єднані в ієрархію, показану на рис. 4.


Давайте розширимо наш приклад і додамо можливість виклику стандартних діалогових панелей. Для цього ми будемо використовувати метод ShowDialog об’єкта Application. Даний метод дозволяє викликати одну з наступних діалогових панелей (табл. 2).




















































Ідентіфікаторм 

Код  

Панель 

mxDlgAbout 1 About box
mxDlgOpenFile 2 Open view from file dialog
mxDlgSaveAsFile 3 Save view as file dialog
mxDlgHtmlReport 4 HTML report dialog
mxDlgNewView 5 New View Wizard
mxDlgChangeView 6 Change view dialog
mxDlgDrillThrough 7 Drill through
mxDlgExportToExcelPivotTable 8 Export to PivotTable Wizard
mxDlgOpenUsingConnection 9 Open view using connection dialog
mxDlgBusinessCenter 10 Open Business Center dialog
mxDlgExportToExcelStatic 11 Export to Microsoft Excel

Нижче показаний код, необхідний для виклику діалогової панелі Change View, який ми помістимо в обробник події, що виникає при натисканні кнопки на формі:



Private Sub Command1_Click()
Max3Ax1.Application.ShowDialog Dialog:=mxDlgChangeView
End Sub


Для керування смугою команд, основним меню і статусної рядком ми використовуємо об’єкти Bands і властивість Visible, яке може приймати значення True або False. Нижче показано, як відключити смугу команд, меню і статусну рядок:



Dim ToolBar As Max3API.ToolBar


With ToolBar

.Bands(Index:=”MainToolBar”).Visible = False
.Bands(Index:=”MainMenu”).Visible = False
.Bands(Index:=”Main.StatusBar”).Visible = False

End With


Таким чином ми можемо скасувати доступ користувача до певних командам і, як ми побачили вище, реалізувати програмний доступ тільки до тих діалоговим панелям, які актуальні для нашого застосування.


Якістю називається одиниця вимірювання у відображенні. Також існує поділ на тип вимірювання (довжина або колір). Нижче показано, як визначити колір для зазначеного якості:



Private Sub Command2_Click()

Dim TraitsManager As Max3API.TraitsManager
Set TraitsManager = Max3Ax1.Application.ActiveView.TraitsManager
MsgBox Prompt:= _
TraitsManager.Trait(TraitID:=trtColor).Qualities.QualityID(v:=0)

End Sub


Для додавання, видалення і очищення якостей ми можемо використовувати методи Add, Clear і Remove об’єкта Qualities.


Аспектом називається вимір в OLAP-кубі – час, місцезнаходження, продукти і т.п. Колекція Aspects надає методи Add, Remove і Clear для додавання, видалення і очищення вимірювань. Унікальне ім’я вимірювання вказується у квадратних дужках – “[]”.


Для управління менеджером квітів ми використовуємо об’єкт ColorManager і його властивість ColorScaleVisible, яке може приймати значення True або False. Нижче показано, як відобразити менеджера квітів на екрані:



Dim ColorManager As Max3API.ColorManager


Set ColorManager = _
Max3Ax1.Application.ActiveView.TraitsManager.ColorManager
ColorManager.ColorScaleVisible = True


У наведених вище прикладах ми використовували готове відображення, яке ми завантажували з файлу на локальному диску. Тепер давайте розглянемо, як за допомогою об’єктної моделі Microsoft Data Analyzer створити нове відображення.



Створення нових відображень


Почнемо з того, що створимо новий додаток на Visual Basic, додамо до головної формі кнопку. Напишемо наступний код:



Option Explicit

Dim MaxApp As Max3API.Application

Private Sub Form_Load()
Set MaxApp = Max3Ax1.Application
End Sub


Весь код створення нового відображення ми розташуємо в обробнику події Click кнопки. Першим кроком створення нового відображення є опис сервера, каталогу і куба, до якого буде підключено наше додаток. Після цього ми зможемо вказати вимірювання та члени вимірювань для кожного аспекту нашого нового відображення.


Для приєднання до сервера, каталогу і кубу ми використовуємо метод Connect об’єкта View, який забезпечує підключення до OLAP-сервера. В якості параметра цього методу передається рядок з’єднання. Для завдання куба ми використовуємо властивості Catalog і Cube об’єкта View. У нашому прикладі ми будемо використовувати куб Sales, який поставляється в складі Microsoft Analysis Services 8.0. Нижче показаний код, який забезпечує з’єднання з цим кубом. Даний код повинен бути розташований в обробнику події Click кнопки:



MaxApp.ActiveView.Connect “location= _
localhost;provider=msolap”
MaxApp.ActiveView.Catalog = “Foodmart 2000”
MaxApp.ActiveView.Cube = “Sales”


Наступний крок – опис якостей нового виду. Для цього ми будемо використовувати об’єкт TraitsManager, який доступний через властивості TraitsManager об’єкта View. Використовуючи метод Trait об’єкта TraitsManager, ми створюємо нові об’єкти типу Trait. Кожен такий об’єкт описує або одиничне якість (довжина або вимір) – для цього ми використовуємо метод SetSingleQuality цього об’єкта, – або мульти-якість. В останньому випадку якості додаються в колекцію Qualities об’єкта Trait.


Для додавання якостей напишемо наступний код, який додамо до вже існуючого коду в обробнику події Click кнопки:



With MaxApp.ActiveView.TraitsManager

.Trait(trtLength).SetSingleQuality qtypMeasure, _
“[Measures].[Unit Sales]”
.Trait(trtColor).SetSingleQuality qtypMeasure, _
“[Measures].[Sales Average]”
.Trait(trtGrid).Qualities.Add qtypMeasure, “[Measures].[Store Sales]”

End With


Тепер ми повинні додати аспекти, які, як ми пам’ятаємо, є вимірами в OLAP-кубі. Для цього ми будемо використовувати колекцію Aspects, доступну через властивість Aspects об’єкта View. Новий аспект додається за допомогою методу Add. Перший параметр цього методу – унікальний ідентифікатор в ієрархії, заданої в OLAP-кубі. Другий параметр – опціональний – за умовчанням аспект заповнення членами. Якщо другий параметр має значення False, буде створено порожній аспект, який не містить членів.


Метод Item створює новий об’єкт типу Aspect, який дозволяє виконувати певні операції на рівні аспектів. Наприклад, метод GotoLevel замінює член даного аспекту на члени зазначеного OLAP-рівня.


Для додавання нового аспекту напишемо наступний код, який додамо до вже існуючого коду в обробнику події Click кнопки:



With MaxApp.ActiveView.Aspects

.Add “[Time]”
.Item(“[Time]”).GotoLevel “[Time].[Quarter]”

End With


Для фільтрації членів аспекту ми можемо використовувати фільтри, що задаються за допомогою методів SmartSelectXXX. Можливо завдання фільтрів за якістю, на ім’я члена або за властивостями члена. У наступному прикладі ми створимо ще один аспект – Customers і використовуємо фільтр для відображення 10 перших міст:



With MaxApp.ActiveView.Aspects

.Add “[Customers]”
.Item(“[Customers]”).SmartSelectByQuality “[Customers].[City]”, _
ssopExclude, _
qtypMeasure, _
“[Measures].[Unit Sales]”, _
ssorInTop, _
10, _
“”, _
False

End With


Останнім кроком у нашому прикладі буде опис зрізу. Створимо ще один аспект: Products, відфильтруем його по категорії Drink і смінімізіруем його:



With MaxApp.ActiveView.Aspects

.Add “[Product]”
.Item(“[Product]”).SelectOnly “[Product].[All Products].[Drink]”
.Item(“[Product]”).Minimized = True

End With


Результат роботи нашого демонстраційного додатка зображений на рис. 5.


На завершення даного огляду давайте коротко розглянемо об’єкти Microsoft Data Analyzer, які можна використовувати для перегляду метаданих.


Створення нових відображень на основі метаданих


Почнемо з того, що додамо до нашого проекту посилання на бібліотеку типів MdhInterfacesLib (для цього треба завантажити файл MdhInterfaces.tlb). Тепер створимо об’єкт типу MdhInterfacesLib.IMdhManager, який ми будемо використовувати для доступу до метаданих. Метод MetaData об’єкта View повертає об’єкт цього типу для поточного відображення. Колекція Cubes об’єкта IMdhManager повертає метадані про кубах, метод MeasureDimension об’єкта Cube (той, що ми можемо витягти з колекції Cubes) повертає об’єкт, який може бути використаний як звичайне вимір.


Метод DefaultHierarchy об’єкта MeasureDimension може використовуватися для отримання об’єкта, що містить ієрархію вимірювання. Метод DefaultMember використовується для отримання вимірювання за замовчуванням. Метод Dimensions об’єкта Cube служить для отримання колекції вимірювань.


У наступному прикладі показано, як використовувати метадані для побудови нового відображення, що містить всі вимірювання в кубі Sales, який поставляється в складі Microsoft Analysis Services 8.0:



Option Explicit

Dim MaxApp As Max3API.Application

Private Sub Command1_Click()

MaxApp.ActiveView.Connect “location=localhost;provider=msolap”
MaxApp.ActiveView.Catalog = “Foodmart 2000”
MaxApp.ActiveView.Cube = “Sales”

Dim mdh As MdhInterfacesLib.IMdhManager
Dim mdhCube As MdhInterfacesLib.IMdhCube
Dim mdhMeasures As MdhInterfacesLib.IMdhDimension
Dim mdhDimension As MdhInterfacesLib.IMdhDimension
Dim i As Integer

Set mdh = MaxApp.ActiveView.MetaData
Set mdhCube = mdh.Cubes.Item(MaxApp.ActiveView.Cube)
Set mdhMeasures = mdhCube.MeasuresDimension

MaxApp.ActiveView.TraitsManager.Trait(trtLength).SetSingleQuality _
qtypMeasure, mdhMeasures.DefaultHierarchy.DefaultMember.UniqueName

For i = 0 To mdhCube.Dimensions.Count – 1

Set mdhDimension = mdhCube.Dimensions.Item(i)
If mdhDimension.Type <> MDH_DIM_TYPE_MEASURE Then
MaxApp.ActiveView.Aspects.Add _
mdhDimension.DefaultHierarchy.UniqueName
End If

Next i

End Sub

Private Sub Form_Load()

Set MaxApp = Max3Ax1.Application

End Sub


Висновок


В даному огляді ми ознайомилися з основними можливостями компонента ActiveX і об’єктної моделі Microsoft Data Analyzer. Ми дізналися, як використовувати об’єкти для завантаження вже існуючого відображення, а також розглянули два способи створення нових відображень: за допомогою об’єктної моделі Microsoft Data Analyzer і за допомогою об’єктів, що забезпечують доступ до метаданих.


На закінчення відзначимо, що компонент ActiveX Microsoft Data Analyzer може також використовуватися в додатках, написаних на Visual Basic for Applications (VBA), дозволяючи додавати засоби дослідження корпоративних сховищ даних в рішення, що створюються на основі продуктів Microsoft Office, а також в Web-сайтах у складі Microsoft SharePoint.


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*