blog.Toby

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  130 随笔 :: 2 文章 :: 150 评论 :: 0 Trackbacks

使用微软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的属性值中的<>符号换成{},而在浏览器端要换回来。不然,会出错。

 

- 作者: yuanque 2004年08月26日, 星期四 17:46

Trackback

你可以使用这个链接引用该篇日志 http://publishblog.blogdriver.com/blog/tb.b?diaryID=298892

posted on 2008-08-18 22:07 渠上月 阅读(1084) 评论(1)  编辑  收藏 所属分类: OLAP

评论

# re: 使用微软OWC中做为联机分析系统前端展示工具 2010-07-06 17:25 喝醉的咖啡
thanks~

>不过要注意的是传参数时候要有个小技巧,就是在服务器端要将XMLData的属性值中的<>符号换成{},而在浏览器端要换回来。不然,会出错。

是否可以用 htmlencode 和 htmldecode 处理下来解决这一问题?  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: