首页 > 编程 > .NET > 正文

在ASP.net中使用OWC绘制统计图表

2024-07-10 12:58:02
字体:
来源:转载
供稿:网友
  在使用asp.net进行中,经常需要将各种统计数据以图形的方式显示出来。如果仅仅是柱状图,可以采用画表格或者将某种特定颜色的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环境下运行成功。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表