在ASP.net中使用OWC繪製統計圖表

在使用ASP.net進行Web開發中,經常需要將各種統計數據以圖形的方式顯示出來。如果僅僅是柱狀圖,可以採用畫表格或者將某種特定顏色的GIF圖像縮放寬度和高度的方法來表示,許多投票程序多采用這種方法。但如果要求輸出結果是餅狀圖或者是連續的波形圖,就有些困難了。本文特向大家介紹使用OWC圖形組件輕鬆實現繪製統計圖表的方法。

  OWC(Microsoft Office Web Components)是 Microsoft Office 使用的數據綁定 ActiveX 控件,用於向 Web 頁添加圖表功能。OWC支持Microsoft Excel 2000中大部分的二維圖表(如折線圖、柱形圖、股價圖等)和極座標圖表(如餅圖和雷達圖),並支持組合圖表,如兩軸線-柱圖,數據表會隨同圖表發佈,圖表隨着數據的變化而改變。OWC能將處理結果做爲標準GIF輸出並下載到瀏覽器中顯示。

  首先,使用ADODB.Recordset讀出數據集合,並與OWC組件進行數據綁定:

Dim owcChartSpace As OWC.ChartSpace = New OWC.ChartSpace()
Dim owcChart As OWC.WCChart = owcChartSpace.Charts.Add
Dim ConnADO As New ADODB.Connection()
Dim RecordsetADO As New ADODB.Recordset()
Dim connectionString As String
connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("Grades.mdb")
ConnADO.Open(connectionString)

RecordsetADO.ActiveConnection = ConnADO
RecordsetADO.CursorType = ADODB.CursorTypeEnum.adOpenStatic
RecordsetADO.CursorLocation = ADODB.CursorLocationEnum.adUseClient
Dim strSQL As String
strSQL = "Select city, month, temperature From test order by city,ids"
RecordsetADO.Open(strSQL, ConnADO)
owcChartSpace.DataSource = RecordsetADO


  然後,指定OWC的顯示類型:

owcChart.Type = OWC.ChartChartTypeEnum.chChartTypeSmoothLineMarkers


  在運行時向OWC中輸入數據有多種方法。所有這些方法都要用到 SetData 方法來真正將數據寫入 Chart 組件,因此將詳細介紹此方法。SetData 方法應用於 WCChart、WCErrorBars 和 WCSeries 對象並能向這三種對象輸入數據。

  SetData 方法有三個參數:Dimension、DataSourceIndex 和 DataReference。Dimension 參數引用圖表中被填充數據的一部分。可用的維度常數爲 SeriesNames、Categories、Values、YValues、XValues、OpenValues、CloseValues、HighValues、LowValues、BubbleValues、RValues 和 ThetaValues。這些常數每一種都引用了圖表的一部分;例如,SeriesNames 常數引用了每個序列名,OpenValues 和 CloseValues 常數引用股票圖的開盤價和收盤價等等。每個常數都是作爲諸如 chDimSeriesNames、chDimCategories、chDimValues等窗體中的枚舉常數而傳遞給該方法的。

  這裏,我們使用SetData 方法給OWC賦值:

owcChart.SetData(OWC.ChartDimensionsEnum.chDimSeriesNames, 0, "city")
Dim owcSeries As OWC.WCSeries
For Each owcSeries In owcChart.SeriesCollection
owcSeries.SetData(OWC.ChartDimensionsEnum.chDimCategories, 0, "month")
owcSeries.SetData(OWC.ChartDimensionsEnum.chDimValues, 0, "temperature")
Next


  最後,將OWC處理結果轉換成Gif圖象輸出到瀏覽器中顯示:

Randomize()
Dim nfilenameSuffix As Integer
Dim sfilenamesuffix As String
nfilenameSuffix = 100000 * Rnd()
sfilenamesuffix = System.Convert.ToString(nfilenameSuffix)
owcChartSpace.ExportPicture(MapPath("owc/price_")
    + sfilenamesuffix + ".gif", "gif", 800, 600)
Image1.ImageUrl = "owc/price_" + sfilenamesuffix + ".gif"


  如果變換OWC的顯示類型,即修改一下owcChart.Type,使之變成:

owcChart.Type = OWC.ChartChartTypeEnum.chChartTypeColumnClustered


  在ASP.net中使用OWC可以幫助我們快速構造統計圖表,而且由於OWC生成的結果是Gif圖象,可以兼容客戶端所有版本的瀏覽器,適用範圍很廣。本程序在Windows 2000 server、IIS5.0和IE6.0環境下運行。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章