首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > vbScript >

从数据库提取数据绘制曲线图解决办法

2012-02-07 
从数据库提取数据绘制曲线图求助啊!现在想通过ASP+OWC绘制曲线图从网上看到如下一段代码,代码中的图表数据

从数据库提取数据绘制曲线图
求助啊!
现在想通过ASP+OWC绘制曲线图
从网上看到如下一段代码,代码中的图表数据是固定
现然想请教高手们,如何从数据库中提取数据啊!
(就是代码的红色字体,不知如何改成从数据库中提取)

<table width="200" border="1">
  <tr>
  <td><img src="tmpchart.gif" width="760" height="350"></td>
  </tr>
</table>
<%
Dim strPicFile'生成的临时图表图片名
strPicFile=server.MapPath(".")&"\tmpchart.gif"
''图表数据部分,可以从数据库中取得
dim objConn,rs
Set objConn = Server.CreateObject("ADODB.Connection")
connStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\AspWeb\wwwroot\qis\data\qis.mdb"
objConn.Open connstr
 
sdata1="45,75,78,67,45,75,78,80"
sdata2="36,56,23,73"
x_line="1,2,3,4"
a_group="A,B"
a_group_arr = split(a_group,",")
x_line_arr = split(x_line,",")
data1_arr = split(rs(0),",")
data2_arr = split(Sdata2,",")
 
 
 
 
 
 
 
''-----------------生成图表开始---------------------------------------------------
Set ChartTmp = CreateObject("OWC11.ChartSpace")
Set cc = ChartTmp.Constants ''返回一个对象,此对象允许脚本用户使用已命名的常量。
'ChartTmp.Charts.delete(0)
Set cht = ChartTmp.Charts.Add(0) ''添加一个图表对象
cht.Type=cc.chChartTypeColumnClustered' 
''设置图表工作区中包含标题
ChartTmp.HasChartSpaceTitle = true 
with ChartTmp.ChartSpaceTitle
  .Caption ="测试图表"''设置图表工作区标题内容 
  ''有关字体的设置 
  .Font.Bold = True ''设置图表工作区标题内容是否粗体 
  .Font.Name = "Times New Roman" ''设置图表工作区标题内容的字体 
  .Font.Size = 18 ''设置图表工作区标题内容的大小(单位:磅) 
end with
''-------设置图例-------------------------------------------- 
cht.HasLegend = True ''指定图表工作区中含有图例 
cht.Legend.Font.Size = 9 ''其他有关字体项的设置参见设置图表标题部分 
cht.Legend.Position = cc.chLegendPositionBottom ''设置图例对其方式
''-------添加数据系列1(柱状图)-------------------------------------------- 
Set Series0 = cht.SeriesCollection.Add() ''添加一个數據系列 
with Series0
 ' .Type=cc.chChartTypeColumnClustered' (省略同图表基本类型)
 .SetData cc.chDimSeriesNames, cc.chDataLiteral, a_group_arr(0) ''系列 
 .SetData cc.chDimCategories, cc.chDataLiteral, x_line_arr ''横(X)轴数据(分类轴) 
 .SetData cc.chDimValues, cc.chDataLiteral, data1_arr''''纵(Y)轴数据
end with
Set dl = Series0.DataLabelsCollection.Add ''添加图例的数据标记 
dl.HasValue = True'显示数值
''-------添加数据系列2(柱状图)-------------------------------------------- 
Set Series0 = cht.SeriesCollection.Add() ''添加一个數據系列 
with Series0
 ' .Type=cc.chChartTypeColumnClustered' (省略同图表基本类型)
 .SetData cc.chDimSeriesNames, cc.chDataLiteral, a_group_arr(1)''系列 
 .SetData cc.chDimCategories, cc.chDataLiteral, x_line_arr ''横(X)轴数据(分类轴) 
 .SetData cc.chDimValues, cc.chDataLiteral, data2_arr''''纵(Y)轴数据
end with
Set dl = Series0.DataLabelsCollection.Add ''添加图例的数据标记 
dl.HasValue = True
''-------添加数据系列1(折线图)------------------------------------------ 
Set Series0 = cht.SeriesCollection.Add() ''添加一个數據系列
with Series0
 .Type=cc.chChartTypeLineMarkers'(折线图)
 .setData cc.chDimSeriesNames, cc.chDataLiteral, a_group_arr(0)''系列 
 .SetData cc.chDimCategories, cc.chDataLiteral, x_line_arr ''横(X)轴数据(分类轴) 
 .SetData cc.chDimValues, cc.chDataLiteral, data1_arr''''纵(Y)轴数据
end with  
''-------添加数据系列2(折线图)------------------------------------------ 
Set Series0 = cht.SeriesCollection.Add() ''添加一个 
with Series0
 .Type=cc.chChartTypeLineMarkers'(折线图)
 .setData cc.chDimSeriesNames, cc.chDataLiteral, a_group_arr(1)''系列 


 .SetData cc.chDimCategories, cc.chDataLiteral, x_line_arr ''横(X)轴数据(分类轴) 
 .SetData cc.chDimValues, cc.chDataLiteral, data2_arr''''纵(Y)轴数据
end with
  Set dl = Series0.DataLabelsCollection.Add ''添加图例的数据标记 
  dl.HasValue = true'显示数值
  dl.HasPercentage = true'显示百分比
 
'导出图片
ChartTmp.ExportPicture strPicFile, "GIF", 760, 350
 
Set ChartTmp = Nothing
''生成图表结束
 
%>


[解决办法]
set objRecordSet = objConn.Execute("Select sdata1,sdata2,x_line,a_group From YourTable")
objRecordSet.MoveFirst
a_group_arr = split(objRecordSet.Fields.Item("a_group"),",")
.
.
.

具体要根据你的qis.mdb来处理了。如果数据多的话,可以用Do ... Loop来循环读取。
[解决办法]
oRecordSet.MoveFirst
do while not oRecordSet.Eof
a_group_arr = split(objRecordSet.Fields.Item("a_group"),",") 


.
oRecordset.MoveNext
loop

热点排行