分享
 
 
 

ASP中使用Office2000中的图表控件

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

前一阵为了做图表,查看了论坛中的所有文章,但大都是用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"

" 对于每一字段记录产生一个由制表符分隔的字符串

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 来注册该组件的方法,如果那位高手知道,请告诉我 richard@zhujie.org ,谢谢!

附:

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有