关闭

ASP.NET 中构建 OLAP 报告应用程序

1448人阅读 评论(0) 收藏 举报

利用 SQL Server 2000 Analysis Services Office XP ASP.NET 中构建 OLAP 报告应用程序

发布日期: 1/13/2005 | 更新日期: 1/13/2005

Jeffrey Hasan Kenneth Tu

本文假定您熟悉 ASP.NET SQL Server

下载本文的代码:OLAP.exe (373KB)

摘要

许多公司都利用在线分析处理 (OLAP) 技术来分析它们的关键业务数据。基于 OLAP 的数据挖掘提供了一种查询多维数据集的方法,并向下追溯到查找模式的数据。ASP.NET Microsoft Office Web Components (OWC) 可以启用基于 Web OLAP 报告。OWC 控件包括 PivotTable Chart 组件,这些组件可以嵌入在 Web 页中,并可以由编程人员编写脚本。在本篇文章中,作者利用 ASP.NETOWC SQL Server 2000 Analysis Services 构建了一种基于 Web OLAP 报告应用程序,以说明这个构建过程。

越来越多的公司利用在线分析处理 (OLAP) 技术和数据挖掘技术来对它们的复杂数据集进行分析。OLAP 是专门为分析多维数据集而设计的,这些数据集中数据之间的模式与关系不是特别明确。Microsoft® SQL Server™ 2000 Analysis Services 是一种用来进行 OLAP 处理与数据挖掘的普遍选择,因为它与 SQL Server 2000 集成紧密,并且将与新发行的每版 SQL Server 集成得更加紧密。

随着 OLAP 技术的普及,要求开发人员创建依赖基于 OLAP 多维数据源的自定义报告解决方案的要求日益增长。这是一种错综复杂的尝试,因为基于 OLAP 的报告,或者数据挖掘,需要灵活性和高水平的交互性。根据定义,数据挖掘不是静态的。相反,在基础多维数据集构造方式的约束内,用户必须能够构造任意的数据视图。这与传统的关系型数据库管理系统 (RDBMS) 查询方式相比较,后者受成员表之间紧密定义的关系约束。RDBMS 查询当然可以获得创造力,但仅限于一定程度而已。利用基于 OLAP 的数据结构,查询内容可以灵活得多。传统的静态、固定报告在帮助您查看和理解基于 OLAP 的数据方面没有增添什么价值。

在要求软件开发人员创建基于 OLAP 的自定义报告解决方案时,他们面临四重挑战。第一,这种解决方案必须能够和多维数据源进行连接并能够查询。第二,这种方案必须允许用户轻松、灵活地向下追溯数据。第三,这种方案必须可以使用户保存自定义的向下追溯报告,因为您无法预测用户发现的什么数据视图是重要的。第四,这种解决方案必须提供一个包含图表的可读界面,因为当报告可见时,它会更加有效。

请允许我添加可选的第五条要求:这种基于 OLAP 的报告解决方案应当是基于 Web 的,也就是说,它应当被实现成为一个基于服务器(位于 Internet 或者 intranet 之上)的 Web 应用程序,并可以从 Web 浏览器进行访问。对于这五条苛刻要求,软件开发人员该如何应对呢?

正如其结果一样,Microsoft 提供了一组被称为 Office Web Components (OWC) 的组件,这套组件可以帮助您为 Web 构建复杂的、用户友好的、基于 OLAP 的、自定义报告解决方案。这些 OWC 组件是一组用于向 Web 发布电子数据表、数据透视表和图表的 COM 控件。和 Microsoft Excel 一样,它们可以为用户提供丰富的交互体验。OWC 组件还公开了丰富的编程接口,该接口具有高度的功能性和灵活性,据此可以构建自定义解决方案。 1 所示为 OWC PivotTable® 组件,它可以使您连接到一个 OLAP 数据源,并利用一个便利的拖放界面对数据源进行查询。

1 OWC PivotTable 组件

本文的目的是讨论利用 ASP.NET Office Web Components 来为 Web 开发基于 OLAP 报告的自定义解决方案的开发人员所需要的内容。我们将介绍一种应用程序体系结构,这种结构包括了基于 XML Web 服务,并且我们将为您说明如何构建它以及如何配置 OLAP 数据源从而通过 HTTP 访问它。另外,我们还将说明如何将解决方案部署给用户。大多数 Web 应用程序都是完全安装到 Web 服务器上的,并且不需要在部署过程中与客户端进行交互。但是,OLAP OWC 对想要使用自定义解决方案的客户端有特殊的要求。

