纯ASP结合VML生成完美图-折线图
2018-09-06 11:56
方法一 <%dimtotal(7,3)
total(1,0)=中国经营报
total(2,0)=招聘网
total(3,0)=51Job
total(4,0)=新民晚报
total(5,0)=新闻晚报
total(6,0)=南方周末
total(7,0)=羊城晚报
total(0,1)=#FF0000,1.5,1,2,公司1参数1线条的颜色,参数2线条的宽度,参数3线条的类型,参数4转折点的类型,参数5线条名称
total(1,1)=200
total(2,1)=1200
total(3,1)=900
total(4,1)=600
total(5,1)=1222
total(6,1)=413
total(7,1)=800
total(0,2)=#0000FF,1,2,3,公司2
total(1,2)=400
total(2,2)=500
total(3,2)=1040
total(4,2)=1600
total(5,2)=522
total(6,2)=813
total(7,2)=980
total(0,3)=#004D00,1,1,3,公司3
total(1,3)=900
total(2,3)=890
total(3,3)=1240
total(4,3)=1300
total(5,3)=722
total(6,3)=833
total(7,3)=1280
%><htmlxmlns:v=urn:schemas-microsoft-com:vmlxmlns:o=urn:schemas-microsoft-com:office:office>
<!--[if!mso]>
<style>
v:*{behavior:url(#default#VML)}
o:*{behavior:url(#default#VML)}
.shape{behavior:url(#default#VML)}
</style>
<![endif]-->
<head>
<metahttp-equiv=Content-Typecontent=text/html;charset=gb2312>
<title></title>
<style>
TD{FONT-SIZE:9pt}
</style></head>
<bodytopmargin=5leftmargin=0scroll=AUTO>
<%calltable2(total,100,90,600,250,3)%>
</body>
</html>
<%
functiontable2(total,table_x,table_y,all_width,all_height,line_no)
参数含义(传递的数组,横坐标,纵坐标,图表的宽度,图表的高度,折线条数)
纯ASP代码生成图表函数2——折线图
作者:龚鸣
本人非常愿意和ASP,VML,FLASH的爱好者在进行交流和探讨
版本1.0最后修改日期2003-8-11
非常感谢您使用这个函数,请您使用和转载时保留版权信息,这是对作者工作的最好的尊重。
line_color=#69f
left_width=70
total_no=ubound(total,1)
temp1=0
fori=1tototal_no
forj=1toline_no
iftemp1<total(i,j)thentemp1=total(i,j)
next
next
temp1=int(temp1)
iftemp1>9then
temp2=mid(cstr(temp1),2,1)
iftemp2>4then
temp3=(int(temp1/(10^(len(cstr(temp1))-1)))+1)*10^(len(cstr(temp1))-1)
else
temp3=(int(temp1/(10^(len(cstr(temp1))-1)))+0.5)*10^(len(cstr(temp1))-1)
endif
else
iftemp1>4thentemp3=10elsetemp3=5
endif
temp4=temp3
response.write<v:rectid=_x0000_s1027alt=style=position:absolute;left:table_x+left_widthpx;top:table_ypx;width:all_widthpx;height:all_heightpx;z-index:-1fillcolor=#9cfstroked=f><v:fillrotate=tangle=-45focus=100%type=gradient/></v:rect>
fori=0toall_height-1stepall_height/5
response.write<v:lineid=_x0000_s1027alt=style=position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1from=table_x+left_width+lengthpx,table_y+all_height-length-ipxto=table_x+all_width+left_widthpx,table_y+all_height-length-ipxstrokecolor=line_color/>
response.write<v:lineid=_x0000_s1027alt=style=position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1from=table_x+(left_width-15)px,table_y+ipxto=table_x+left_widthpx,table_y+ipx/>
response.write
response.write<v:shapeid=_x0000_s1025type=#_x0000_t202alt=style=position:absolute;left:table_xpx;top:table_y+ipx;width:left_widthpx;height:18px;z-index:1>
response.write<v:textboxinset=0px,0px,0px,0px><tablecellspacing=3cellpadding=0width=100%height=100%><tr><tdalign=right>temp4</td></tr></table></v:textbox></v:shape>
temp4=temp4-temp3/5
next
response.write<v:lineid=_x0000_s1027alt=style=position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1from=table_x+left_widthpx,table_y+all_heightpxto=table_x+all_width+left_widthpx,table_y+all_heightpx/>
response.write<v:lineid=_x0000_s1027alt=style=position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1from=table_x+left_widthpx,table_ypxto=table_x+left_widthpx,table_y+all_heightpx/>
dimline_code
redimline_code(line_no,5)
fori=1toline_no
line_temp=split(total(0,i),,)
line_code(i,1)=line_temp(0)
line_code(i,2)=line_temp(1)
line_code(i,3)=line_temp(2)
line_code(i,4)=line_temp(3)
line_code(i,5)=line_temp(4)
next
forj=1toline_no
fori=1tototal_no-1
x1=table_x+left_width+all_width*(i-1)/total_no
y1=table_y+(temp3-total(i,j))*(all_height/temp3)
x2=table_x+left_width+all_width*i/total_no
y2=table_y+(temp3-total(i+1,j))*(all_height/temp3)
response.write<v:lineid=_x0000_s1025alt=\style=position:absolute;left:0;text-align:left;top:0;z-index:1from=x1px,y1pxto=x2px,y2pxcoordsize=21600,21600strokecolor=line_code(j,1)strokeweight=line_code(j,2)>
selectcaseline_code(j,3)
case1
case2
response.write<v:strokedashstyle=11/>
case3
response.write<v:strokedashstyle=dash/>
case4
response.write<v:strokedashstyle=dashDot/>
case5
response.write<v:strokedashstyle=longDash/>
case6
response.write<v:strokedashstyle=longDashDot/>
case7
response.write<v:strokedashstyle=longDashDotDot/>
caseelse
endselect
response.write</v:line>CHR(13)
selectcaseline_code(j,4)
case1
case2
response.write<v:rectid=_x0000_s1027