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

分类: asp.net技巧   出处:iocblog整理  更新时间:2009-07-28   添加到收藏  

   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_")
 (来源 www.iocblog.net)



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。