重要术语与概念

OLAP 技术中充斥的专用术语可能是理解其真正优势的障碍。本文假设您对 OLAP 有一般的了解,并特别熟悉 SQL Server 2000 Analysis Services。即使这样,在进行之前我们还是要澄清本文中以及更广泛的 OLAP 与数据挖掘领域中非常重要的术语和概念。

首先,区分 OLAP 技术与数据挖掘技术非常重要。基于 OLAP 的数据源或者知识库可以细分为一个或更多的多维数据集,这是多维数据结构并可以利用 MDX 进行查询。一个多维数据集包含一组被称为维的属性,除了还包含一组分层的级别之外,它们大致对应于数据库字段。例如,年时间维可以细分为季度、月和周等级别。多维数据集还包括一个度量集合,它们是真正的数据值,而且一般情况下是数值型的。例如,零售多维数据集允许您根据商店位置(维)和时间(维)来查看单位销售额(度量)。

SQL Server 2000 Analysis Services 允许您执行 OLAP 处理(由称为 Analysis Manager Microsoft 管理控制台 (MMC) 管理单元提供)。这只是一个被集成在 Analysis Services 中的数据透视表界面。基于 OLAP 的数据通常利用一个数据透视表来查看,这种表允许您将多个维和度量拖放到类似电子数据表的布局中。PivotTable 控件将这种拖放操作转换成 MDX 查询,并传递给 OLAP 数据源,反过来,再接收一个结果集。

Analysis Manager PivotTable 服务安装在数据库服务器上,其中包括一个允许连接到 OLAP 数据源上的 OLE DB 提供程序。该提供程序被命名为 Microsoft OLE DB Provider for OLAP Services 8.0。没有它,要连接到 OLAP 数据源就不可能。该提供程序的连接字符串包括表示知识库名称的 DataSource 属性和表示要连接到的多维数据集名称的 DataMember 属性。PivotTable 服务还必须安装在客户端机器上;否则,客户端的 PivotTable 控件将不能和 OLAP 数据源进行通信。

基于 Web OLAP 报告应用程序体系结构

2 说明了我们的基于 Web OLAP 报告应用程序的高级体系结构。该报告应用程序的体系结构包括三条路径,这些路径的编码和应用程序工作流程的顺序相匹配。它们共同提供下面的功能集:

HTTP 上通过 XML Web 服务实现客户端的 PivotTable 控件和 OLAP 数据源之间的连接。

直接从客户端的 PivotTable 控件动态查询 OLAP 数据源(没有任何中间组件)。

通过 XML Web 服务,能够将自定义的 PivotTable 报告保存和检索到标准的关系型数据库结构中。

2 OLAP 体系结构

在这种应用程序体系结构中,XML 是主要的参与者。 OWC PivotTable 组件在本地将其内容序列化成 XML。您不但可以将数据写成 XML,而且还可以给 PivotTable 组件加载 XML 数据,只要这些数据符合 Excel 中定义的 XML 架构。这种属性允许 ASP.NET 开发人员创建可以和OWC PivotTable 控件进行双向通信的基于 XML Web 服务。一个 Web 方法可以生成格式化 XML,以填充 PivotTable 控件 (Pathway 1),而另一个方法可以从 PivotTable 控件接受序列化的输出,并将它保存到诸如数据库或文件等持久性媒体上 (Pathway 3)

一旦在 PivotTable 控件和 OLAP 数据源之间建立了连接,之后用户就可以开始利用 PivotTable 控件的拖放 UI 自由地组合自定义的数据视图。每次更新该控件时,它都会动态地创建一个多维的表达式 (MDX) 查询,并通过 HTTP 网关 (Pathway 2) 直接将请求发送给 OLAP 数据源。这种通信的发生与 Web 服务器无关;Web 页直接与数据库进行对话。在这种体系结构中,Web 服务器的作用是建立 PivotTable 控件和 OLAP 数据源之间的初始连接,并支持保存和检索自定义的 PivotTable 报告。

