| 前一阵为了做图表,查看了论坛中的所有文章,但大都是用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 下通过。                          (编辑:南平站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |