摘要
許多機構都使用線上分析處理(OLAP)技術分析其關鍵業務資料。基於 OLAP 的資料切入為查詢Cube以及通過切入資料來獲得模式提供了一種途徑。ASP.NET 和 Microsoft Office Web Components (OWC)使能基於 Web 的 OLAP 報表。OWC 控制項包含可以嵌入到 Web 頁面以及程式員可編寫指令碼的 PivotTable 和 Chart 組件。本文作者使用 ASP.NET、OWC 和 SQL Server 2000 Analysis Services 構建了一個基於 Web 的 OLAP 報表應用來舉例說明了 PivotTable 和 Chart 組件的使用。
越來越多的公司使用線上分析處理(OLAP)和資料切入技術來處理它們複雜的資料。OLAP是專門用於處理Cube的技術,這些資料間的模式和關係並不清晰。Microsoft SQL Server 2000 Analysis Services 因其與 SQL SERVER 2000 的緊密整合並且與 SQL Server 後續版本的更緊密的整合,正在成為一種被廣泛採納的 OLAP 處理和資料切入的選擇。
由於 OLAP 技術的廣泛應用,開發人員需要依賴基於OLAP的多維資料來源來設計開發報表設計方案。這是一項複雜的工程,因為基於 OLAP 的報表設計或者資料切入技術,需要更多的靈活性和更高的互動性。資料切入技術,按照其定義,不是靜態,而是使用者可以根據其需要,在構建的Cube 立體空間範圍內來建立自己所需要的視圖。這與傳統的基於關聯式資料庫系統(RDBMS)的查詢形成鮮明的對比,後者受制於定義好的表間的關係。RDBMS查詢無疑是有創造性 的,但有一定的局限性。藉助基於OLAP的資料結構,你可以更靈活地進行查詢,而傳統的靜態報表設計對於查詢和理解基於OLAP的資料毫無協助。
軟體開發人員在設計一項基於OLAP的報表設計方案時面臨四個方面的問題:
第一、這項方案必須可以串連並查詢多維資料來源;第二、 這項方案必須保證使用者靈活便利地使用資料;
第三、由於不能預測那些是使用者認為重要的資料檢視,因此這項方案必須允許使用者儲存定製的報表設計;第四、這項方案必須提供一個包含圖表的可讀取的介面,因為包含圖表的報表設計在視覺上更有效果。
請允許我增加第五條:這項方案應該是基於 Web 的,即它應是一個基於伺服器的 Web 應用程式,可以通過瀏覽器進行訪問(通過 Internet 或者 Intranet),有了上述五條苛刻的要求,開發人員該如何做呢?
事實上,微軟公司提供了一組稱為 Office Web Components (OWC) 的組件可以協助我們構建基於Web 的複雜的、介面友好的基於 OLAP 的方案。 OWC 是一組 COM 控制項集,用於在 Web 上發布試算表(spreadsheets)、樞紐分析表(pivot tables)和圖表(charts),它為使用者提供了和 EXCEL 一樣豐富的互動體驗。同時,它還為開發人員提供了豐富的編程介面,藉助於這些功能強大且靈活的介面,開發人員可以設計專業的方案。Figure 1 顯示的是 OWC PivotTable 組件,它可以串連到OLAP資料來源並藉助便利的介面拖放來實現查詢操作。
Figure 1 OWC PivotTable Component
本文的目的旨在解決開發人員的要求,假設他們正在使用 ASP.NET 和 Office Web Components(OWC)開發一個用於Web上的基於 OLAP 的定製 的報表設計方案。我們將提供一個基於 XML 的 Web Services 的一體化應用程式架構,並展示如何建立該應用程式架構並配置OLAP資料來源以便通過HTTP協議 來訪問。此外,我們還將描述如何向使用者部署這個解決方案。大多數Web應用程式完整安裝在Web伺服器上並且在應用部署時不需要使用者的互動操作,但OLAP 和 OWC對想使用你的定製方案的使用者提出了一定的要求。
重要的概念和術語
OLAP 技術中充斥的專業術語是理解其真正好處的障礙。本文假設讀者熟悉 OLAP,尤其是熟悉SQL Server 2000 Analysis Services。即使如此,在繼續討論之前,我們應該首先闡明本文中涉及的以及在廣闊的OLAP和資料切入領域應用的重要術語和概念。
首先,區分 OLAP 和資料切入技術是很重要的。基於 OLAP 的資料來源或者資料倉儲可被細分為一個或多個Cube,該Cube是一個可以用 MDX 進行查詢的多維資料結構。Cube 包含一組被稱為維度屬性,維度可以大致理解為資料表中的欄位,與資料表中的欄位不同的是維度中還包含一組層級(level)組成的等級(hierarchy)。例如,一個年曆維度可被分為季度層級、月層級、周層級。一個Cube中包含一組度量值(measure)。度量值是實際的數值,一般是數值型。例如,你可以通過”零售”Cube按時間(維度)和地點(維度)瀏覽各商品銷售情況(度量值)。
SQL Server 2000 Analysis Services 使你能通過被稱作 Analysis Manager 的 MMC 嵌入式管理單元完成 OLAP 處理。 這隻不過是一個被整合到 Analysis Services 的樞紐分析表介面,基於 OLAP 的資料常常是通過樞紐分析表來瀏覽,它允許你 將多個維度和度量值拖放到類似 spreadsheet 的布局中。PivotTable 控制項將拖放操作轉換為 MDX 查詢,然後再由 MDX 查詢傳送給 OLAP 資料來源, 最後返回結果集。
Analysis Manager 在資料庫伺服器上安裝一個 PivotTable 服務,該服務包含一個允許串連到OLAP 資料來源的 OLE DB 提供者(provider)。該提供者被取名為 Microsoft OLE DB Provider for OLAP Services 8.0 ,沒有它,你是不可能串連到 OLAP 資料來源上的。用於該提供者的連接字串包括 用於資料倉儲的 DataSource 屬性和表示擬進行串連的Cube名的 DataMember 屬性。PivotTable 服務還必須安裝在客戶機上,否則,客戶機上的 PivotTable 控制項 將不能與 OLAP 資料來源通訊。
基於 Web 的 OLAP 報表應用的架構
Figure 2 顯示了基於Web的OLAP報表應用的大致架構,它包括三個途徑,依次編號以展示程式的工作流程。他們共同提供了下述的特性:
用戶端 PivotTable 控制項和 OLAP 資料來源之間的 HTTP 串連,通過 XML Web Service
直接來自用戶端 PivotTable 控制項的 OLAP 資料來源動態查詢(沒有任何中間組件)
藉助 XML Web Service 從關係型資料庫結構存取定製的 PivotTable 報表資料
Figure 2 OLAP 架構
在程式中 XML 扮演了一個中心角色。OWC PivotTable 控制項在本地將其內容序列化為XML格式。你不僅可以寫XML格式的資料,而且可以用XML資料來載入PivotTable控制項,只要這些XML資料匹配XML Schema。因此ASP.NET開發人員可以建立基於XML的Web Services實現與OWC PivotTable控制項的互動訪問。一個Web方法產生格式化的XML給PivotTable 控制項(Pathway 1), 同時另外一個方法接受來自PivotTable 控制項的序列化的輸出並儲存到永久媒介譬如資料庫或檔案中。
一旦在 PivotTable 和 OLAP 資料來源間建立好連接,使用者就可以藉助PivotTable控制項中的拖拉UI進行定製的資料查詢工作。控制項一被更新,它動態產生一個多維度運算式(MDX)並通過HTTP網關將請求發送給OLAP資料來源(Pathway 2)。這種通訊獨立於Web伺服器,Web也直接存取資料庫。在此結構中,Web伺服器的作用是建立在PivotTable和OLAP資料來源間的初始化串連,確保定製的PivotTable報表的儲存和檢索。
Office Web 元件
OWC10.0 提供的功能不僅強大而且為使用者所熟知。因此,你定製的解決方案能很快得到熟悉並用慣了 Excel 的使用者的認可。Figure 3 是隨同Office XP一起交付的 OWC 控制項 (version 10) 的一個概述 ,注意 隨 Office 2000 發布的是 OWC 的前一個版本(version 9),其提供的編程介面和使用者介面要遜色得多。雖然我們所討論的特性並不都支援以前的版本,但大多數 OWC (version 10)的特性都適用於 OWC (version 9)。
在 Web 項目中使用 OWC 控制項時,ASP.NET 開發人員所能使用的資源很少。大多數網上的例子代碼都假設你使用用戶端的指令碼語言(如 VBScript )與 OWC 控制項互動。雖然這是一個可行的方法,但它忽略了使用 ASP.NET 更強大的功能的可能性。即建立一個伺服器端的 OWC 執行個體,建立一個串連,設定屬性,然後使用這個執行個體為單獨的 PivotTable 控制項用戶端執行個體產生 XML 資料。編程邏輯被包含在OLAP Data Access Objects 之中,部分架構參見 Figure 2 中的 Pathway 1。接著,XML 資料通過基於 XML 的 Web Service 傳送給用戶端組件。見 Pathway 1。
Figure 4 中列出了我們將在本文中使用的 OWC 控制項——即 PivotTable 和 Chart 控制項。Spreadsheet 和 DataSourc 控制項不在此列,因為它不涉及我們在這裡所討論的體系架構。Figure 5 和 Figure 6 分別概要介紹了 PivotTable 和 Chart 控制項各自的編程介面。
PivotTable 有一個複雜的介面,但其最重要的是 XMLData 屬性。這個屬性是整個 PivotTable 內容的 XML 表示形式,包括與 OLAP 資料來源的串連資訊。XMLData 同時還儲存有當前視圖的維度和量度值以及應用的格式化資訊。XMLData 可以被設定和擷取,它是動態定製 PivotTable 控制項的重要手段。
為 HTTP 訪問配置 OLAP 資料來源
在我們開始著手構建我們的基於 Web 的 OLAP 報表設計程式前,我們必須配置 Analysis Services 資料來源以便 IIS 可以訪問它。IIS Web網站必須和 Analysis Services 安裝在同一伺服器上,並且確保在IIS Web網站中包含一個名為 msolap.asp 檔案。此檔案 提供了 HTTP 連接埠請求和Analysis Services資料來源間溝通的橋樑。Msolap.asp存放在\Program Files\Microsoft Analysis Services\bin目錄下。我們建議使用安全通訊端層(SSL)認證機制配置一個安全連線(HTTPS)來存取資料來源。為此你必須購買用於 Analysis Services 伺服器的 SSL 認證。當然,我們也可以使用非安全(HTTP)串連方式來存取資料來源,不過我們不建議這樣做。
一旦IIS在 Analysis Services 伺服器上安裝完畢,配置一個用於 HTTPS 存取的新 Web 網站。首先,在預設的Web根目錄(\Inetpub\wwwroot\)外建立一個Web網站目錄。為了安全的目的,我們建議停 到預設 Web 網站。除此之外,如果你安裝了SSL認證,需要關閉防火牆上的80連接埠,開啟443連接埠。
其次,將 msolap.asp 檔案從\Program Files\Microsoft Analysis Services\bin 目錄拷貝到建立的Web網站目錄,使用 IIS 管理器將建立的 Web 網站目錄配置為一個 Web 應用程式,為 Web 網站添加 Host Header Name (例如,olap.mycompany.com)。
第三,購買並在伺服器上安裝 SSL 認證。在購買認證過程中確保 Web 網站可以通過 80 連接埠訪問。認證安裝完畢後,在防火牆上關閉80連接埠並開啟443連接埠。使用 IIS 管理器設定 Web 目錄的安全以禁止匿名訪問,允許 Basic Authentication。最後,重設 IIS 以接受更改。
HTTPS 建立完畢後,必須更新指向 OLAP 資料來源的連接字串。連接字串格式如下:
Provider=MSOLAP;user id=Domain\Username;password=Password;Data
Source=https://ServerName;Initial Catalog=OLAPDataSourceName
更詳細的資訊參見知識庫文章(Knowledge Base )Q279489:“How to Connect to Analysis Server 2000 By Using HTTP Connection”.
安全訪問OLAP
一旦 OLAP 資料來源可以通過 HTTPS 來訪問,那麼安全信任是不可或缺的。因為現在任何一個可以瀏覽網站的人都有可能訪問網站上的資料來源。譬如,一個遠端使用者 只要知道 Analysis Server 的 URL以及 Initial Catalog 的名稱,就可以開啟 Excel 並將 PivotTable 聯結到 OLAP 資料來源。
Analysis Services 實現了基於 Windows NT 使用者帳號的Cube安全規則。基本思路是在伺服器上建立一個或多個本地 Windows NT 使用者帳號,賦予它們 SQL Server 資料庫角色。然後將該資料庫角色賦予給某個Cube 角色,並綁定該資料庫角色到特定的Cube。Cube 角色繼承了 Windows NT 使用者識別碼 和密碼,你將使用者識別碼 和密碼添加到 OLAP 資料來源連接字串中即可。
值得注意的是:一個 OLAP 資料來源中也許包含多個Cube。通過設定 OWC PivotTable 控制項中的 <DataMember> XML 標籤值為一個有效Cube名(在下一部分解釋),你可以串連到特定的Cube。這個Cube必須被賦予一個角色,該角色與 OLAP 資料來源連接字串中的信任對應。
建立應用程式
現在是我們用 ASP.NET 和 OWC 10 建立應用程式的時候了。該應用程式的使用者介面包含在一個名為 owc10.aspx 的 Web Form 中, 如 Figure 7 所示。介面中包含一個內嵌的用戶端的 OWC PivotTable 控制項和一組按鈕,分別用於啟用 OLAP 資料來源串連、儲存和擷取定製的報表。 這些功能由 wsOLAP.asmx 中的 XML Web Service 通過一組 Web 方法直接提供。olap.js 指令檔中是一組用戶端的 JavaScript 函數,使用者介面使用 這些函數與上述 Web 方法掛鈎。這些 JavaScript 函數通過在用戶端調用這些方法將大多數請求委託給 Web Service。在一個DHTML 行為檔案Webservice.htc中,實現了上述 上述功能。在olap.js檔案中,使用者介面使用一組用戶端的JavaScript函數調用了上面的Web 方法。實現對Web Service的訪問。這些都是在一個 DHTML 行為檔案 Webservice.htc 中完成的。
Figure 7 Web-based OLAP 報表設計程式
本文例子程式被稱為 OLAPReport,使用 Visual Studio.NET 1.1 版本開發,使用 Foodmart 2000 資料倉儲作為 其 OLAP 資料來源,並且以 Sales Cube作為其資料成員。 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>
注意這個串連串沒有包含安全信任(如 User ID 和 password),只有在 Analysis Server 中實現了安全規則時才需要這些信任, 如前所述,我們鼓勵你添加安全規則。一旦你準備就緒,只要簡單地將此信任加到串連串的尾部即可。
為了讓該串連串工作,不要忘了配置用 HTTP 可以存取 Analysis Server。配置步驟在本文前面也有描述。項目初始設定使用 http://localhost/olap 作為其資料來源,因此,你需要在預設的 Web 網站下 建立一個名為 olap 的虛擬目錄,並將 msolap.asp 檔案拷貝到該虛擬目錄下。簡單一點,你可以用你的機器名替代 Data Source 的值,省略前置 https:// 部分。這將允許到標準 OLAP 資料來源的串連,而不是 HTTP 串連。如果出於示範目的,這樣做是可以的。 但是如果你不啟用 HTTP 存取,你就無法將 Analysis Server 暴露給網路域外的使用者。
最後,在你繼續網下做之前,需要在 OLAPReport 項目中設定到 OWC10 COM 組件的引用(通常,Setup 項目會負責此事,但知道這個步驟總是很有用的)。其設定步驟如下:開啟 Solution Explorer,滑鼠右鍵點擊項目表徵圖,從快顯功能表中選擇 Add Reference。出現對話方塊後,切換到 COM 標籤,尋找名為 Microsoft Office XP Web Components (OWC10.DLL) 的組件。點擊 Select 按鈕,然後 OK 按鈕。Visual Studio .NET 自動產生一系列該組件的封裝檔案並添加 OWC10 的項目引用。
串連控制項和資料來源
現在依次實現應用程式的三個特性。第一,討論 Pathway 1 —— 如何在用戶端的 OWC 控制項和OLAP 資料來源間建立串連。使用使用者介面上的 Set Connection 按鈕實現本功能。此按鈕調用JavaScript 函數 initializePivotTable 並使用Cube名作為參數。本例中使用 Sales Cube。
JavaScript 繼而調用 InitializePivotTableXML Web 方法(在名為 InitializePivotTableXML Web 的 DHTML 行為中實現,參見本文前述內容)。此 Web 方法串連到 OLAP 資料來源並且產生PivotTable 控制項的 XMLData,其輸出由一個 JavaScript 函數 onInitializePivotTableResult 處理。Figure 8 是 JavaScript 的代碼,而 Figure 9 是 Web方法的代碼。這兩個例子中的代碼好就好在不僅很簡單,而且還可以重用。通過簡單的步驟,我們就可以使用這些函數在 Web 服務器上產生定製的 XMLData 並將其傳到用戶端的 PivotTable 去。
第二,在建立串連的過程中,我們有效地使用 Sales Cube的空白報表初始化 OWC 控制項。空白報表使用Cube中的欄位資訊和度量值填充 Field List,通過拖放欄位進 Row 和 Column域,將 Measures 拖拽到 Totals 域,使用者可以在 PivotTable 中建立定製的報表。每次使用者拖放欄位到 PivotTable 去,後者向資料來源發送查詢請求,然後得到資料來源的更多的查詢結果。資料交換 是由 Web Service 單獨管理的,只有在控制項與資料來源建立初始化串連時才使用它。Figure 2 中顯示了資料交換的通道 Pathway 2。
動態產生定製的 PivotTable 報表
現在讓我們通過編程實現一個定製的報表來深入 PivotTable 物件模型。我們想要建立的定製報表允許使用者選擇兩個城市,並且比較 Drinks Product Family 的 Store Sales。我們使用和 Pathway 1 一樣的方法,這意味著我們調用 Web 方法以便產生描述報表的 XMLData。然後我們將 Web 方法返回的 XMLData 賦值給控制項的 XMLData 屬性。介面提供了兩個下拉式的城市列表和一個 Load Custom Report 按鈕(參見 Figure 7)。此按鈕啟用一個名為 LoadCustomReport 的 JavaScript函數,該函數接受來自 Web 表單的兩個城市作為輸入參數,繼而調用 LoadCustomPivotTableReport Web 方法,該方法為定製報表產生 XMLData。最後,一個 JavaScript 處理函數從 Web 方法中接受 XMLData 並賦值給內嵌的 PivotControl 的 XMLData 屬性。Figure 10 是 Web 方法的代碼。
LoadCustomPivotTableReport 方法使用了大量的 PivotTable 的屬性(參見 Figure 5)。請務必牢記以下幾點:
使用 InsertFieldSet 方法在行和列的軸中插入合適的 PivotFieldSet
使用 IncludedMembers 屬性以區分表中不同的 PivotField。IncludedMembers 屬性的值為一個變數數組,對應於 .NET 中的 Object 數組
IsIncluded 屬性允許或禁止 PivotFieldSet 中特定的 PivotField
InsertTotal 方法在 totals 網格中插入合適的度量值
NumberFormat 屬性定義了度量值的格式。此屬性接受格式代碼(如"0.###")或者預定義的格式,如 "Currency" 或 "Percent"
儲存和擷取定製的報表
既然我們已經將報表的產生過程經曆了一遍,我們不希望每次產生新報表時都重複這項工作。可喜的是,用於複製報表的資料儲存在 XMLData 屬性中。因此,儲存報表的工作變得很簡單,只需將XMLData 屬性儲存在可永久存放的介質,如關聯式資料庫中即可。載入報表的工作同樣簡單,只需獲得儲存的 XMLData 並 將它重新綁定到 PivotTable 上即可。這個特點如 Figure 2 中的 Pathway 3 所示。
應用程式的 Web Service 中有兩個方法,分別用於儲存和擷取定製報表的 XMLData。在例子中,我們將 XMLData 儲存在名為 OLAPReport1.xml 的文字檔中。程式介面提供了兩個按鈕:Save Report 和 Load Saved Report。Save 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函數完成反向的工作,如 Figure 11 所示。此函數調用一個 Web 方法開啟文字檔,擷取 XMLData,然後回傳用以綁定 PivotTable 控制項。
使用 OWC 事件
OWC 10 提供了幾個有用的事件供我們在用戶端事件處理中使用。可以用 VBScript 或 JavaScript 來寫事件處理常式。VBScript 中事件處理格式如下:
Sub <ObjectName>_<EventName>
JavaScript 中的文法如下:
<script language="javascript" event="EventName" for="ObjectName">
例子程式中示範了如何捕捉 Query 和 CommandExecute 事件。事件處理代碼參見 Figure 12。當Query 事件被啟用時,程式在 Web 頁的左邊文字框中填寫事件記錄。CommandExecute 事件被啟用後,我們首先檢查是否它是個重新整理命令。如是,程式在文字框中填寫事件的日期和事件記錄。
綁定圖表到 PivotTable 控制項
在多數情況下,圖形化的資料表示對使用者試非常有價值的。幸運的是,OWC 提供了 ChartSpace 控制項,後者提供了圖形化的函數。為了改進定製報表,我們使用橫條圖來表示資料。雖然這似乎是項艱巨的工作,但 ChartSpace 控制項可極大地協助我們解決這個難題。ChartSpace 控制項有用的特徵之一是它能將另外控制項, 如 PivotTable 綁定為它的資料來源,其還可以以圖形格式顯示當前的 PivotTable 視圖。最終的結果是 PivotTable 視圖的變化會自動地顯示在 ChartSpace 控制項中。
在例子中,當產生了定製的 PivotTable 報表後,我們只需將 PivotTable 賦值到 ChartSpace 控制項的 DataSource 屬性去即可。
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 欄位來分組 sales 度量值。在此例子中,時間依照年/月/日順序分組。如果我們在定製的報表中不想使用Cube中定義好的分組模式,我們可以使用 OWC 10 控制項中的定製分組功能。Apply Custom Grouping 按鈕調用一個 JavaScript 函數,後者調用 ApplyCustomGrouping Web方法。輸入參數為當前載入的項目的 XMLData。此 Web 方法將載入一個 PivotTable 控制項並調用AddCustomGroupField 方法定義定製分組,例子中使用半年時間來分組。代碼見 Figure 13。
注意我們添加一個有兩個成員("1stHalf" 和 "2ndHalf")的定製分組("CustomGroup1")以涵蓋整年。調用 AddCustomGroupMember 方法以添加上述的定製成員。當 Web 頁面上的函數執行時,ChartSpace 控制項可以自動將定製分組功能反映到橫條圖表中——這也是使用 Office Web Components 10 的優點。
還有一個與定製分組有關的問題。XMLData 不儲存與定製分組名相關的資料。如果儲存 XMLData (如前面 Save Report 函數所執行的)後,再將儲存的 XMLData 載入到 PivotTable,定製分組的標題列("1stHalf", "2ndHalf")以 GUIDs 形式顯示。儘管如此,OWC 10 組件與以前版本相比,有了大的改進,並因此成為基於 Web 的 OLAP 報表設計的非常有效工具。
對 HTTP 用戶端要求
既然我們已經構建了我們基於 Web 的 OLAP 報表設計程式,為了使用該程式,每個 Web 使用者必須進行如下配置。第一、每個 Web 使用者須安裝 Office XP 到自己電腦上。或者,他必須有權訪問一個伺服器上授權的 Office XP,因為 OWC 組件是與 Office XP一起發行的。
第二、每個 Web 使用者必須使用 Internet Explorer 5.0 或更高版本。因為 Web 程式使用了 Web Service DHTML 行為,需要 Internet Explorer 5.0 或更高版本的支援。此外,用戶端的 OWC 組件是 Microsoft COM 組件,只能在微軟的瀏覽器下運行。(我們也知道其它一些瀏覽器也提供了支援用戶端 COM 控制項的外掛程式,但我們沒有在這些瀏覽器下測試過 OWC)。
第三、每個 Web 使用者必須正確安裝了 OLE DB 供應者,尤其是 Microsoft OLE DB Provider for OLAP Services 8.0 或更高版本。該供應者與分布式的 PivotTable Services 一起安裝,後者包括一組 DLL 檔案並且需要 Microsoft Data Access Components (MDAC)的支援。PivotTable Service 可以從 SQL Server 2000 CD-ROM 的\Msolap\Install\Pts 目錄下安裝。可以選擇安裝 PtsLite.exe 或 PtsFull.exe,後者安裝 PivotTable Service 和 MDAC,而前者僅安裝 PivotTable Service。如果你不能確定你需要哪種版本,安裝 PtsFull.exe 即可。因為只有 Microsoft Analysis Services 能自動安裝服務,所以你還需在每個 Web 客戶機上安裝 PivotTable Service。你可以使用 Excel PivotTable 嚮導去檢測 Web客戶機上是否已經安裝了 PivotTable Service。
第四、每個 Web 客戶必須將應用程式的 Web 域添加到其 IE 的受信網站清單中去。因為應用程式駐留在不同於客戶機的域上,因此 OWC PivotTable 控制項每次必須跨域去訪問 OLAP 資料來源。所以,程式的 Web 域必須置於客戶機受信任的網站內。具體配置方法如下:開啟IE——點擊 Tools| Options——選擇 Security 標籤——點擊 Trusted 表徵圖——點擊 Sites 按鈕。
你也可以採取另外一種辦法:為客戶提供一個註冊檔案以自動更新客戶的受信網站。以下是一個註冊鍵的例子:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet
Settings\ZoneMap\Domains\mycompany.com] "https"=dword:00000002
注意,註冊檔案對同一客戶機上的不同使用者必須分別運行,因為其只更新 HKEY_CURRENT_USER下的註冊索引值。例如,如果兩個域使用者共用同一機子,那末他們必須以各自的帳號登陸後分別運行註冊檔案。