Office Web 组件

OWC 版本 10 提供了即装即用的功能,不但功能强大,而且用户尽人皆知。因此,对于已经熟悉和乐于使用 Excel 的用户可以较快地接受您的自定义解决方案。 3 总结了 Office XP 配备的 OWC 组件(版本 10)。注意,Office 2000 配备了前一版(版本 9)的 OWC,它提供的编程接口和用户接口的数量与版本 10 相比非常有限。尽管早期的版本并不支持我们讨论的所有内容,但我们对 OWC 版本 10 的许多讨论也适用于版本 9

ASP.NET 开发人员几乎没有什么资源可以将 OWC 组件合并到 Web 项目中。大多数在线代码示例都假定您是利用客户端脚本语言(例如 VBScript)来与 OWC 组件进行交互。虽然这种方法非常有用,但它忽视了一种 ASP.NET 可以使用的更强大的方法。也就是,可以创建一个服务器端 OWC 组件实例,建立连接,设置属性,然后利用该实例为一个单独的客户端 PivotTable 组件实例生成 XML 数据。这种编程逻辑包含在体系结构图 Pathway 1 中的 OLAP Data Access Objects 部分(参见 2)。然后,可以利用基于 XML Web 服务将 XML 传输给客户端组件,同样显示在 Pathway 1 中。

4 总结了本文中我们将要使用的 OWC 组件 PivotTable Chart 组件。这里不包括 Spreadsheet DataSource 控件,因为我们讨论的体系结构中不包含这些控件。 5 6 分别总结了 PivotTable Chart 组件的编程接口。

PivotTable 组件的接口复杂,但要切记的最重要的一点是 XMLData 属性。这是用 XML 来表示 PivotTable 的全部内容,包括连接到 OLAP 数据源的信息。XMLData 还存储了当前视图中的维数和度量以及使用的格式。可以设置和检索 XMLData 属性,这是一种动态自定义 PivotTable 组件的重要方法。

配置 HTTP 访问的 OLAP

在我们开始构建基于 Web OLAP 报告应用程序之前,我们必须配置由 Microsoft Internet 信息服务 (IIS) 访问的 Analysis Services 数据源。IIS Web 站点必须安装在安装 Analysis Services 的同一个服务器上,并且它还必须包含一个称为 msolap.asp 的单独文件。该文件是来自 HTTP 端口上的请求与 Analysis Services 数据源之间的桥梁。该文件位于 /Program Files/Microsoft Analysis Services/bin 路径之下。我们建议您利用安全套接字层 (SSL) 证书在安全连接 (HTTPS) 上配置访问的数据源。该步骤要求您购买 Analysis Services 服务器的 SSL 证书。还可以利用不安全的 (HTTP) 连接来访问数据源,但我们不推荐使用这种方法。

一旦在 Analysis Services 服务器上安装了 IIS,就可以为 HTTPS 访问配置新的 Web 站点。首先在默认的 Web 根目录 (/Inetpub/wwwroot/) 之外创建一个新的 Web 站点目录。出于安全的目的,我们建议您停用默认的 Web 站点。另外,一旦安装了 SSL 证书,就应当关闭防火墙的 80 端口并为 HTTPS 访问打开 443 端口。

msolap.asp 文件从 /Program Files/Microsoft Analysis Services/bin 目录复制到新的 Web 站点目录中,并利用 IIS Manager 将新的 Web 站点目录配置为 Web Application 并为 Web 站点添加一个 Host Header Name(例如,olap.mycompany.com)。

购买并在服务器上安装 SSL 证书。在购买验证的过程中,通过 80 端口一定已经可以访问 Web 站点。一旦安装了证书,就可以关闭防火墙的 80 端口并打开 443 端口。利用 IIS Manager 设置 Directory Security,这样可以禁用 Anonymous Access 而启用 Basic Authentication。最后,重新设置 IIS 以应用这些更改。

一旦建立了 HTTPS 访问,必须更新指向 OLAP 数据源的 OLE DB 连接字符串。连接字符串的格式如下:

Provider=MSOLAP;user id=Domain/Username;password=Password;Data

Source=https://ServerName;Initial Catalog=OLAPDataSourceName

有关更多信息,请参考知识库中的文章 279489“How to Connect to Analysis Server 2000 By Using HTTP Connection

