使用微軟OWC中做為聯機分析系統前端展示工具[z]- -
使用微軟OWC中做為聯機分析系統前端展示工具
來自:自創 作者:magicspiral 日期:2004年07月02日 瀏覽次數:201 |
使用微軟OWC中做為聯機分析系統前端展示工具
我們在開發聯機分析系統時,經常要在B/S結構下開發,也就是說:聯機分析系統的前端展示工具需要能嵌入到瀏覽器中使用。當然你可以自己開發,但是,在一般的情況下,我們可以使用微軟的OWC組件實現這一功能。
OWC是Office Web Compent的縮寫,即Microsoft的Office Web組件。實際上,可以把OWC看作是可以在瀏覽器應用的EXCEL。OWC包括三個組成部分:speedsheet,PivotTable 和ChartSpace. Spreedsheet類似于普通的EXCEL 表格,
PivotTable 即透視表,可用來做聯機分析,(即鉆取,旋轉等)ChartSpace功能等同于EXCEL中的圖表。
那么,到底如何使用微軟OWC中做為聯機分析系統前端展示工具呢?只要看了幾行簡單的HTML代碼大家就明白了:
<object classid="clsid:0002E530-0000-0000-C000-000000000046" id="DSC">
</object>
上面這句的含義很簡單,就是把微軟的數據連接控件植入網頁。
<!-- Chart Control -->
<object classid="clsid:0002E500-0000-0000-C000-000000000046" id="cspace"
style="width:100%;height:60%;display:none" width="576" height="384">
</object>
<!-- PivotTable Control -->
<object classid="clsid:0002E520-0000-0000-C000-000000000046" id="ptable"
width="518" height="384">
</object>
同理:將PivotTable Control和Chart Control植入網頁。
然后,編寫網頁顯示時的vbscript 代碼
Sub Window_onLoad()
Dim frm 'SaveLoad form
' Set the initial connection string for the DSC
‘SetConnection :將DSC與數據倉庫連接
if SetConnection (DSC) then
' Bind the PivotTable to the DSC
再將PivotTable 與DSC連接
BindPivot ptable, DSC
再將PivotTable 與ChartSpace連接
' Bind the Chart to the PivotTable
BindChart ptable, cspace
cspace.Type = OWC.ChartChartTypeEnum.chChartTypeSmoothLineMarkers//表示圖表的顯示方式是 平滑線圖。有關各種圖表參數請查WIN2000的幫助
'
end if 'Connection OK
End Sub 'Window_onLoad()
SUB SetConnection(dsc)
dsc.ConnectionString = "provider=msolap; data source=“數據倉庫服務器的機器名或IP“; initial catalog=FoodMart 2000"
End Sub
Sub BindPivot(ptable, dsc)
' Local variables
Dim ttl 'Temp total reference
' Clear any binding there may be
set ptable.DataSource = nothing
' Bind the PivotTable to the DSC
set ptable.DataSource = dsc
ptable.DataMember = "Sales"
End Sub 'BindPivot()
BindChart
'
' Purpose: Binds the Chart control to the PivotTable control
'
' In:
' ptable PivotTable control reference
' cspace Chart control reference
'
Sub BindChart(ptable, cspace)
set cspace.DataSource = ptable
cspace.Charts.Add
End Sub 'BindChart()
核心代碼就這么多,用戶即可使用此網頁做聯機分析。對于鉆取,旋轉等等操作,根本不用程序員去編程。因為,這些都是PivotTable自帶的功能。同理,圖表也不用程序員去編程管理。更奇妙的是,圖表會隨著PivotTable分析內容的不同而自動調整。
這里要說明的一點是,以上的代碼表明是直接用網頁內嵌的控件連數據倉庫,所以,這種方式還不能算是純正的B/S結構,因為連接的數據倉庫服務器如果在局域網內,則必須是在同一個域內,且數據倉庫服務器必須是域服務器。而如果連接的數據倉庫服務器如果是在互聯網上,則必須加頁面認證,才能聯結。
有沒有辦法,從服務器端將一個數據集的數據全部取出,然后將此結果傳到瀏覽器端呢?這樣不久可以避開討厭的認證了么?辦法是有的,而且很簡單:就是運用PivotTable的XMLData屬性。關鍵在于服務器端有一個PivotTable,瀏覽器端也有一個PivotTabl。在后臺創建一個PivotTable對象,用以上同樣的連接方法與數據倉庫相連,然后取得此對象的XMLData屬性值,再將這個屬性值傳給網頁上的PivotTable。這樣就搞定了。不過要注意的是傳參數時候要有個小技巧,就是在服務器端要將XMLData的屬性值中的<>符號換成{},而在瀏覽器端要換回來。不然,會出錯。
|
Trackback
你可以使用這個鏈接引用該篇日志 http://publishblog.blogdriver.com/blog/tb.b?diaryID=298892