<%@ Language=VBScript %>
<%
' ASP displays DRILLTHROUGH data.

Response.Buffer=True
Response.Expires=0
%>
<html>
<head>
<meta NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</head>
<body bgcolor="Ivory">
<font FACE="Verdana" size=2>
<h2>Detail Data</h2>
<%

' Print the table.
Sub PrintTable()

  %>
  <TABLE border=1 width=100%>
  <% For i = 0 to rs.Fields.Count - 1 %>
    <TH><font size=-2><% =rs.Fields(i).Name %></font></TH>
  <% Next %>

  <% Do While Not rs.EOF %>
  <TR>
  <%   For i = 0 to rs.Fields.Count - 1 %>
    <TD><FONT size=-2><% =rs(i).Value %></FONT></TH>
  <%   Next %>
  </TR>
  <%   rs.MoveNext
    Loop %>
  </TABLE> <%
End Sub

' Set connection objects for the multidimensional catalog and Cellset.

Set cat = Server.CreateObject("ADOMD.Catalog")
Set rs = Server.CreateObject("ADODB.Recordset")

' Check to see whether the Session object Server Name is present.

If Len(Session("ServerName")) > 0 Then
  cat.ActiveConnection  = "Data Source=" & Session("ServerName") & ";Initial Catalog=" & 
Session("InitialCatalog") & ";Provider=msolap;"

BEGIN CALLOUT A
  strSource = "DRILLTHROUGH MAXROWS 5000 "
  strSource = strSource & "SELECT {" & Request("colName") & "} ON COLUMNS,"
  strSource = strSource & "{" & Request("rowName") & "} ON ROWS "
  strSource = strSource & " FROM " & Request("cube")
  strSource = strSource & " " & Request("Where")
END CALLOUT A

  ' Get the recordset.
  Response.Write strSource
  Set rs = cat.ActiveConnection.Execute(strSource)

BEGIN CALLOUT B
  Do While Not rs Is Nothing
    Call PrintTable
    ' Look for data from the next partition.
    Set rs = rs.NextRecordset
  Loop
END CALLOUT B

set rs = nothing
set cat = nothing

Else
  Response.Write "This page cannot be called by itself."
End If
%>

</font>
</body>
</html>