OLAP 安全访问

一旦可以通过 HTTPS 访问 OLAP 数据源,安全凭据是必需的,因为现在任何可以浏览您的 Web 站点的人都可以使用您的数据源。例如,某个远程用户只要为 Analysis Server 提供 URL 并提供 Initial Catalog 的名称,就可以打开 Excel 并将 PivotTable 连接到您的 OLAP 数据源。

Analysis Services 根据 Windows NT® 用户帐户实现多维数据集的安全角色。本质上,您在服务器上创建一个或多个本地 Windows NT 用户帐户并将它们分配给一个 SQL Server 数据库角色。然后将该数据库角色分配给多维数据集角色,并将该多维数据集角色分配给特定的多维数据集。多维数据集角色本质上继承了 Windows NT 用户 ID 与密码凭据。然后您可以将用户 ID 与密码凭据添加到 OLAP 数据源连接字符串中。

注意,一个 OLAP 数据源可能包含多个多维数据集。通过将 OWC PivotTable 控件的 <DataMember> XML 标记值设置为有效的多维数据集名称,可以连接到特定的多维数据集(下一节将对此进行解释)。给该多维数据集分配的角色必须对应于 OLAP 数据源连接字符串中的凭据。

构建应用程序

现在是该利用 ASP.NET OWC 10 构建此应用程序的时候了。该应用程序的用户界面包含在一个称为 owc10.aspx 的单独的 Web 窗体中,如 7 所示。该界面包含一个嵌入式客户端 OWC PivotTable 控件以及一组按钮,这些按钮用来调用 OLAP 数据源连接以及保存和检索自定义报告。XML Web 服务中的一组 Web 方法可以直接提供这样的功能,这些方法可以在 wsOLAP.asmx 找到。该用户界面利用 olap.js 脚本文件中的一组客户端 JavaScript 函数挂接这些 Web 方法。这些 JavaScript 函数通过客户端调用方法将大部分请求委托给 Web 服务方法。这些要通过利用称为 webservice.htc DHTML 行为文件来完成。

7 基于 Web OLAP 报告应用程序

该示例应用程序的名称为 OLAPReport,可以从本文顶部的链接处下载该 Visual Studio® .NET 1.1 项目。它利用 Foodmart 2000 数据仓库作为它的 OLAP 数据源,并利用 Sales 多维数据集作为它的数据成员。Foodmart 2000 安装有 SQL Server 2000 Analysis Services

一旦下载并安装了这个项目文件,您只需遵循几个步骤就可以让编译后的项目正确地工作。首先,需要更改 OLE DB 连接字符串,应用程序利用该字符串引用 OLAP 数据源。该连接字符串被存储为 Web.config 文件中的一项自定义应用程序设置:

<appSettings>

    <add key="OLAPConnectionString" value="Provider=MSOLAP.2;

        Data Source=https://ServerName;Initial Catalog=Foodmart 2000>

</appSettings>

注意,该连接字符串不包含安全凭据(例如,用户 ID 和密码)。这些凭据只有在 Analysis Server 中实现安全角色时才需要。就像前面说明的那样,我们鼓励您添加安全角色。一旦就绪,只要将凭据添加到连接字符串的末端即可。

切记,为了使该连接字符串可以使用,需要为 HTTP 访问配置 Analysis Server。这些步骤前面也有说明。该项目最初设置使用 http://localhost/olap 作为其数据源,因此需要在默认的 Web 站点下创建一个称为 olap 的虚拟目录,并将 msolap.asp 文件复制到这个目录中。作为一条捷径,可以只将 Data Source 值替换为您的机器名称,而省略前面的 https://。这将提供一个到 OLAP 数据源的标准连接,而不是一个 HTTP 连接。对于演示的目的这样是可行的,但切记,如果不启用 HTTP 访问,就无法为网络域外部的用户公开您的 Analysis Server

最后,在继续操作之前,可能需要设置从 OLAPReport 项目到 OWC10 COM 组件的引用。(安装项目会为您做这一切,但无论如何,了解这些步骤是非常有用的)。为了添加引用,打开 Solution Explorer,然后鼠标右击项目图标并从弹出式菜单选择 Add Reference。对话框一旦打开,切换到 COM 选项卡,定位到称为 Microsoft Office XP Web Components (OWC10.DLL) 的组件。单击 Select 按钮,然后单击 OK。随后 Visual Studio .NET 将会为该组件生成一个 .NET 包装,并添加一个 OWC10 项目引用。

