blog.Toby

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            130 隨筆 :: 2 文章 :: 150 評論 :: 0 Trackbacks

          使用微軟OWC中做為聯(lián)機(jī)分析系統(tǒng)前端展示工具[z]- -

                                                

          使用微軟OWC中做為聯(lián)機(jī)分析系統(tǒng)前端展示工具
          來自:自創(chuàng) 作者:magicspiral 日期:2004年07月02日 瀏覽次數(shù):201

            使用微軟OWC中做為聯(lián)機(jī)分析系統(tǒng)前端展示工具
            我們在開發(fā)聯(lián)機(jī)分析系統(tǒng)時,經(jīng)常要在B/S結(jié)構(gòu)下開發(fā),也就是說:聯(lián)機(jī)分析系統(tǒng)的前端展示工具需要能嵌入到瀏覽器中使用。當(dāng)然你可以自己開發(fā),但是,在一般的情況下,我們可以使用微軟的OWC組件實現(xiàn)這一功能。
          OWC是Office Web Compent的縮寫,即Microsoft的Office Web組件。實際上,可以把OWC看作是可以在瀏覽器應(yīng)用的EXCEL。OWC包括三個組成部分:speedsheet,PivotTable 和ChartSpace. Spreedsheet類似于普通的EXCEL 表格,
          PivotTable 即透視表,可用來做聯(lián)機(jī)分析,(即鉆取,旋轉(zhuǎn)等)ChartSpace功能等同于EXCEL中的圖表。
            那么,到底如何使用微軟OWC中做為聯(lián)機(jī)分析系統(tǒng)前端展示工具呢?只要看了幾行簡單的HTML代碼大家就明白了:
          <object classid="clsid:0002E530-0000-0000-C000-000000000046" id="DSC">
          </object>
          上面這句的含義很簡單,就是把微軟的數(shù)據(jù)連接控件植入網(wǎng)頁。
          <!-- 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植入網(wǎng)頁。
          然后,編寫網(wǎng)頁顯示時的vbscript 代碼
          Sub Window_onLoad()
              Dim frm         'SaveLoad form
             
          ' Set the initial connection string for the DSC
          ‘SetConnection :將DSC與數(shù)據(jù)倉庫連接
              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//表示圖表的顯示方式是 平滑線圖。有關(guān)各種圖表參數(shù)請查WIN2000的幫助
             
               

                          '
               
                 
              end if 'Connection OK

             
          End Sub 'Window_onLoad()

          SUB SetConnection(dsc)
          dsc.ConnectionString = "provider=msolap; data source=“數(shù)據(jù)倉庫服務(wù)器的機(jī)器名或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()

          核心代碼就這么多,用戶即可使用此網(wǎng)頁做聯(lián)機(jī)分析。對于鉆取,旋轉(zhuǎn)等等操作,根本不用程序員去編程。因為,這些都是PivotTable自帶的功能。同理,圖表也不用程序員去編程管理。更奇妙的是,圖表會隨著PivotTable分析內(nèi)容的不同而自動調(diào)整。


            這里要說明的一點是,以上的代碼表明是直接用網(wǎng)頁內(nèi)嵌的控件連數(shù)據(jù)倉庫,所以,這種方式還不能算是純正的B/S結(jié)構(gòu),因為連接的數(shù)據(jù)倉庫服務(wù)器如果在局域網(wǎng)內(nèi),則必須是在同一個域內(nèi),且數(shù)據(jù)倉庫服務(wù)器必須是域服務(wù)器。而如果連接的數(shù)據(jù)倉庫服務(wù)器如果是在互聯(lián)網(wǎng)上,則必須加頁面認(rèn)證,才能聯(lián)結(jié)。
              有沒有辦法,從服務(wù)器端將一個數(shù)據(jù)集的數(shù)據(jù)全部取出,然后將此結(jié)果傳到瀏覽器端呢?這樣不久可以避開討厭的認(rèn)證了么?辦法是有的,而且很簡單:就是運用PivotTable的XMLData屬性。關(guān)鍵在于服務(wù)器端有一個PivotTable,瀏覽器端也有一個PivotTabl。在后臺創(chuàng)建一個PivotTable對象,用以上同樣的連接方法與數(shù)據(jù)倉庫相連,然后取得此對象的XMLData屬性值,再將這個屬性值傳給網(wǎng)頁上的PivotTable。這樣就搞定了。不過要注意的是傳參數(shù)時候要有個小技巧,就是在服務(wù)器端要將XMLData的屬性值中的<>符號換成{},而在瀏覽器端要換回來。不然,會出錯。

           

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

          Trackback

          你可以使用這個鏈接引用該篇日志 http://publishblog.blogdriver.com/blog/tb.b?diaryID=298892

          posted on 2008-08-18 22:07 渠上月 閱讀(1104) 評論(1)  編輯  收藏 所屬分類: OLAP

          評論

          # re: 使用微軟OWC中做為聯(lián)機(jī)分析系統(tǒng)前端展示工具 2010-07-06 17:25 喝醉的咖啡
          thanks~

          >不過要注意的是傳參數(shù)時候要有個小技巧,就是在服務(wù)器端要將XMLData的屬性值中的<>符號換成{},而在瀏覽器端要換回來。不然,會出錯。

          是否可以用 htmlencode 和 htmldecode 處理下來解決這一問題?  回復(fù)  更多評論
            

          主站蜘蛛池模板: 大连市| 镇原县| 河北区| 江口县| 法库县| 武冈市| 凤台县| 裕民县| 余姚市| 宜良县| 澄迈县| 澄城县| 财经| 新竹县| 敦煌市| 左权县| 新巴尔虎左旗| 鄂州市| 东乌珠穆沁旗| 太湖县| 福泉市| 光山县| 西青区| 鄄城县| 门源| 原阳县| 垫江县| 板桥市| 鄂托克旗| 华亭县| 嘉荫县| 忻城县| 开远市| 托克托县| 金坛市| 长乐市| 黑河市| 新密市| 黄梅县| 郴州市| 邹平县|