Настройка характеристик показа данных
Private Sub Form_Load()
` Открыть соединение с OLAP Services на локальном компьютере
Dim gConnection As Connection
Set gConnection = New Connection
gConnection.Open "Data Source=LocalHost;Provider=MSOLAP"
` Убедиться в том, что работаем с базой данных FoodMart
If gConnection.DefaultDatabase <> "FoodMart" Then
gConnection.DefaultDatabase = "FoodMart 2000"
End If
` Объявить переменные (набор ячеек) для хранения результатов запроса
Dim oCellSet As Cellset
` Запустить простой одномерный запрос MDX
Set oCellSet = New Cellset
oCellSet.Open "WITH CELL CALCULATION Fred FOR
`({[Product].[Product Family].&[Food]})` " & _
"AS `CalculationPassValue(Product.CurrentMember, 0 )`, " & _
"CONDITION = `CalculationPassValue(Product.CurrentMember, 0 )
> 12000`, " & _
"FORE_COLOR = `255 * 256` " & _
"SELECT [Product].[Product Family].Members on COLUMNS " & _
"FROM Sales " & _
"CELL PROPERTIES VALUE, FORMATTED_VALUE,
FORE_COLOR, BACK_COLOR", _
gConnection
` Объявить переменные, необходимые для показа результатов
Dim oAxis As Axis
Dim nDim As Integer
Dim oMember As Member
Dim nCell As Integer
Dim oCell As Cell
Dim oProperty As Property
Dim oPosition As Position
` Организовать цикл просмотра ячеек по столбцам результатов,
` выступающим в роли осей
For nCell = 0 To oCellSet.Axes(0).Positions.Count - 1
` Получить ссылку на ячейку
Set oCell = oCellSet(nCell)
` Получить ссылку на объект, позиционирующий ось
Set oPosition = oCellSet.Axes(0).Positions(nCell)
` Вывести порядковый номер ячейки, имя члена и
число свойств для этой позиции
Debug.Print "Cell(" & oCell.Ordinal & ") " &
oPosition.Members(0).Name & "=" & oCell.FormattedValue
& " has " & oCell.Properties.Count & " Properties"
` Вывести в цикле свойства ячейки для этой позиции и их значения
For Each oProperty In oCell.Properties
Debug.Print "Property " & oProperty.Name & " = " & oProperty.Value
Next
Next nCell
Set oCellSet = Nothing
Set gConnection = Nothing
End Sub
|
|