将控件连接到数据源

现在,我们依次实现该应用程序的三个功能。首先,我们讨论 Pathway 1 — 如何设置客户端 OWC 控件与 OLAP 数据源之间的连接。利用用户界面上的 Set Connection 按钮启动该功能(参见 7)。该按钮调用 JavaScript 函数 initializePivotTable,并传递要连接的多维数据集名称在这里为“Sales”

JavaScript 函数转而异步调用 InitializePivotTableXML Web 方法(由称为 webservice.htc DHTML 行为支持,我们在前面介绍过它)。该 Web 方法连接到 OLAP 数据源,然后生成 PivotTable XMLData。该 Web 方法的输出结果由称为 onInitializePivotTableResult JavaScript 函数处理。 8 显示了这些 JavaScript 函数的代码,而 9 显示了此 Web 方法的代码。这两个图中的代码非常简单,并且可以重用。非常简单,这些函数允许我们在 Web 服务器上生成自定义 XMLData,从而可以传递给客户端 PivotTable 控件。

在建立连接的过程中,我们可以用一个 Sales 多维数据集的空白报告有效地初始化 OWC 控件。该空白报告利用多维数据集所有可用的字段和度量来填充 Field List。然后,通过将字段拖放到 PivotTable Row Column 字段中,将 Measures 拖放到 PivotTable Totals 字段中,用户可以创建自定义报告。每次用户将字段放到 PivotTable 上,控件都会直接向数据源发送一个查询,这反过来会发送回更多的查询结果。这样的交流过程是独立于 Web 服务而进行的,Web 服务仅在建立控件与数据源之间的初始连接时才是必需的。这种交流由 2 中的 Pathway 2 表示。

动态生成自定义 PivotTable 报告

现在,我们通过编程生成自定义报告来更深层次地挖掘 PivotTable 对象模型。我们想要构建的自定义报告允许用户选择两个城市并比较 Drinks Product Family Store Sales。我们使用和 Pathway 1 相同的方法,这意味着我们调用一个 Web 方法来生成描述该报告的 XMLData。然后,我们在该 Web 方法中将 XMLData 赋值给嵌入式控件的 XMLData 属性。界面提供两个城市名的下拉列表和一个称为 Load Custom Report 的按钮(如 7 所示)。该按钮调用称为 LoadCustomReport JavaScript 函数,它接受 Web 窗体的两个城市名作为输入。该函数转而调用称为 LoadCustomPivotTableReport Web 方法,该方法以编程方式为自定义报告组合 XMLData。最后,JavaScript 处理程序函数从该 Web 方法接收 XMLData,然后将它赋值给嵌入的 PivotControl XMLData 属性。 10 显示了该 Web 方法的代码。

LoadCustomPivotTableReport 方法使用了 5 中描述的许多 PivotTable 属性。还要切记下面的小技巧:

利用 InsertFieldSet 方法将适当的 PivotFieldSet 插入到行或列轴中。

利用 IncludedMembers 属性定义表中包含的不同 PivotField 值。IncludedMembers 属性需要 Variant 数组,它等同于 .NET Framework 中的 Object 数组。任何其他数组类型都将产生错误。

利用 IsIncluded 属性启用或禁用 PivotFieldSet 中特殊的 PivotField

利用 InsertTotal 方法将适当的度量插入到总计网格中。

