从数据库提取数据绘制曲线图
求助啊!
现在想通过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