我想画个价格走势图(折线图),看了《ASP 2.0揭秘》里的第三方组件有个shotgraph组件但画出来的是柱状图(程序如下),不知该怎么改,还有别的什么组件能画这种图吗?

bibibi 2001-03-02 03:54:00
<% response.ContentType="image/jpeg"
set con=application("Cn")
sql="select top 10 * from ProductPrice "
set rs=con.execute(sql)
myArray=rs.GetRows

count=UBOUND(myArray,2)

for i=1 to count
if myArray(1,i)>maxValue then
maxValue=myArray(1,i)
end if
next

set g=createObject("shotgraph.image")
g.createImage 200,30*count,2
g.setColor 0,255,255,255
g.setColor 1,0,0,255
g.setBgColor 0
g.FillRect 0,0,200,30*count

g.SetBGColor 1
g.CreatePen "PS_SOLID",1,1
ypos=1
for i=1 to count
xpos=cINT(myArray(1,i)*(190/maxValue))
g.Rectangle 1,ypos,xpos,ypos+10
g.TextOut 1,ypos+12,myArray(0,i)
ypos=ypos+30
next

Response.BinaryWrite g.JpegImage(90,0,"")%>
我试过用owcchart发现好象有bug(移到另一台机子上就失灵了!)
...全文
132 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
amay 2001-03-11
  • 打赏
  • 举报
回复
给我50分,我将把源代码给你,我们的这个项目已实现,amay是不是有些!!?
我也没有办法,因为这两天amay没有得到分值!
amay 2001-03-11
  • 打赏
  • 举报
回复
owc的实现机制就是在s生成gif图片,c端显示图片路径,知道mapx,跟它实现机理一样:
oGraph.ExportPicture strPath ,"gif",750,400

----没错吧!
xjml 2001-03-11
  • 打赏
  • 举报
回复
我写了个用调用EXCEL在服务器端生成图表,然后以图片形式返回到客户端的程序.
我认为非常好,因为客户端不用装任何东西.
bibibi 2001-03-06
  • 打赏
  • 举报
回复
怎么问了这么久也没人知道?
amay(amay):我需要的是在服务器端生成图表,你有原代码吗?能否mail一份给我:bibilin@china.com
amay 2001-03-02
  • 打赏
  • 举报
回复
不会呀,我就用owc控件实现了,当然需要你加一点东西,如果给amay分,便会知道!
还有我想问你代码是放在服务器端吗?
这个组建已经不太好找了,以前在国外网站上下载到的! 共享给大家! 大家经常在网上登陆的时候经常会看到让你输入验证码,有的是文字的,有的呢是片,比如chinaren.com校友录中留言的时候,我们就会看到数字片验证码;网上关于数字文字验证码实现方法的相关资料很多,而我们这介绍的是数字和字母随机组成的并且生成片的验证码的实现方法。看起来很复杂、其实很简单的,大家跟着我往下看: 首先,我们先介绍一下设计思路,数字和字母的随机组合生成验证码,然后将验证码生成片,这“数字和字母的组合”应该是随机取出来的;如果是专门的数字验证码,我们可以这样实现: ycodenum=4 '验证码的位数,或者说成个数 for i=1 to ycodenum Randomize '初始化随机数发生器 ycode=ycode&Int((9*Rnd)) 'rnd是随机数,从0到1之间的任意实数,这获得0到9之间的整数 next response.write ycode '就可以输出数字验证码(4位) 然而,我们要让数字和字母同样随机生成,这我们可以用到数组来实现这种效果,如下: ychar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z" '将数字和大写字母组成一个字符串 yc=split(char,",") '将字符串生成数组 ycodenum=4 for i=1 to ycodenum Randomize ycode=ycode&yc(Int((35*Rnd))) '数组一般从0开始读取,所以这为35*Rnd next response.write ycode 现在看看输出结果是不是数字和字母随机组合的呢? 下面看看怎样生成片,这个也许有些朋友知道:asp不能生成片,必须使用asp组件。不错,我们这使用的是ASP组件shotgraph。有一点大家注意,服务器不是自己的不能用哦,因为你装不了这组件。 我们看看生成片的代码: ychar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z" '将数字和大写字母组成一个字符串 yc=split(char,",") '将字符串生成数组 ycodenum=4 for i=1 to ycodenum Randomize ycode=ycode&yc(Int((35*Rnd))) '数组一般从0开始读取,所以这为35*Rnd next Response.Clear Response.ContentType="image/gif" set obj=Server.CreateObject("shotgraph.image") x=55 '片的宽 y=26 '片的高 obj.CreateImage x,y,8 '8是片的颜色8位 obj.SetColor 0,55,126,222 obj.SetColor 1,255,255,255 obj.CreatePen "PS_SOLID",1,0 obj.SetBgColor 0 obj.Rectangle 0,0,x-1,y-1 obj.SetBkMode "TRANSPARENT" obj.CreateFont "Arial",136,18,1,False,False,False,False obj.SetTextColor 1 obj.TextOut 5,4,ycode&" " img=obj.GifImage(-1,1,"") Response.BinaryWrite (img)
自己开发的类似ShotGraph的绘组件,实现大多数ShotGraph组件中的绘形输出功能,接口基本保持一致,除了颜色设置。ShotGraph中需要SetColor进行颜色预设,WebGraph中涉及颜色直接传入颜色值,其他的基本无差别,包括创建和调用方法。 <% Response.ContentType="image/gif" Set obj = Server.CreateObject("WebGraph.wImage") Size = 201 obj.CreateImage Size, Size ' obj.SetColor 0, 255, 255, 255 ' obj.SetColor 1, 0, 0, 0 ' obj.SetColor 2, 255, 108, 0 ' obj.SetColor 3, 0, 0, 204 obj.SetBgColor RGB(128, 128, 128) obj.FillRect 0, 0, Size - 1, Size - 1 obj.SetDrawColor RGB(255, 0, 0) obj.vbLine Size - 1, 0, 0, Size - 1 obj.SetBgColor RGB(255, 108, 0) obj.Ellipse 5, 5, Size - 6, Size - 6 obj.SetBgColor RGB(0, 0, 204) obj.Ellipse 5, (Size - 5) / 4, Size / 2, (Size - 5) * 3 / 4 ' img = obj.jpegImage(90, 0, "e:/abc.jpg") ' img = obj.jpegImage(90, 0, "") ' img = obj.bmpImage(True, "e:/abc.bmp") ' img = obj.bmpImage(True, "") img = obj.gifImage(-1, 0, "") Response.BinaryWrite img %>

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