使用微软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