台灣最大程式設計社群網站
線上人數
419
 
會員總數:245468
討論主題:189226
歡迎您免費加入會員
討論區列表 >> 專欄文章 >> ASP中使用Office2000中的圖表控製
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
ASP中使用Office2000中的圖表控製
價值 : 0 QP  點閱數:2863 回應數:0

樓主

站務人員 站長
門外漢
0 1580
542 9
發送站內信

捐贈 VP 給 站務人員
轉貼:

http://club.kimo.com.tw/clubs/CrazyAsp

我後來找到的文章POST給大家



ASP中使用Office2000中的圖表控件 -- Microsoft Office Chart 9.0 製作圖表



關鍵詞:VBScript, ASP, ADO, 組件Components, Excel



ASP中使用Office2000中的圖表控件 -- Microsoft Office Chart 9.0 製作圖表



前一陣為了做圖表,查看了論壇中的所有文章,但大都是用Aspchart,ShortGraph等組件,這些組件多半都是國外開發要money的。如果你用office 的MS Chart,往往作出的效果又差強人意。如果你使用過Office2000中Excel的圖表的話,應該被一流的效果所折服。想把他搬上你的網站嗎?沒問題,現在你也能通過ASP和VBScript來實現Microsoft Office Chart 9.0 的強大的功能和絕妙的效果。



示例中使用 ADO 記錄集中的數據創建圖表。首先根據返回的記錄集數據創建以製表符分隔的字符串,然後通過 SetData 方法並使用此字符串設置圖表數據。





源文件chart.asp :



(參照微軟幫助範例,加入部分本人的修改...)

<HTML>

<HEAD>

<META NAME="GENERATOR" Content="Microsoft FrontPage 4.0">

</HEAD>

<BODY>

<object id=ChartSpace1 classid=CLSID:0002E500-0000-0000-C000-000000000046 style="width:80%;height:350"></object>

<object id=ADOConnection1 classid=CLSID:00000514-0000-0010-8000-00AA006D2EA4></object>



<script Language=VBScript>



Sub Window_OnLoad()

Dim rs, categories, values



categories = ""

values = ""

' 打開連接執行sql查詢 (建立「nwind.mdb」庫,並創建名為「Category Sales for 1995」的表)

ADOConnection1.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\nwind.mdb"

Set rs = ADOConnection1.Execute("SELECT * FROM [Category Sales for 1995]")



' 對於每一欄位記錄產生一個由製表符分隔的字符串

rs.MoveFirst

Do while Not rs.EOF

categories = categories & rs.Fields(0).Value & Chr(9)

values = values & rs.Fields(1).Value & Chr(9)

rs.MoveNext

Loop

rs.Close

ADOConnection1.Close



' 刪去字符串末尾的分隔符

categories = Left(categories, Len(categories) - 1)

values = Left(values, Len(values) - 1)



' 創建一個系列

ChartSpace1.Clear

ChartSpace1.Charts.Add

ChartSpace1.Charts(0).SeriesCollection.Add

ChartSpace1.Charts(0).SeriesCollection(0).Caption = "Sales"



' 使用recordset生成的字符串設置系列的類型和值

Set c = ChartSpace1.Constants

ChartSpace1.Charts(0).SeriesCollection(0).SetData c.chDimCategories, c.chDataLiteral, categories

ChartSpace1.Charts(0).SeriesCollection(0).SetData c.chDimValues, c.chDataLiteral, values



' 設置圖表工作區的標題,並將圖表工作區的圖例放置於工作區的右邊。

ChartSpace1.HasChartSpaceTitle = True

With ChartSpace1.ChartSpaceTitle

.Caption = "Monthly Sales Data"

.Font.Size = 12

.Font.Color = "#FF0000"

.Font.Bold = True

End with



ChartSpace1.HasChartSpaceLegend = True

With ChartSpace1.ChartSpaceLegend

.Position = c.chLegendPositionright

.Font.Color = "#009999"

.Font.Size = 9

End with



' 設置圖表類型(具體樣式見附錄)

ChartSpace1.Charts(0).Type = c.chChartTypeBarClustered

' 軸的坐標格式、樣式(有坐標軸時才設)

With ChartSpace1.Charts(0).Axes(c.chAxisPositionBottom)

.NumberFormat = "#,##0"

.Font.Size = 9

End with



With ChartSpace1.Charts(0).Axes(c.chAxisPositionLeft)

.Font.Color = "#0000ff"

.Font.Size = 9

End with

end if



End Sub

</script>

</BODY>

</HTML>



以上程序在Win98+PWS 下通過。


通過以上的例程你可以根據你的需要,增加自己所需要的效果,一定能製作出極酷的統計圖表來的,需要幫助可以參見微軟的幫助文件(裝了 Office2000 就有)Msowcvba.chm 以及MSDN 在線幫助。


有個缺點:客戶端好像也要裝Office2000 才行,另外我還沒找到如何不安裝 Office2000 來註冊該組件的方法,如果那位高手知道,請告訴我 luo_zhenyu@netease.com ,謝謝!

附:

ChartChartTypeEnum Constants 圖表類型常數(轉至MSDN)

Constant Value

chChartTypeCombo -1

chChartTypeColumnClustered 0

chChartTypeColumnStacked 1

chChartTypeColumnStacked100 2

chChartTypeBarClustered 3

chChartTypeBarStacked 4

chChartTypeBarStacked100 5

chChartTypeLine 6

chChartTypeLineMarkers 7

chChartTypeLineStacked 8

chChartTypeLineStackedMarkers 9

chChartTypeLineStacked100 10

chChartTypeLineStacked100Markers 11

chChartTypeSmoothLine 12

chChartTypeSmoothLineMarkers 13

chChartTypeSmoothLineStacked 14

chChartTypeSmoothLineStackedMarkers 15

chChartTypeSmoothLineStacked100 16

chChartTypeSmoothLineStacked100Markers 17

chChartTypePie 18

chChartTypePieExploded 19

chChartTypePieStacked 20

chChartTypeScatterMarkers 21

chChartTypeScatterSmoothLineMarkers 22

chChartTypeScatterSmoothLine 23

chChartTypeScatterLineMarkers 24

chChartTypeScatterLine 25

chChartTypeScatterLineFilled 26

chChartTypeBubble 27

chChartTypeBubbleLine 28

chChartTypeArea 29

chChartTypeAreaStacked 30

chChartTypeAreaStacked100 31

chChartTypeDoughnut 32

chChartTypeDoughnutExploded 33

chChartTypeRadarLine 34

chChartTypeRadarLineMarkers 35

chChartTypeRadarLineFilled 36

chChartTypeRadarSmoothLine 37

chChartTypeRadarSmoothLineMarkers 38

chChartTypeStockHLC 39

chChartTypeStockOHLC 40

chChartTypePolarMarkers 41

chChartTypePolarLine 42

chChartTypePolarLineMarkers 43

chChartTypePolarSmoothLine 44

chChartTypePolarSmoothLineMarkers 45

本篇文章發表於2001-04-14 00:00
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
   

回覆
如要回應,請先登入.