NumberFormat 属性定义度量的格式。该属性接受格式代码(例如,“0.###”)或预定义格式(例如,“Currency”“Percent”)。

保存与检索自定义报告

现在我们已经经历了创建自定义报告的艰辛,在每次需要生成新报告时我们不希望重复这个过程。谢天谢地,复制该报告必需的数据都包含在 XMLData 属性中。因此,保存报告只是将 XMLData 属性中的内容保存到一个永久性存储媒体(例如关系型数据库)中。加载报告只是检索存储的 XMLData 并将其重新绑定到 PivotTable。这种功能如 2 中的 Pathway 3 所示。

该应用程序的 Web 服务包括保存和检索自定义报告的 XMLData 的两个方法。在该示例中,我们将 XMLData 实际写入到称为 OLAPReport1.xml 的文本文件中。界面有两个按钮:Save Report Load Saved ReportSave Report 按钮调用一个 JavaScript 函数,该函数随后将 PivotTable XMLData 发送给下面的 Web 方法:

function SaveReport() {

    // Purpose:  Call Web Service method to save the report

    var strReportXMLData = frm1.PivotTable1.XMLData;

    var iCallID = service.svcOLAP.callService(onSaveReportResult,

        'SaveReport', strReportXMLData, 'OLAPReport1.xml');

}

Web 方法转而将 XMLData 写入一个文件。Load Saved Report 按钮调用一个进行相反操作的 JavaScript 函数,如 11 所示。该函数调用一个 Web 方法:该方法打开该文本文件,检索 XMLData,然后将其传递回来以绑定到 PivotTable 控件。

这种文件方法对于演示的目的来说是方便的,但是生产系统应当使用一个关系型数据库来存储自定义报告的 XMLData。这种方法可以提供更好的并发管理,并允许您以一种更有条理的方式来存储报告。

使用 OWC 事件

OWC 10 组件提供了几种非常有用的事件,在客户端事件处理程序中可以捕获这些事件。这些客户端事件处理程序可用 VBScript JavaScript 编写。在 VBScript 中,可使用基本事件符号,如下所示:

Sub <ObjectName>_<EventName>

JavaScript 中,必须使用 for-event 语法:

<script language="javascript" event="EventName" for="ObjectName">

该示例应用程序说明了如何捕获 Query CommandExecute 事件。事件处理代码如 12 所示。当 Query 事件被激发时,应用程序在 Web 页左边的文本区域字段中添加一些事件日志记录。当 CommandExecute 事件被激发时,我们检查一下,看看它是否是个刷新命令。如果是,应用程序就将日期和时间添加到事件日志记录的文本区域中。

将图表绑定到 PivotTable 控件

在许多情况下,图形化表示数据对用户来说非常有价值。幸运的是,OWC 提供的 ChartSpace 控件完全可以提供这类功能。为了改善我们的自定义报告,我们将生成一个条形图来表示数据。虽然这看起来像是一项巨大的任务,但 ChartSpace 控件可以在这个过程中为我们提供很大的帮助。它的一项非常有用的功能就是它可以将另一个控件(例如 PivotTable 控件)绑定为它的主数据源。然后它可以以图形格式显示当前的 PivotTable 视图。最终的效果是,PivotTable 视图中的更改将会自动反映在 ChartSpace 控件中。

我们的示例中,一旦生成自定义 PivotTable 报告,我们只需将 PivotTable 控件赋值给 ChartSpace 控件的 DataSource 属性:

/// Bind the Chart control to the PivotTable control

frm1.ChartSpace1.Clear();

frm1.ChartSpace1.DataSource = frm1.PivotTable1;

 

// Set the chart type to 3DBar.

frm1.ChartSpace1.Charts(0).Type = 50;

为了删除以前的图表实例,在给 DataSource 属性赋值之前,需要调用 Clear 方法。ChartSpace 控件提供了许多可自定义的属性(包括 Type 属性),它接受一个 ChartChartTypeEnum 枚举值来定义图表布局。

创建自定义分组

最后,我们来看一下 OWC 10 的一个重要的新功能能够创建自定义分组。目前,我们的报告根据 Time 字段集来对商店的销售额度量进行分组。在本例中,Time 被分组成 Year/Quarter/Month。假设我们希望利用一个多维数据集中已定义的字段以外的分组来对我们的自定义报告分组。我们可以通过利用 OWC 10 中的自定义分组功能来实现。标签为 Apply Custom Grouping 的按钮调用一个 JavaScript 函数,该函数转而调用 ApplyCustomGrouping Web 方法。该输入参数是目前加载报告的 XMLData。该 Web 方法然后就会加载一个 PivotTable 对象并利用 AddCustomGroupField 方法来定义自定义分组,在这里为半年时间的分组。代码如 13 所示。

请注意,我们已经添加了一个有两个成员(“1stHalf”“2ndHalf”)的自定义组 (“CustomGroup1”),这两个成员包含了整个年度。利用 AddCustomGroupMember 方法来添加自定义成员。当在 Web 窗体上实现此功能时,ChartSpace 控件也将自定义分组合并到了条形图中这是利用 Office Web Components 10 中集成组件的另一个好处。

对于自定义组支持来说有一个重要的问题。目前,XMLData 不保存适当的数据以保留自定义分组的名称。如果您要保存 XMLData(就像我们前面在 Save Report 功能中所做的那样),然后加载具有已保存 XMLData PivotTable,自定义组(“1stHalf”“2ndHalf”)的标题将会显示为 GUID。虽然如此,OWC 10 组件在集成性方面比以前版本有重大改进,这使其成为一种构建基于 Web OLAP 报告的非常有用的工具。

HTTP 使用对客户端的要求

现在我们已经构建了基于 Web OLAP 报告应用程序,为了开始使用这个应用程序,各 Web 客户端必须要实现四个配置步骤。首先,每个 Web 客户端必须在它们的机器上安装一个经过授权的 Office XP 本地副本。或者,它们必须可以访问某个服务器(对该服务器具有网络访问权)上的经过授权的 Office XP 副本。 Office XP 所带的 OWC 组件要满足同样的授权要求。

其次,每个 Web 客户端都必须使用 Internet Explorer 5.0 或者更高版本。原因如下。Web 应用程序利用 Web 服务 DHTML 行为,这种行为要求使用 Internet Explorer 5.0 或者更高的版本。另外,客户端 OWC 组件为 Microsoft COM 组件,这些组件不能在本地的非 Microsoft 浏览器中运行。(我们知道,有些浏览器为了运行客户端 COM 控件提供了插件程序,但是我们自己没有测试 OWC)。

第三个配置步骤是,每个 Web 客户端必须安装有正确的 OLE DB 提供程序:具体地说,Microsoft OLE DB Provider for OLAP Services 8.0 或者更高版本。该提供程序与可重新发布的 PivotTable Service 一道安装,PivotTable Service 中包含有一组 DLL 和所需版本的 Microsoft Data Access Components (MDAC)。可以从 SQL Server 2000 光盘的 /Msolap/Install/Pts 之下安装 PivotTable Service。需要选择所提供的两个安装文件中的一个文件:PtsLite.exe PtsFull.exe。后者安装 PivotTable Service MDAC,而前者只安装 PivotTable Service。如果不能确定需要安装哪个版本,只要安装 PtsFull.exe 即可。每台 Web 客户端机器几乎都需要 PivotTable Service,因为只有 Microsoft Analysis Services 可以自动安装服务。可以利用 Excel PivotTable 向导来确定已经运行 Web 客户端的机器是否安装了 PivotTable Service

第四个配置步骤是,每个 Web 客户端必须将应用程序的 Web 域添加到它们的 Internet Explorer 的可信站点列表中。应用程序所在的域与客户端机器的域不同,因此每次查询 OLAP 数据源时 OWC PivotTable 组件都必须跨越域边界。由于这个原因,应用程序的 Web 域必须要包含在客户端的可信站点中。为了保证的确做到了这一点,打开 Internet Explorer 并单击 Tools | Options 菜单。选择 Security 选项卡,单击 Trusted 站点图标,然后单击 Sites 按钮。

另外一种方法是,可以为客户端提供一个注册表文件,该文件会自动更新它们的可信站点列表。这里是一个示例注册表项更新:

[HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet

Settings/ZoneMap/Domains/mycompany.com] "https"=dword:00000002

注意,该注册表文件必须为客户端机器上的每位用户都运行一次。这是因为它要更新 HKEY_CURRENT_USER 注册表配置单元。例如,如果两个域的用户共享同一台机器,那么他们每人都需要为各自的帐户运行注册表文件。

小结

基于 Web OLAP 报告解决方案提出了吸引人的技术挑战,因为它们涉及几种复杂的技术,包括 SQL Server 2000 Analysis ServicesOffice Web ComponentsXML ASP.NET。这里我们介绍的体系结构其设计利用了所有这些技术,以求具有最佳功能。其他的体系结构也完全有可能,特别是随着当前技术在将来的不断发展。

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2755次
    • 积分:58
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:1篇
    • 译文:1篇
    • 评论:3条
    文章存档
    最新评论