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>