CubeDef Example (VBScript)

Microsoft ActiveX Data Objects (ADO)

CubeDef Example (VBScript)

This example displays cube metadata on a web page.

<%@ Language=VBScript %>
<%
Response.Buffer=True
'Response.Expires=0
%>
<html>
<head>
<meta NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</head>
<body>

<%
Server.ScriptTimeout=360
Dim cat,cdf,di,hi,le,mem,strServer,strSource,strCubeName

'************************************************************************
'*** Set Session Variables
'************************************************************************
Session("CubeName") = Request.Form("strCubeName")
Session("CatalogName") = Request.Form("strCatalogName")
Session("ServerName") = Request.Form("strServerName")
Session("chkDim") = Request.Form("chkDimension")
Session("chkHier") =  Request.Form("chkHierarchy")
Session("chkLev") =  Request.Form("chkLevel")

'************************************************************************
'*** Create Catalog Object
'************************************************************************************
Set cat = Server.CreateObject("ADOMD.Catalog")

If Len(Session("ServerName")) > 0 Then
    cat.ActiveConnection = "Data Source=" & Session("ServerName") & ";Initial Catalog=" & Session("CatalogName") & ";Provider=msolap;"
Else
'************************************************************************************
'*** Must set OLAPServerName to OLAP Server that is
'*** present on network
'************************************************************************
OLAPServerName = "Please set to present OLAP Server"
    cat.ActiveConnection = "Data Source=" & OLAPServerName & _
        ";Initial Catalog=FoodMart;Provider=msolap;"
    Session("ServerName") = OLAPServerName
    Session("InitialCatalog") = "FoodMart"
End if

If Len(Session("CubeName")) > 0 Then
    Set cdf = cat.CubeDefs(Session("CubeName"))
Else
    Set cdf = cat.CubeDefs("Sales")
    Session("CubeName")="Sales"
End if

'************************************************************************
'*** Collect Information in HTML Form
'************************************************************************
%>
<form action="ASPADOCubeDoc.asp" method="post" id="form1" name="form1">
<table>
    <tr>
        <td>
        <b>Olap Server name:  </b><br><input type="text" id="strServerName" name="strServerName" value="<%=Session("ServerName")%>" size="20"><br>

        <b>Catalog Name:  </b><br><input type="text" id="strCatalogName" name="strCatalogName" value="<%=Session("CatalogName")%>" size="20"><br>

        <b>Cube Name:  </b><br><input type="text" id="strCubeName" name="strCubeName" value="<%=Session("CubeName")%>" size="20">
        </td>
        <td <TD>
            <b>Add Property Detail:  </b><br>
            Dimension Detail: <input type="checkbox" id="chkDimension" name="chkDimension"><br>

            Hierarchy Detail: <input type="checkbox" id="chkHierarchy" name="chkHierarchy"><br>

            Level Detail: <input type="checkbox" id="chkLevel" name="chkLevel">
        </td> 
    </tr>
</table>
<input type="submit" value="Cube Information" id="submit1" name="submit1"><input type="reset" value="Reset" id="reset1" name="reset1">
</form>
<%

'************************************************************************
'*** Start of Report
'************************************************************************
Response.Write "<H3>Report for " & Session("CubeName") & " Cube</H3>"
Response.Write "<OL TYPE='i'>"

'************************************************************************
'*** Show properties of Cube
'************************************************************************
                For i = 0 To cdf.Properties.Count - 1
                    Response.Write "<LI>"
                    Response.Write "<FONT size=-2>" & cdf.Properties(i).Name & ": " & cdf.Properties(i).Value & "</FONT>"
                Next
                Response.Write "</OL>"
                Response.Write "<UL TYPE='SQUARE'>"   
 '************************************************************************
'*** Loop to display Dimension Name and Properties if Check box is 
'*** Checked
'************************************************************************
        For di = 0 To cdf.Dimensions.Count - 1
            Response.Write "<LI>"
            Response.Write "<FONT size=4><B>Dimension: " & _
                cdf.Dimensions(di).Name & "</B></FONT>"
            If Request.Form("chkDimension") = "on" Then
                Response.Write "<OL TYPE='1'>"
                For i = 0 To cdf.Dimensions(di).Properties.Count - 1
                    Response.Write "<LI>"
                    Response.Write "<FONT size=-2>" & _
                        cdf.Dimensions(di).Properties(i).Name & ": " & _
                        cdf.Dimensions(di).Properties(i).Value & "</FONT>"
                Next
                Response.Write "</OL>"
            End If
            Response.Write "<UL TYPE= 'Circle'>"
'************************************************************************
'*** Loop to display Hierarchy Name and Properties if Check box is 
'*** Checked
'************************************************************************
            For hi = 0 To cdf.Dimensions(di).Hierarchies.Count - 1
                Response.Write "<LI>"
                Response.Write "<FONT size=3><B>Hierarchy: " & _
                    cdf.Dimensions(di).Hierarchies(hi).Name & "</B></FONT>"
                If Request.Form("chkHierarchy") = "on" Then
                    Response.Write "<OL TYPE='1'>"
                    For i = 0 To _
                        cdf.Dimensions(di).Hierarchies(hi).Properties.Count - 1
                        Response.Write "<LI>"
                        Response.Write "<FONT size=-2>" & _
                            cdf.Dimensions(di).Hierarchies(hi).Properties(i)._
                            Name & ": " & _
                            cdf.Dimensions(di).Hierarchies(hi).Properties(i)._
                            Value & "</FONT>"
                    Next
                    Response.Write "</OL>"
                End If
                Response.Write "<UL TYPE='Disc'>"
'************************************************************************
'*** Loop to display Level Name and Properties if Check box is Checked
'************************************************************************
        For le = 0 To cdf.Dimensions(di).Hierarchies(hi).Levels.Count - 1
                    Response.Write "<LI>"
                    Response.Write "<FONT size=2><B>Level: " & _
                        cdf.Dimensions(di).Hierarchies(hi).Levels(le).Name & _
                        " with a Member Count of: " & _
                        cdf.Dimensions(di).Hierarchies(hi).Levels(le)._
                        Properties("LEVEL_CARDINALITY") & "</B></FONT>"
                    If Request.Form("chkLevel") = "on" Then
                        Response.Write "<OL TYPE='1'>"
                        For i = 0 To 
                            cdf.Dimensions(di).Hierarchies(hi).Levels(le)._
                            Properties.Count - 1
                            Response.Write "<LI>"
                            Response.Write "<FONT size=-2>" & _
                                cdf.Dimensions(di).Hierarchies(hi).Levels(le)._
                                Properties(i).Name & ": " & _
                                cdf.Dimensions(di).Hierarchies(hi).Levels(le)._
                                Properties(i).Value & "</FONT>"
                        Next
                        Response.Write "</OL>"
                    End If
                Next
                Response.Write "</UL>"
            Next
            Response.Write "</UL>"
        Next
        Response.Write "</UL>"
%>
</body>
</html>