Compartir a través de


Ejemplo de Axis (VBScript)

Se aplica a: Access 2013 | Access 2016

Esta página Active Server muestra datos OLAP de una cadena de consulta MDX y escribe el conjunto de celdas resultante en una estructura de tabla HTML.

<%@ Language=VBScript %> 
<% 
'************************************************************************ 
'*** Active Server Page displays OLAP data from default 
'*** MDX Query string and writes resulting cell set to HTML table 
'*** structure. 
'************************************************************************ 
Response.Buffer=True 
Response.Expires=0 
%> 
<HTML> 
<HEAD> 
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> 
</HEAD> 
<BODY bgcolor=Ivory> 
<FONT FACE=Verdana> 
 
<% 
 
Dim cat,cst,i,j,strSource,csw,intDC0,intDC1,intPC0,intPC1 
 
'************************************************************************ 
'*** Set Connection Objects for Multidimensional Catalog and Cellset 
'************************************************************************ 
Set cat = Server.CreateObject("ADOMD.Catalog") 
Set cst = Server.CreateObject("ADOMD.CellSet") 
 
'************************************************************************ 
'*** Use default settings of a known OLAP Server 
'*** for Server Name for Connection Set Server Name Session Object 
'*** to default value 
'************************************************************************ 
'*** 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';" 
 
'************************************************************************ 
'*** Use default MDX Query string of a known query that works 
'*** with default server Set MDXQuery Session Object to default value 
'************************************************************************ 
   strSource = strSource & "SELECT " 
   strSource = strSource & "{[Measures].members} ON COLUMNS," 
   strSource = strSource & _ 
      "NON EMPTY [Store].[Store City].members ON ROWS" 
   strSource = strSource & " FROM Sales" 
 
'************************************************************************ 
'*** Set Cell Set Source property to strSource to be passed on cell set '*** open method 
'************************************************************************ 
    cst.Source = strSource 
 
'************************************************************************ 
'*** Set Cell Sets Active connection to use the current Catalogs Active  
'*** connection 
'************************************************************************ 
Set cst.ActiveConnection = cat.ActiveConnection 
 
'************************************************************************ 
'*** Using Open method, Open cell set 
'************************************************************************ 
cst.Open 
 
'************************************************************************ 
'*** Set Dimension Counts minus 1 for Both Axes to intDC0, intDC1 
'*** Set Position Counts minus 1 for Both Axes to intPC0, intPC1 
'************************************************************************ 
intDC0 = cst.Axes(0).DimensionCount-1 
intDC1 = cst.Axes(1).DimensionCount-1 
 
intPC0 = cst.Axes(0).Positions.Count - 1 
intPC1 = cst.Axes(1).Positions.Count - 1 
 
'************************************************************************ 
'*** Create HTML Table structure to hold MDX Query return Record set 
'************************************************************************ 
      Response.Write "<Table width=100% border=1>" 
 
'************************************************************************ 
'*** Loop to create Column header 
'************************************************************************ 
      For h=0 to intDC0 
         Response.Write "<TR>" 
 
'************************************************************************ 
'*** Loop to create spaces in front of Column headers 
'*** to align with Row header 
'************************************************************************ 
         For c=0 to intDC1 
            Response.Write "<TD></TD>" 
         Next 
 
'************************************************************************ 
'*** Iterate through Axes(0) Positions writing member captions to table  
'*** header 
'************************************************************************ 
         For i = 0 To intPC0 
            Response.Write "<TH>" 
            Response.Write "<FONT size=-2>" 
            Response.Write cst.Axes(0).Positions(i).Members(h).Caption 
            Response.Write "</FONT>" 
            Response.Write "</TH>" 
         Next 
         Response.Write "</TR>" 
      Next 
'************************************************************************ 
'*** Use Array values for row header formatting to provide 
'*** spaces under beginning row header titles 
'************************************************************************ 
      For j = 0 To intPC1 
         Response.Write "<TR>" 
         For h=0 to intDC1 
            Response.Write "<TD><B>" 
            Response.Write "<FONT size=-2>" 
            Response.Write cst.Axes(1).Positions(j).Members(h).Caption 
            Response.Write "</FONT>" 
            Response.Write "</B></TD>" 
         Next 
         For k = 0 To intPC0 
            Response.Write "<TD align=right bgcolor=" 
            Response.Write csw 
            Response.Write ">" 
            Response.Write "<FONT size=-2>" 
            Response.Write cst(k, j).FormattedValue 
            Response.Write "</FONT>" 
            Response.Write "</TD>" 
         Next 
         Response.Write "</TR>" 
      Next 
      Response.Write "</Table>" 
 
%> 
</FONT> 
</BODY> 
</HTML> 

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.