asp 画图??急!!!!
比如我要统计 2002年8月的某几种商品销售量的曲线图
纵坐标为每天的销售量
横坐标为天数比如: 1 2 3 4 5 6.....31
数据要从数据库中得到
在一张图中同时显示3条曲线表示不同商品 曲线或柱状图
谢谢!!1
问题点数:100、回复次数:20Top
1 楼CSDNHelper(CSDN 论坛助手)回复于 2002-08-21 17:46:27 得分 0
看看csdn的调查,和投票的代码
首页有投票的入口。投了xml就可以看到了。
:)
Top
2 楼Dreamforge(守望爱情的孤独)回复于 2002-08-21 17:58:35 得分 0
实现ASP图形报表的方法有很多种:
1、MSChart控件。(如CSDN的调查系统,需要客户端安装MSChart,使用起来十分麻烦。)
2、ASPChart等组件。(国外十分流行,不过要交钱的,对我们这种免费自由万岁的人来说,不划算也不舍得。)
3、OWC控件。(Office Web components)不但功能强大,而且是完全免费的,值得推荐!我就是用这个来实现包括曲线图、饼图等十几种实时在线图表的。
Top
3 楼csdnyong(命运)回复于 2002-08-21 18:07:02 得分 0
则么得到
请问您 有没有例子Top
4 楼Dreamforge(守望爱情的孤独)回复于 2002-08-21 18:12:18 得分 0
使用OWC控件只需要在服务器端安装。取得数据记录后通过OWC生成临时image文件,再把image文件传回客户端,就实现客户端无要求显示图表。
具体的方法,你可以查找相关的资料。
或者等我整理出来后,贴上来。。Top
5 楼Dreamforge(守望爱情的孤独)回复于 2002-08-21 18:32:15 得分 0
chart.asp
<%
Function ExportChartToGIF(cspace)
Dim fso
Dim sFilePath
Dim sFileName
'生成临时文件的文件名
set fso = CreateObject("Scripting.FileSystemObject")
sFilePath = Request.ServerVariables("PATH_TRANSLATED")
sFilePath = left(sFilePath, InStrRev(sFilePath, "\"))
sFilePath = sFilePath & "tmp\"
sFileName = fso.GetTempName()
sFileName = sFileName & ".gif"
set fso=nothing
'将chart转换成GIF文件保存在临时目录
m_cspace.ExportPicture sFilePath & sFileName, "gif", 200, 150
'将生成的临时图片报存在session中以便于删除
Session("TC:" & sFilePath & sFileName) = sFilePath & sFileName
ExportChartToGIF = sFileName
End Function
Sub BindChartToDSC(cspace, dsc, sRSName, sCategories, sValues)
Dim cht
Dim ser
set c = cspace.Constants
cspace.Clear
' 绑定数据源
set cspace.DataSource = dsc
cspace.DataMember = sRSName
set cht = cspace.Charts.Add()
cht.HasLegend = True
cht.Type = c.chChartTypePie
set ser = cht.SeriesCollection.Add()
ser.SetData c.chDimCategories, 0, sCategories
ser.SetData c.chDimValues, 0, sValues
set dls = ser.DataLabelsCollection.Add()
dls.HasPercentage = True
dls.HasValue = False
End Sub
%>
<html>
<head>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>利用OWC动态生成图表</title>
</head>
<body>
<%
set m_cspace = server.CreateObject("OWC.Chart")
set DSC = server.CreateObject("OWC.DataSourceControl")
DSC.ConnectionString = "DSN=pubs;uid=sa"
DSC.RecordsetDefs.AddNew "select distinct state,num=COUNT(*) FROM authors GROUP BY state",DSC.Constants.dscCommandText,"ChartData"
BindChartToDSC m_cspace, DSC, "ChartData", "state", "num"
m_sFilePath = ExportChartToGIF(m_cspace)
set m_cspace=nothing
set m_cht=nothing
%>
<br><br>
<img src="tmp/<%= m_sFilePath %>">
</BODY>
</HTML>
-----------------------------------------------------------------
这是别人写的例子,和我的基本一样!
你可以参考参考。Top
6 楼bushido(大饼)回复于 2002-08-23 09:14:45 得分 0
如果是柱状图比较简单做一个宽一个像素或是高一个像素的图片,然后把统计的出来的值做为图片的宽或高就可以了.当然也可以用table,填色块,这种方法不需要用控件Top
7 楼csdnyong(命运)回复于 2002-08-25 09:59:29 得分 0
不用控件,只用asp和htmlTop
8 楼csdnyong(命运)回复于 2002-08-25 10:26:18 得分 0
画不出图形呀Top
9 楼zqfleaf(动力港湾)回复于 2002-08-26 10:57:50 得分 0
不用控件只用html
只能画柱面图
类似于
一年级人数 | ***********************************
二年级人数 | *****************
三年级人数 | ************************
之类的。
你可以一行用一个table 指定他的bgcolor 和 width就可以了也很漂亮.Top
10 楼Iamfish(呆鱼)回复于 2002-08-26 11:58:43 得分 0
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<table width="737" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="48" align="center" valign="bottom"><div align="right">销售量<br>
(元) <br>
</div></td>
<td bordercolor="#000000" bgcolor="#000000"></td>
<td colspan="32" valign="middle"><div align="center"><strong><font size="4">
2002年8月销售图
</font></strong><font size="4"><font color="#999999" size="2">By dream.fish@163.com</font></font></div></td>
</tr>
<tr>
<td width="59" height="400" align="center" valign="bottom"> <table width="30%" height="400" border="0" align="right" cellpadding="0" cellspacing="0">
<tr>
<td align="right" valign="bottom">3500</td>
</tr>
<tr>
<td align="right" valign="bottom">3000</td>
</tr>
<tr>
<td align="right" valign="bottom">2500</td>
</tr>
<tr>
<td align="right" valign="bottom">2000</td>
</tr>
<tr>
<td align="right" valign="bottom">1500</td>
</tr>
<tr>
<td align="right" valign="bottom">1000</td>
</tr>
<tr>
<td align="right" valign="bottom">500</td>
</tr>
<tr>
<td align="right" valign="bottom">0</td>
</tr>
</table></td>
<td width="1" bordercolor="#000000" bgcolor="#000000"></td>
<td width="20" valign="bottom"> <table width="15" height="250" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#996600">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="300" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FF9900">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="200" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#996600">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="230" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FF9900">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="290" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#996600">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="330" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FF9900">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="290" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#996600">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="230" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FF9900">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="290" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#996600">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="330" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FF9900">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="200" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#996600">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="230" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FF9900">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="290" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#996600">
<tr>
<td> </td>
</tr>
</table></td>
Top
11 楼Iamfish(呆鱼)回复于 2002-08-26 12:00:37 得分 50
<td width="20" valign="bottom"><table width="15" height="234" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FF9900">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="250" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#996600">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="330" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FF9900">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="290" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#996600">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="234" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FF9900">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="200" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#996600">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="230" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FF9900">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="200" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#996600">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="330" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FF9900">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="290" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#996600">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"><table width="15" height="350" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#996600">
<tr>
<td> </td>
</tr>
</table></td>
<td width="20" valign="bottom"> </td>
<td width="20" valign="bottom"> </td>
<td width="20" valign="bottom"> </td>
<td width="20" valign="bottom"> </td>
<td width="20" valign="bottom"> </td>
<td width="20" valign="bottom"> </td>
<td width="20" valign="bottom"> </td>
<td width="57" align="right" valign="bottom"> </td>
</tr>
<tr bgcolor="#000000">
<td height="1"></td>
<td width="1" bordercolor="#000000"></td>
<td colspan="32"></td>
</tr>
<tr align="center" valign="top">
<td height="69"> </td>
<td width="1" bordercolor="#000000" bgcolor="#000000"></td>
<td width="20">1</td>
<td width="20">2</td>
<td width="20">3</td>
<td width="20">4</td>
<td width="20">5</td>
<td width="20">6</td>
<td width="20">7</td>
<td width="20">8</td>
<td width="20">9</td>
<td width="20">10</td>
<td width="20">11</td>
<td width="20">12</td>
<td width="20">13</td>
<td width="20">14</td>
<td width="20">15</td>
<td width="20">16</td>
<td width="20">17</td>
<td width="20">18</td>
<td width="20">19</td>
<td width="20">20</td>
<td width="20">21</td>
<td width="20">22</td>
<td width="20">23</td>
<td width="20">24</td>
<td width="20">25</td>
<td width="20">26</td>
<td width="20">27</td>
<td width="20">28</td>
<td width="20">29</td>
<td width="20">30</td>
<td width="20">31</td>
<td width="57" align="center">日期</td>
</tr>
</table>
</body>
</html>
__________________________________________________
给你一种在网页显示柱状图的思想。我有空会写一个Functin来显示,可能会较简单。代码也不会这么多。Top
12 楼csdnyong(命运)回复于 2002-08-26 15:39:41 得分 0
快说!!谢谢Top
13 楼csdnyong(命运)回复于 2002-08-26 15:54:36 得分 0
我发现数为0的时候也有高度呀Top
14 楼zqfleaf(动力港湾)回复于 2002-08-26 16:05:18 得分 0
如果为0可以提前滤掉Top
15 楼zqfleaf(动力港湾)回复于 2002-08-26 16:08:35 得分 50
效果:
<table border=0 cellpadding=1 cellspacing=1 bgcolor=SteelBlue>
<tr bgcolor=#F8F8FF height=30><td align=center width =20% >学历名称</td><td align=center width=65%>比列</td><td width=15%>人数</td></tr>
<tr bgcolor=#F8F8FF><td align=center>博士 </td><td><table ><tr bgcolor=red ><td width=.397416790859414> </td><td bgcolor=#F8F8FF>.05%</td></tr></table></td><td>1人</td></tr><tr bgcolor=#F8F8FF><td align=center>硕士 </td><td><table ><tr bgcolor=red ><td width=4.37158469945355> </td><td bgcolor=#F8F8FF>.546%</td></tr></table></td><td>11人</td></tr><tr bgcolor=#F8F8FF><td align=center>大学本科 </td><td><table ><tr bgcolor=red ><td width=143.864878291108> </td><td bgcolor=#F8F8FF>17.983%</td></tr></table></td><td>362人</td></tr><tr bgcolor=#F8F8FF><td align=center>大专 </td><td><table ><tr bgcolor=red ><td width=51.2667660208644> </td><td bgcolor=#F8F8FF>6.408%</td></tr></table></td><td>129人</td></tr><tr bgcolor=#F8F8FF><td align=center>中专 </td><td><table ><tr bgcolor=red ><td width=288.922006954794> </td><td bgcolor=#F8F8FF>36.115%</td></tr></table></td><td>727人</td></tr><tr bgcolor=#F8F8FF><td align=center>职业中专 </td><td><table ><tr bgcolor=red ><td width=30.2036761053154> </td><td bgcolor=#F8F8FF>3.775%</td></tr></table></td><td>76人</td></tr><tr bgcolor=#F8F8FF><td align=center>职技 </td><td><table ><tr bgcolor=red ><td width=186.388474913065> </td><td bgcolor=#F8F8FF>23.299%</td></tr></table></td><td>469人</td></tr><tr bgcolor=#F8F8FF><td align=center>高中 </td><td><table ><tr bgcolor=red ><td width=54.0486835568803> </td><td bgcolor=#F8F8FF>6.756%</td></tr></table></td><td>136人</td></tr><tr bgcolor=#F8F8FF><td align=center>初中 </td><td><table ><tr bgcolor=red ><td width=38.1520119225037> </td><td bgcolor=#F8F8FF>4.769%</td></tr></table></td><td>96人</td></tr><tr bgcolor=#F8F8FF><td align=center>小学 </td><td><table ><tr bgcolor=red ><td width=2.38450074515648> </td><td bgcolor=#F8F8FF>.298%</td></tr></table></td><td>6人</td></tr></table>Top
16 楼szj820(都市精灵,机会没有,鸡会有的,努力努力)回复于 2002-08-26 16:19:19 得分 0
关注Top
17 楼Iamfish(呆鱼)回复于 2002-08-26 18:27:44 得分 0
<td width="20" valign="bottom"><table width="15" height="" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#996600"><tr><td></td></tr></table></td>
用这个,只有一点点,差不多一个多像素。如果你要精度非常高,=0时就不要生成表格,把设背景为白色Top
18 楼csdnyong(命运)回复于 2002-08-27 20:29:23 得分 0
如果用图片则下边有空 高度越大 空白阅读Top
19 楼yunzhongjian(云中剑)回复于 2002-08-27 20:44:09 得分 0
柱状图就不需要用到控件了,只需地控制表格来实现就可以了,如果要画曲线图,还得用到控件,很推荐用OWC控件Top
20 楼online(龙卷风V4.0--决战江湖(MS MVP-VB))回复于 2002-08-29 14:11:06 得分 0
OWC控件。(Office Web components)不但功能强大,而且是完全免费的,值得推荐!
yyg@xjeri.com.cnTop




