ASP中使用Office2000中的图表控件
示例中使用 ADO 记录集中的数据创建图表。首先根据返回的记录集数据创建以制表符分隔的字符串,然后通过 SetData 方法并使用此字符串设置图表数据。
源文件chart.asp :
<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
- · 如何开始一个ASP网站的设计
- · 关于解决商务平台ASP程序的源代码泄漏设想与思考
- · 通过表单创建word的一个例子
- · 在ASP中实现购物小车
- · 关于如何保障Winnt+asp +sql web站点安全经验
- · ASP开发准则
- · 认识和优化connection对象
- · 使用ASP建设私人的搜索引擎
- · 在AIX上配置两个WMQ队列管理器通过SNA协议通信
- · Edge Dispatcher 在 AIX 5L 上使用 MAC 方式转送时,如何配置后端服务器上的
- · AIX Fast Connect 的概述及与windows之间的联网介绍
- · AIX中如何确定磁带库设备和操作系统设备文件的对应关系
- · AIX 5.3与PAM
- · 基于文件系统的IO Pacing
- · 在AIX中如何改变LTO设备的参数
- · 用于在多个每行字符数大于文件中搜索匹配串的脚本示例
- · 怎样在AIX 5.1中建立热后备(hot spare)磁盘
- · 用feprom_update升级 Firmware
- · CHRP Systems系统启动过程的LED E1DC 报错提示
- · 普通用户执行su命令时产生错误:Authentication denied
- · 如何让非root用户有权限执行sar命令
- · 使用errpt命令,产生0315-171错误
- · 如何记录ftp log?
- · 查找文件或命令对应的文件集
- · AIX操作系统的备份与恢复
- · AIX管理员快速入门
- · 如何从 AIX 5.2 中未配置的 IPv4 升级到 IPv6
- · 如何从LED 553恢复?(适用于AIX V4版本)
- · AIX 分区负载管理工具(Partition Load Manager)
- · 如何利用最小的ODM启动系统
- · 如何将JFS文件系统复制到另一个物理卷
- · 如何修正文件系统超块中毁坏的幻数
- · Trace 命令在AIX 5.3中的新特性
- · 7133 hotspare盘设置问题
- · i5机器AIX逻辑分区常用设备
- · i5机器AIX逻辑分区常用设备
- · 在AIX中可否动态缩小文件系统尺寸
- · 如何修复“BROKEN”状态的文件集
