ASP生成柱型体,折线图,饼图源代码
2018-09-06 12:23
ASP生成柱型体,折线图,饼图源代码
--------------------------------------------------------------------------------
<%
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_width&px;top:&table_y&px;width:&all_width&px;height:&all_height&px;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+length&px,&table_y+all_height-length-i&pxto=&table_x+all_width+left_width&px,&table_y+all_height-length-i&pxstrokecolor=&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+i&pxto=&table_x+left_width&px,&table_y+i&px/>
response.write
response.write<v:shapeid=_x0000_s1025type=#_x0000_t202alt=style=position:absolute;left:&table_x&px;top:&table_y+i&px;width:&left_width&px;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_width&px,&table_y+all_height&pxto=&table_x+all_width+left_width&px,&table_y+all_height&px/>
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&px,&table_y&pxto=&table_x+left_width&px,&table_y+all_height&px/>
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=&x1&px,&y1&pxto=&x2&px,&y2&pxcoordsize=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_s1027style=position:absolute;left:&x1-2&px;top:&y1-2&px;width:4px;height:4px;z-index:2fillcolor=&line_code(j,1)&strokecolor=&line_code(j,1)&/>&CHR(13)
case3
response.write<v:ovalid=_x0000_s1026style=position:absolute;left:&x1-2&px;top:&y1-2&px;width:4px;height:4px;z-index:1fillcolor=&line_code(j,1)&strokecolor=&line_code(j,1)&/>&CHR(13)
endselect
next
selectcaseline_code(j,4)
case1
case2
response.write<v:rectid=_x0000_s1027style=position:absolute;left:&x2-2&px;top:&y2-2&px;width:4px;height:4px;z-index:2fillcolor=&line_code(j,1)&strokecolor=&line_code(j,1)&/>&CHR(13)
case3
response.write<v:ovalid=_x0000_s1026style=position:absolute;left:&x2-2&px;top:&y2-2&px;width:4px;height:4px;z-index:1fillcolor=&line_code(j,1)&strokecolor=&line_code(j,1)&/>&CHR(13)
endselect
next
fori=1tototal_no
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+all_width*(i-1)/total_no&px,&table_y+all_height&pxto=&table_x+left_width+all_width*(i-1)/total_no&px,&table_y+all_height+15&px/>
response.write
response.write<v:shapeid=_x0000_s1025type=#_x0000_t202alt=style=position:absolute;left:&table_x+left_width+all_width*(i-1)/total_no&px;top:&table_y+all_height&px;width:&all_width/total_no&px;height:18px;z-index:1>
response.write<v:textboxinset=0px,0px,0px,0px><tablecellspacing=3cellpadding=0width=100%height=100%><tr><tdalign=left>&total(i,0)&</td></tr></table></v:textbox></v:shape>
next
tb_height=30
response.write<v:rectid=_x0000_s1025style=position:absolute;left:&table_x+all_width+20&px;top:&table_y&px;width:100px;height:&line_no*tb_height+20&px;z-index:1/>
fori=1toline_no
response.write<v:shapeid=_x0000_s1025type=#_x0000_t202alt=style=position:absolute;left:&table_x+all_width+25&px;top:&table_y+10+(i-1)*tb_height&px;width:60px;height:&tb_height&px;z-index:1>
response.write<v:textboxinset=0px,0px,0px,0px><tablecellspacing=3cellpadding=0width=100%height=100%><tr><tdalign=left>&line_code(i,5)&</td></tr></table></v:textbox></v:shape>
response.write<v:rectid=_x0000_s1040alt=style=position:absolute;left:&table_x+all_width+80&px;top:&table_y+10+(i-1)*tb_height+4&px;width:30px;height:20px;z-index:1fillcolor=&line_code(i,1)&><v:fillcolor2=&line_code(i,1)&rotate=tfocus=100%type=gradient/></v:rect>
next
endfunction
functiontable1(total,table_x,table_y,thickness,table_width,all_width,all_height,table_type)
参数含义(传递的数组,横坐标,纵坐标,柱子的厚度,柱子的宽度,图表的宽度,图表的高度,图表的类型)
纯ASP代码生成图表函数1——柱状图
作者:龚鸣(Passwordgm)QQ:25968152MSN:passwordgm@sina.comEmail:passwordgm@sina.com
本人非常愿意和ASP,VML,FLASH的爱好者在HTTP://topclouds.126.com进行交流和探讨
版本2.0最后修改日期2003-7-22
非常感谢您使用这个函数,请您使用和转载时保留版权信息,这是对作者工作的最好的尊重。
dimtb_color(7,2)
tb_color(1,1)=#d1ffd1
tb_color(2,1)=#ffbbbb
tb_color(3,1)=#ffe3bb
tb_color(4,1)=#cff4f3
tb_color(5,1)=#d9d9e5
tb_color(6,1)=#ffc7ab
tb_color(7,1)=#ecffb7
tb_color(1,2)=#00ff00
tb_color(2,2)=#ff0000
tb_color(3,2)=#ff9900
tb_color(4,2)=#33cccc
tb_color(5,2)=#666699
tb_color(6,2)=#993300
tb_color(7,2)=#99cc00
line_color=#69f
left_width=70
length=thickness/2
total_no=ubound(total,1)
temp1=0
fori=1tototal_no
iftemp1<total(i,1)thentemp1=total(i,1)
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<!--[ifgtevml1]><v:rectid=_x0000_s1027alt=style=position:absolute;left:&table_x+left_width&px;top:&table_y&px;width:&all_width&px;height:&all_height&px;z-index:-1fillcolor=#9cfstroked=f><v:fillrotate=tangle=-45focus=100%type=gradient/></v:rect><![endif]-->
response.write<!--[ifgtevml1]><v:lineid=_x0000_s1027alt=style=position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1from=&table_x+left_width&px,&table_y+all_height&pxto=&table_x+all_width+left_width&px,&table_y+all_height&px/><![endif]-->
response.write<!--[ifgtevml1]><v:lineid=_x0000_s1027alt=style=position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1from=&table_x+left_width&px,&table_y&pxto=&table_x+left_width&px,&table_y+all_height&px/><![endif]-->
selectcasetable_type
caseA
table_space=(all_width-table_width*total_no)/total_no
response.write<!--[ifgtevml1]><v:lineid=_x0000_s1027alt=style=position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1from=&table_x+left_width+length&px,&table_y&pxto=&table_x+left_width+length&px,&table_y+all_height-length&pxstrokecolor=&line_color&/><![endif]-->
fori=0toall_height-1stepall_height/5
response.write<!--[ifgtevml1]><v:lineid=_x0000_s1027alt=style=position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1from=&table_x+left_width&px,&table_y+all_height-length-i&pxto=&table_x+left_width+length&px,&table_y+all_height-i&pxstrokecolor=&line_color&/><![endif]-->
response.write<!--[ifgtevml1]><v:lineid=_x0000_s1027alt=style=position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1from=&table_x+left_width+length&px,&table_y+all_height-length-i&pxto=&table_x+all_width+left_width&px,&table_y+all_height-length-i&pxstrokecolor=&line_color&/><![endif]-->
response.write<!--[ifgtevml1]><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+i&pxto=&table_x+left_width&px,&table_y+i&px/><![endif]-->
response.write<!--[ifgtevml1]>
response.write<v:shapeid=_x0000_s1025type=#_x0000_t202alt=style=position:absolute;left:&table_x&px;top:&table_y+i&px;width:&left_width&px;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><![endif]-->
temp4=temp4-temp3/5
next
fori=1tototal_no
temp_space=table_x+left_width+table_space/2+table_space*(i-1)+table_width*(i-1)
response.write<v:rectid=_x0000_s1025alt=style=position:absolute;left:
response.writetemp_space
response.writepx;top:
response.writetable_y+all_height*(1-(total(i,1)/temp3))
response.writepx;width:&table_width&px;height:&all_height*(total(i,1)/temp3)&px;z-index:1fillcolor=&tb_color(i,2)&>
response.write<v:fillcolor2=&tb_color(i,1)&rotate=ttype=gradient/>
response.write<o:extrusionv:ext=viewbackdepth=&thickness&ptcolor=&tb_color(i,2)&on=t/>
response.write</v:rect>
response.write<v:shapeid=_x0000_s1025type=#_x0000_t202alt=style=position:absolute;left:&temp_space&px;top:&table_y+all_height*(1-(total(i,1)/temp3))-table_width&px;width:&table_space+15&px;height:18px;z-index:1>
response.write<v:textboxinset=0px,0px,0px,0px><tablecellspacing=3cellpadding=0width=100%height=100%><tr><tdalign=center>&total(i,1)&</td></tr></table></v:textbox></v:shape>
response.write<v:shapeid=_x0000_s1025type=#_x0000_t202alt=style=position:absolute;left:&temp_space-table_space/2&px;top:&table_y+all_height+1&px;width:&table_space+table_width&px;height:18px;z-index:1>
response.write<v:textboxinset=0px,0px,0px,0px><tablecellspacing=3cellpadding=0width=100%height=100%><tr><tdalign=center>&total(i,2)&</td></tr></table></v:textbox></v:shape>
next
CaseB
table_space=(all_height-table_width*total_no)/total_no
response.write<!--[ifgtevml1]><v:lineid=_x0000_s1027alt=style=position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1from=&table_x+left_width+length&px,&table_y+all_height-length&pxto=&table_x+left_width+all_width&px,&table_y+all_height-length&pxstrokecolor=&line_color&/><![endif]-->
fori=0toall_width-1stepall_width/5
response.write<!--[ifgtevml1]><v:lineid=_x0000_s1027alt=style=position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1from=&table_x+left_width+i&px,&table_y+all_height-length&pxto=&table_x+left_width+length+i&px,&table_y+all_height&pxstrokecolor=&line_color&/><![endif]-->
response.write<!--[ifgtevml1]><v:lineid=_x0000_s1027alt=style=position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1from=&table_x+left_width+length+i&px,&table_y+all_height-length&pxto=&table_x+left_width+length+i&px,&table_y&pxstrokecolor=&line_color&/><![endif]-->
response.write<!--[ifgtevml1]><v:lineid=_x0000_s1027alt=style=position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1from=&table_x+left_width+i+all_width/5&px,&table_y+all_height&pxto=&table_x+left_width+i+all_width/5&px,&table_y+all_height+15&px/><![endif]-->
response.write<!--[ifgtevml1]>
response.write<v:shapeid=_x0000_s1025type=#_x0000_t202alt=style=position:absolute;left:&table_x+left_width+i+all_width/5-left_width&px;top:&table_y+all_height&px;width:&left_width&px;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><![endif]-->
temp4=temp4-temp3/5
next
fori=1tototal_no
temp_space=table_space/2+table_space*(i-1)+table_width*(i-1)
response.write<v:rectid=_x0000_s1025alt=style=position:absolute;left:
response.writetable_x+left_width
response.writepx;top:
response.writetable_y+temp_space
response.writepx;width:&all_width*(total(i,1)/temp3)&px;height:&table_width&px;z-index:1fillcolor=&tb_color(i,2)&>
response.write<v:fillcolor2=&tb_color(i,1)&rotate=tangle=-90focus=100%type=gradient/>
response.write<o:extrusionv:ext=viewbackdepth=&thickness&ptcolor=&tb_color(i,2)&on=t/>
response.write</v:rect>
response.write<v:shapeid=_x0000_s1025type=#_x0000_t202alt=style=position:absolute;left:&table_x+left_width+all_width*(total(i,1)/temp3)+thickness/2&px;top:&table_y+temp_space&px;width:&table_space+15&px;height:18px;z-index:1>
response.write<v:textboxinset=0px,0px,0px,0px><tablecellspacing=3cellpadding=0width=100%height=100%><tr><tdalign=center>&total(i,1)&</td></tr></table></v:textbox></v:shape>
response.write<v:shapeid=_x0000_s1025type=#_x0000_t202alt=style=position:absolute;left:&table_x&px;top:&table_y+temp_space&px;width:&left_width&px;height:18px;z-index:1>
response.write<v:textboxinset=0px,0px,0px,0px><tablecellspacing=3cellpadding=0width=100%height=100%><tr><tdalign=right>&total(i,2)&</td></tr></table></v:textbox></v:shape>
next
caseelse
endselect
endfunction
functiontable3(total,table_x,table_y,all_width,all_height,table_type)
参数含义(传递的数组,横坐标,纵坐标,图表的宽度,图表的高度,图表的类型)
纯ASP代码生成图表函数3——饼图
作者:龚鸣(Passwordgm)QQ:25968152MSN:passwordgm@sina.comEmail:passwordgm@sina.com
本人非常愿意和ASP,VML,FLASH的爱好者在HTTP://topclouds.126.com进行交流和探讨
版本1.0最后修改日期2003-8-11
非常感谢您使用这个函数,请您使用和转载时保留版权信息,这是对作者工作的最好的尊重。
tb_height=30
dimtb_color(7,2)
tb_color(1,1)=#d1ffd1
tb_color(2,1)=#ffbbbb
tb_color(3,1)=#ffe3bb
tb_color(4,1)=#cff4f3
tb_color(5,1)=#d9d9e5
tb_color(6,1)=#ffc7ab
tb_color(7,1)=#ecffb7
tb_color(1,2)=#00ff00
tb_color(2,2)=#ff0000
tb_color(3,2)=#ff9900
tb_color(4,2)=#33cccc
tb_color(5,2)=#666699
tb_color(6,2)=#993300
tb_color(7,2)=#99cc00
total_no=ubound(total,1)
totalpie=0
fori=1tototal_no
totalpie=totalpie+total(i,1)
next
PreAngle=0
fori=1tototal_no
response.write<v:shapeid=_x0000_s1025alt=style=position:absolute;left:&table_x&px;top:&table_y&px;width:&all_width&px;height:&all_height&px;z-index:1coordsize=1500,1400o:spt=100adj=0,,0path=m750,700ae750,700,750,700,&int(23592960*PreAngle)&,&int(23592960*total(i,1)/totalpie)&xefillcolor=&tb_color(i,1)&strokecolor=#FFFFFF><v:fillcolor2=&tb_color(i,2)&rotate=tfocus=100%type=gradient/><v:strokejoinstyle=round/><v:formulas/><v:patho:connecttype=segments/></v:shape>&CHr(13)
PreAngle=PreAngle+total(i,1)/totalpie
next
iftable_type=Athen
response.write<v:rectid=_x0000_s1025style=position:absolute;left:&table_x+all_width+20&px;top:&table_y+20&px;width:100px;height:&total_no*tb_height+20&px;z-index:1/>
fori=1tototal_no
response.write<v:shapeid=_x0000_s1025type=#_x0000_t202alt=style=position:absolute;left:&table_x+all_width+25&px;top:&table_y+30+(i-1)*tb_height&px;width:60px;height:&tb_height&px;z-index:1>
response.write<v:textboxinset=0px,0px,0px,0px><tablecellspacing=3cellpadding=0width=100%height=100%><tr><tdalign=left>&total(i,0)&</td></tr></table></v:textbox></v:shape>
response.write<v:rectid=_x0000_s1040alt=style=position:absolute;left:&table_x+all_width+80&px;top:&table_y+30+(i-1)*tb_height+3&px;width:30px;height:20px;z-index:1fillcolor=&tb_color(i,1)&><v:fillcolor2=&tb_color(i,2)&rotate=tfocus=100%type=gradient/></v:rect>
显示比例数
response.write<v:shapeid=_x0000_s1025type=#_x0000_t202alt=style=position:absolute;left:&table_x+all_width+110&px;top:&table_y+30+(i-1)*tb_height&px;width:60px;height:&tb_height&px;z-index:1>
response.write<v:textboxinset=0px,0px,0px,0px><tablecellspacing=3cellpadding=0width=100%height=100%><tr><tdalign=left>&formatnumber(total(i,1)*100/totalpie,2,-1)&%</td></tr></table></v:textbox></v:shape>
next
endif
iftable_type=Bthen
pie=3.14159265358979
TempPie=0
fori=1tototal_no
TempAngle=pie*2*(total(i,1)/(TotalPie*2)+TempPie)
x1=table_x+all_width/2+cos(TempAngle)*all_width*3/8
y1=table_y+all_height/2-sin(TempAngle)*all_height*3/8
x2=table_x+all_width/2+cos(TempAngle)*all_width*3/4
y2=table_y+all_height/2-sin(TempAngle)*all_height*3/4
ifx2>table_x+all_width/2then
x3=x2+20
x4=x3
else
x3=x2-20
x4=x3-100
endif
response.write<v:ovalid=_x0000_s1027style=position:absolute;left:&x1-2&px;top:&y1-2&px;width:4px;height:4px;z-index:2fillcolor=#111111strokecolor=#111111/>&CHR(13)
response.write<v:lineid=_x0000_s1025alt=style=position:absolute;left:0;text-align:left;top:0;z-index:1from=&x1&px,&y1&pxto=&x2&px,&y2&pxcoordsize=21600,21600strokecolor=#111111strokeweight=1px></v:line>
response.write<v:lineid=_x0000_s1025alt=style=position:absolute;left:0;text-align:left;top:0;z-index:1from=&x2&px,&y2&pxto=&x3&px,&y2&pxcoordsize=21600,21600strokecolor=#111111strokeweight=1px></v:line>
response.write<v:shapeid=_x0000_s1025type=#_x0000_t202alt=style=position:absolute;left:&x4&px;top:&y2-10&px;width:100px;height:20px;z-index:1>
response.write<v:textboxinset=0px,0px,0px,0px><tablecellspacing=3cellpadding=0width=100%height=100%><tr><tdalign=left>&total(i,0)&&formatnumber(total(i,1)*100/totalpie,2,-1)&%</td></tr></table></v:textbox></v:shape>
TempPie=TempPie+total(i,1)/TotalPie
next
endif
endfunction
%>
纯ASP代码生成图表函数1——柱状图调用示例
<%
dimtotal(7,2)
total(1,1)=200
total(2,1)=800
total(3,1)=1000
total(4,1)=600
total(5,1)=1222
total(6,1)=3213
total(7,1)=8
total(1,2)=中国经营报
total(2,2)=招聘网
total(3,2)=51Job
total(4,2)=新民晚报
total(5,2)=新闻晚报
total(6,2)=南方周末
total(7,2)=羊城晚报
total_no=7
%>
<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>
<%calltable1(total,200,20,20,30,400,200,A)%>
<%calltable1(total,200,320,20,20,400,250,B)%>
</body>
</html>