<% '┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ '┃ ┃ '┃ 摘 要: 统计图--直方图 ┃ '┃ 作 者: 翁云兵 ┃ '┃ 创建日期:2004年11月5日 ┃ '┃ 完成日期:2004年11月5日 ┃ '┃ ┃ '┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ '参数含义(数组,横坐标,纵坐标,图表的宽度,图表的高度,图表标题,X轴单位,Y轴单位) function table1(stat_array,table_left,table_top,all_width,all_height,table_title,X_unit,Y_unit) dim bg_color(10) bg_color(1)="#ff1919" bg_color(2)="#ffff19" bg_color(3)="#1919ff" bg_color(4)="#19ff19" bg_color(5)="#fc0" bg_color(6)="#3cc" bg_color(7)="#ff19ff" bg_color(8)="#993300" bg_color(9)="#f60" bg_color(10)="#ff8c19" if X_unit<>"" then X_unit=X_unit end if if Y_unit<>"" then Y_unit=Y_unit end if num =ubound(stat_array,1) item_width = cint(20000/num+0.5) begin_x= cint((item_width-1200)/2)+2200 value_Max=0 for i=1 to num if value_Max<stat_array(i,1) then value_Max=stat_array(i,1) next value_Max = cint(value_Max) value_Max_str =cstr(value_Max) if value_Max>9 then temp=mid(value_Max_str,2,1) if temp>4 then temp2=(int(value_Max/(10^(len(value_Max_str)-1)))+1)*10^(len(value_Max_str)-1) else temp2=(int(value_Max/(10^(len(value_Max_str)-1)))+0.5)*10^(len(value_Max_str)-1) end if else if value_Max>4 then temp2=10 else temp2=5 end if item_hight = temp2/5 response.Write "<v:shapetype id='Box' coordsize='21600,21600' o:spt='16' adj='5400'></v:shapetype>" response.Write "<v:rect id='background' style='position:absolute;left:"&table_left&"px;top:"&table_top&"px;WIDTH:"&all_width&"px;HEIGHT:"&all_height&"px;' fillcolor='#EFEFEF' strokecolor='gray'>" response.Write " <v:shadow on='t' type='single' color='silver' offset='4pt,4pt'/>" response.Write "</v:rect>" response.Write "<v:group ID='table' style='position:absolute;left:"&table_left&"px;top:"&table_top&"px;WIDTH:"&all_width&"px;HEIGHT:"&all_height&"px;' coordsize = '23500,12700'>" response.Write " <v:Rect style='position:relative;left:1500;top:200;width:20000;height:800'filled='false' stroked='false'>" response.Write " <v:TextBox inset='0pt,0pt,0pt,0pt'>" response.Write " <table width='100%' border='0' align='center' cellspacing='0'>" response.Write " <tr>" response.Write " <td align='center' valign='middle'><div style='font-size:15pt; font-family:黑体;'><B>"&table_title&"</B></div></td>" response.Write " </tr>" response.Write " </table>" response.Write " </v:TextBox>" response.Write " </v:Rect> " response.Write " <v:rect id='back' style='position:relative;left:1700;top:1200;width:20500; height:10500;' fillcolor='#9cf' strokecolor='#DFDFDF'>" response.Write " <v:fill rotate='t' angle='-45' focus='100%' type='gradient'/>" response.Write " </v:rect>" response.Write " <v:line ID='X' from='1700,11700' to='22700,11700' style='z-index:2' strokecolor='#000000' strokeWeight=1pt><v:stroke EndArrow='Classic'/></v:line>" response.Write " <v:line ID='Y' from='1700,900' to='1700,11700' style='z-index:2' strokecolor='#000000' strokeWeight=1pt><v:stroke StartArrow='Classic'/></v:line>" response.Write " <v:Rect style='position:relative;left:100;top:700;width:1500;height:500' filled='false' stroked='false'>" response.Write " <v:TextBox inset='0pt,0pt,0pt,0pt' style='font-size:9pt;'><div align='right'>"&Y_unit&"</div></v:TextBox>" response.Write " </v:Rect> " response.Write " <v:Rect style='position:relative;left:22200;top:11700;width:2000;height:500' filled='false' stroked='false'>" response.Write " <v:TextBox inset='0pt,0pt,0pt,0pt' style='font-size:9pt;'><div align='left'>"&X_unit&"</div></v:TextBox>" response.Write " </v:Rect> " for i=0 to 4 response.Write " <v:line from='1200,"&i*2000+1700&"' to='1700,"&i*2000+1700&"' style='z-index:2' strokecolor='#000000'></v:line>" response.Write " <v:line from='1700,"&i*2000+1700&"' to='2200,"&i*2000+1200&"' style='z-index:2' strokecolor='#0099FF'></v:line>" response.Write " <v:line from='2200,"&i*2000+1200&"' to='22200,"&i*2000+1200&"' style='z-index:2' strokecolor='#0099FF'></v:line>" response.Write " <v:line from='2200,"&i*2000+2200&"' to='22200,"&i*2000+2200&"' style='z-index:2' strokecolor='#0099FF'>" response.Write " <v:stroke dashstyle='Dot'/>" response.Write " </v:line>" response.Write " <v:Rect style='position:relative;left:100;top:"&i*2000+1250&";width:1500;height:500' filled='false' stroked='false'>" response.Write " <v:TextBox inset='0pt,0pt,0pt,0pt' style='font-size:9pt;'><div align='right'>"&item_hight*(5-i)&"</div></v:TextBox>" response.Write " </v:Rect> " next response.Write " <v:line from='2200,11200' to='22200,11200' style='z-index:2' strokecolor='#0099FF'></v:line>" response.Write " <v:line from='2200,1200' to='2200,11200' style='z-index:2' strokecolor='#0099FF'></v:line>" response.Write " <v:line from='1700,11700' to='2200,11200' style='z-index:2' strokecolor='#0099FF'></v:line>" for i=1 to num this_hight = cint(stat_array(i,1)/(5*item_hight)*10000+420) response.Write " <v:shape id='Box"&i&"' type='#Box' fillcolor='"&bg_color(i)&"' strokecolor='#5f5f5f' style='position:relative; left:"&(i-1)*item_width+begin_x&";top:"&cint(10000-this_hight+1620)&";width:1200;height:"&this_hight&";z-index:10'>" response.Write " <v:fill o:opacity2='52429f' rotate='t' angle='-45' focus='100%' type='gradient'/>" response.Write " </v:shape>" response.Write " <v:Rect style='position:relative;left:"&(i-1)*item_width+2200&";top:"&cint(10000-this_hight+1150)&";width:"&item_width&";height:500' filled='false' stroked='false'>" response.Write " <v:TextBox inset='0pt,0pt,0pt,0pt' style='font-size:9pt;'><div align='center'>"&stat_array(i,1)&"</div></v:TextBox>" response.Write " </v:Rect> " response.Write " <v:Rect style='position:relative;left:"&(i-1)*item_width+2200&";top:11850;width:"&item_width&";height:500' filled='false' stroked='false'>" response.Write " <v:TextBox inset='0pt,0pt,0pt,0pt' style='font-size:9pt;'><div align='center'>"&stat_array(i,2)&"</div></v:TextBox>" response.Write " </v:Rect> " next response.Write "</v:group>" end function %> <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office"> <head> <title></title> <STYLE> v\:* { Behavior: url(#default#VML) } o\:* { behavior: url(#default#VML) } </STYLE> </head> <body> <% dim total(10,2) total(1,1)=200 total(2,1)=800 total(3,1)=1004 total(4,1)=600 total(5,1)=1222 total(6,1)=2100 total(7,1)=80 total(8,1)=1002 total(9,1)=145 total(10,1)=1040 total(1,2)="项目1" total(2,2)="项目2" total(3,2)="项目3" total(4,2)="项目4" total(5,2)="项目5" total(6,2)="项目6" total(7,2)="项目7" total(8,2)="项目8" total(9,2)="项目9" total(10,2)="项目10" call table1(total,240,200,700,400,"柱 状 统 计 图","","元") %> </body> </html>
运行效果:
<% '┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ '┃ ┃ '┃ 摘 要: 统计图--曲线图 ┃ '┃ 作 者: 翁云兵 ┃ '┃ 创建日期:2004年12月01日 ┃ '┃ 完成日期:2004年11月03日 ┃ '┃ ┃ '┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ '参数含义(数组,横坐标,纵坐标,图表的宽度,图表的高度,图表标题,X轴单位,Y轴单位) function table1(stat_array,table_left,table_top,all_width,all_height,table_title,X_unit,Y_unit) dim bg_color(10) bg_color(1)="#ff1919" bg_color(2)="#ffff19" bg_color(3)="#1919ff" bg_color(4)="#19ff19" bg_color(5)="#fc0" bg_color(6)="#3cc" bg_color(7)="#ff19ff" bg_color(8)="#993300" bg_color(9)="#f60" bg_color(10)="#ff8c19" if X_unit <> "" then X_unit = X_unit end if if Y_unit <> "" then Y_unit = Y_unit end if num1 = ubound(stat_array,1) line_temp=split(stat_array(0,1),",") num2 = ubound(line_temp,1)+1 dim line_code redim line_code(num1,num2) for j=1 to num2 line_code(0,j) = line_temp(j-1) next for i=1 to num1 line_temp = split(stat_array(i,1),",") line_code(i,0) = stat_array(i,2) for j=1 to num2 line_code(i,j) = cdbl(line_temp(j-1)) next next value_Max=0 for i=1 to num1 for j=1 to num2 if value_Max<line_code(i,j) then value_Max=line_code(i,j) next next value_Max = cint(value_Max) value_Max_str =cstr(value_Max) if value_Max>9 then temp=mid(value_Max_str,2,1) if temp>4 then temp2=(int(value_Max/(10^(len(value_Max_str)-1)))+1)*10^(len(value_Max_str)-1) else temp2=(int(value_Max/(10^(len(value_Max_str)-1)))+0.5)*10^(len(value_Max_str)-1) end if else if value_Max>4 then temp2=10 else temp2=5 end if item_hight = temp2/5 item_width = 20000/(num2-1) response.Write "<v:rect id='background' style='position:absolute;left:"&table_left&"px;top:"&table_top&"px;WIDTH:"&all_width&"px;HEIGHT:"&all_height&"px;' fillcolor='#EFEFEF' strokecolor='gray'>" response.Write " <v:shadow on='t' type='single' color='silver' offset='4pt,4pt'/>" response.Write "</v:rect>" response.Write "<v:group ID='table' style='position:absolute;left:"&table_left&"px;top:"&table_top&"px;WIDTH:"&all_width&"px;HEIGHT:"&all_height&"px;' coordsize = '27500,12800'>" response.Write " <v:Rect style='position:relative;left:1500;top:200;width:23000;height:800'filled='false' stroked='f'>" response.Write " <v:TextBox inset='0pt,0pt,0pt,0pt'>" response.Write " <table width='100%' border='0' align='center' cellspacing='0'>" response.Write " <tr>" response.Write " <td align='center' valign='middle'><div style='font-size:15pt; font-family:黑体;'><B>"&table_title&"</B></div></td>" response.Write " </tr>" response.Write " </table>" response.Write " </v:TextBox>" response.Write " </v:Rect> " response.Write " <v:rect id='back' style='position:relative;left:1700;top:1200;width:20500; height:10500;' fillcolor='#9cf' strokecolor='#DFDFDF'>" response.Write " <v:fill rotate='t' angle='-45' focus='100%' type='gradient'/>" response.Write " </v:rect>" response.Write " <v:rect id='back2' style='position:relative;left:23000;top:1200;width:4000; height:"&(10500)&";' fillcolor='#9cf' stroked='t' strokecolor='#0099ff'>" response.Write " <v:fill rotate='t' angle='-175' focus='100%' type='gradient'/>" response.Write " <v:shadow on='t' type='single' color='silver' offset='3pt,3pt'/>" response.Write " </v:rect>" for i=1 to num1 if i=1 then displaystr="" else displaystr="none" end if response.Write " <div style='cursor:hand;' onmouseover='moveon(rec"&i&",line_"&i&")' onmouseout='moveout(rec"&i&",line_"&i&","&i&")' onclick='clickit("&i&")'>" response.Write " <v:Rect id='rec"&i&"' style='position:relative;left:23100;top:"&(i-1)*10200/10+1450&";width:3800;height:800;display:"&displaystr&";' fillcolor='#efefef' strokecolor='"&bg_color(i)&"'>" response.Write " <v:fill opacity='.6' color2='fill darken(118)' o:opacity2='.6' rotate='t' method='linear sigma' focus='100%' type='gradient'/>" response.Write " </v:Rect>" response.Write " <v:Rect style='position:relative;left:23200;top:"&(i-1)*10200/10+1500&";width:600;height:700' fillcolor='"&bg_color(i)&"' stroked='f'/>" response.Write " <v:Rect style='position:relative;left:24000;top:"&(i-1)*10200/10+1500&";width:3400;height:700' filled='f' stroked='f'>" response.Write " <v:TextBox inset='0pt,4pt,0pt,0pt' style='font-size:9pt;'><div align='left'>"&stat_array(i,2)&"</div></v:TextBox>" response.Write " </v:Rect> " response.Write " </div> " next response.Write " <v:line ID='X' from='1700,11700' to='22700,11700' style='z-index:2' strokecolor='#000000' strokeWeight=1pt><v:stroke EndArrow='Classic'/></v:line>" response.Write " <v:line ID='Y' from='1700,900' to='1700,11700' style='z-index:2' strokecolor='#000000' strokeWeight=1pt><v:stroke StartArrow='Classic'/></v:line>" response.Write " <v:Rect style='position:relative;left:100;top:700;width:1500;height:500' filled='false' stroked='false'>" response.Write " <v:TextBox inset='0pt,0pt,0pt,0pt' style='font-size:9pt;'><div align='right'>"&Y_unit&"</div></v:TextBox>" response.Write " </v:Rect> " response.Write " <v:Rect style='position:relative;left:22200;top:11900;width:2000;height:500' filled='false' stroked='false'>" response.Write " <v:TextBox inset='0pt,0pt,0pt,0pt' style='font-size:9pt;'><div align='left'>"&X_unit&"</div></v:TextBox>" response.Write " </v:Rect> " for i=0 to 4 response.Write " <v:line from='1300,"&i*2000+1700&"' to='1700,"&i*2000+1700&"' style='z-index:2' strokecolor='#000000'></v:line>" response.Write " <v:line from='1700,"&i*2000+1700&"' to='2200,"&i*2000+1200&"' style='z-index:2' strokecolor='#0099FF'></v:line>" response.Write " <v:line from='2200,"&i*2000+1200&"' to='22200,"&i*2000+1200&"' style='z-index:2' strokecolor='#0099FF'></v:line>" response.Write " <v:line from='2200,"&i*2000+2200&"' to='22200,"&i*2000+2200&"' style='z-index:2' strokecolor='#0099FF'>" response.Write " <v:stroke dashstyle='Dot'/>" response.Write " </v:line>" response.Write " <v:Rect style='position:relative;left:100;top:"&i*2000+1250&";width:1500;height:500' filled='false' stroked='false'>" response.Write " <v:TextBox inset='0pt,0pt,0pt,0pt' style='font-size:9pt;'><div align='right'>"&item_hight*(5-i)&"</div></v:TextBox>" response.Write " </v:Rect> " next response.Write " <v:line from='2200,11200' to='22200,11200' style='z-index:2' strokecolor='#0099FF'></v:line>" response.Write " <v:line from='2200,1200' to='2200,11200' style='z-index:2' strokecolor='#0099FF'></v:line>" response.Write " <v:line from='1700,11700' to='2200,11200' style='z-index:2' strokecolor='#0099FF'></v:line>" for j=0 to num2-1 response.Write " <v:line from='"&j*item_width+1700&",11700' to='"&j*item_width+1700&",12000' style='z-index:2' strokecolor='#000000'></v:line>" response.Write " <v:line from='"&j*item_width+1700&",11700' to='"&j*item_width+2200&",11200' style='z-index:2' strokecolor='#0099FF'><v:stroke dashstyle='ShortDot'/></v:line>" response.Write " <v:line from='"&j*item_width+2200&",1200' to='"&j*item_width+2200&",11200' style='z-index:2' strokecolor='#0099FF'><v:stroke dashstyle='ShortDot'/></v:line>" response.Write " <v:Rect style='position:relative;left:"&j*item_width+1700-item_width/2&";top:12100;width:"&item_width&";height:500' filled='false' stroked='false'>" response.Write " <v:TextBox inset='0pt,0pt,0pt,0pt' style='font-size:9pt;'><div align='center'>"&line_code(0,j+1)&"</div></v:TextBox>" response.Write " </v:Rect> " next for i=1 to num1 if i=1 then displaystr="" else displaystr="none" end if response.Write " <div id='line_"&i&"' style='display:"&displaystr&";'>" for j=0 to num2-2 this_hight1 = cint(line_code(i,j+1)/(5*item_hight)*10000) this_hight2 = cint(line_code(i,j+2)/(5*item_hight)*10000) response.Write " <v:line from='"&j*item_width+1850&","&(10000-this_hight1+1550)&"' to='"&(j+1)*item_width+1850&","&(10000-this_hight2+1550)&"'style='z-index:"&i*10&";' strokeweight='0.1pt' strokecolor='"&bg_color(i)&"'>" response.Write " <o:extrusion v:ext='view' backdepth='12pt' on='t' lightposition='-50000,-50000' lightposition2='50000'/>" response.Write " </v:line>" next response.Write " </div>" next response.Write "</v:group>" end function %> <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office"> <head> <title></title> <STYLE> v\:* { Behavior: url(#default#VML) } o\:* { behavior: url(#default#VML) } </STYLE> <SCRIPT LANGUAGE="JavaScript"> <!-- var showit = new Array(10); function moveon(iteam,lineit){ temp=eval(iteam) templine=eval(lineit) if(showit[1]){ rec1.style.display = ""; line_1.style.display = ""; }else{ rec1.style.display = "none"; line_1.style.display = "none"; } temp.style.display = ""; templine.style.display = ""; } function moveout(iteam,lineit,i){ temp=eval(iteam) templine=eval(lineit) if (showit[i]){ temp.style.display = ""; templine.style.display = ""; }else{ temp.style.display = "none"; templine.style.display = "none"; } } function clickit(i){ if (showit[i]){ showit[i]=false }else{ showit[i]=true } } --> </script> </head> <body> <% dim total(10,2) total(0,1)="1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月" total(1,1)="200,158,982,0,369,100,595,895,652,25,245,951" total(2,1)="984,58,495,36,158,486,952,258,653,415,485,14" total(3,1)="850,988,958,145,369,745,265,158,856,145,425,352" total(4,1)="600,525,235,485,258,265,158,365,35,148,658,475" total(5,1)="62,525,635,215,0,465,258,305,66,547,54,148" total(6,1)="560,625,645,329,158,665,358,95,120,358,42,253" total(7,1)="950,725,635,435,258,865,458,955,152,845,425,421" total(8,1)="600,825,155,455,458,265,558,365,352,245,853,122" total(9,1)="360,925,215,545,658,465,658,845,400,421,541,125" total(10,1)="50,225,355,655,858,665,758,35,584,214,54,651" total(1,2)="项目1" total(2,2)="项目2" total(3,2)="项目3" total(4,2)="项目4" total(5,2)="项目5" total(6,2)="项目6" total(7,2)="项目7" total(8,2)="项目8" total(9,2)="项目9" total(10,2)="项目10" call table1(total,240,200,700,350,"曲 线 统 计 图","时间","元") %> </body> </html>
运行效果:
<% '┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ '┃ ┃ '┃ 摘 要: 统计图--饼图 ┃ '┃ 作 者: 翁云兵 ┃ '┃ 创建日期:2004年11月23日 ┃ '┃ 完成日期:2004年11月28日 ┃ '┃ ┃ '┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ '参数含义(数组,横坐标,纵坐标,图表的宽度,图表的高度,图表标题,单位) function table2(stat_array,table_left,table_top,all_width,all_height,table_title,unit) dim bg_color(10),pie(10) bg_color(1)="#ff1919" bg_color(2)="#ffff19" bg_color(3)="#1919ff" bg_color(4)="#19ff19" bg_color(5)="#fc0" bg_color(6)="#3cc" bg_color(7)="#ff19ff" bg_color(8)="#993300" bg_color(9)="#f60" bg_color(10)="#ff8c19" num =ubound(stat_array,1) allvalues=0 for i=1 to num allvalues = allvalues+stat_array(i,1) next k=0 for i=1 to num-1 pie(i)=formatnumber(stat_array(i,1)/allvalues,4,-1) k=k+pie(i) next pie(num)=formatnumber((1-k),4,-1) response.Write "<v:shapetype id='Cake_3D' coordsize='21600,21600' o:spt='95' adj='11796480,5400' path='al10800,10800@0@0@2@14,10800,10800,10800,10800@3@15xe'></v:shapetype>" response.Write "<v:shapetype id='3dtxt' coordsize='21600,21600' o:spt='136' adj='10800' path='m@7,l@8,m@5,21600l@6,21600e'> " response.Write " <v:path textpathok='t' o:connecttype='custom' o:connectlocs='@9,0;@10,10800;@11,21600;@12,10800' o:connectangles='270,180,90,0'/>" response.Write " <v:textpath on='t' fitshape='t'/>" response.Write " <o:lock v:ext='edit' text='t' shapetype='t'/>" response.Write "</v:shapetype>" response.Write "<v:rect id='background' style='position:absolute;left:"&table_left&"px;top:"&table_top&"px;WIDTH:"&all_width&"px;HEIGHT:"&all_height&"px;' fillcolor='#EFEFEF' strokecolor='gray'>" response.Write " <v:shadow on='t' type='single' color='silver' offset='4pt,4pt'/>" response.Write "</v:rect>" response.Write "<v:group ID='table' style='position:absolute;left:"&table_left&"px;top:"&table_top&"px;WIDTH:"&all_width&"px;HEIGHT:"&all_height&"px;' coordsize = '21000,11500'>" response.Write " <v:Rect style='position:relative;left:500;top:200;width:20000;height:800'filled='false' stroked='false'>" response.Write " <v:TextBox inset='0pt,0pt,0pt,0pt'>" response.Write " <table width='100%' border='0' align='center' cellspacing='0'>" response.Write " <tr>" response.Write " <td align='center' valign='middle'><div style='font-size:15pt; font-family:黑体;'><B>"&table_title&"</B></div></td>" response.Write " </tr>" response.Write " </table>" response.Write " </v:TextBox>" response.Write " </v:Rect> " response.Write " <v:rect id='back' style='position:relative;left:500;top:1000;width:20000; height:10000;' onmouseover='movereset(1)' onmouseout='movereset(0)' fillcolor='#9cf' strokecolor='#888888'>" response.Write " <v:fill rotate='t' angle='-45' focus='100%' type='gradient'/>" response.Write " </v:rect>" response.Write " <v:rect id='back' style='position:relative;left:15000;top:1400;width:5000; height:"&((num+1)*9000/11+200)&";' fillcolor='#9cf' stroked='t' strokecolor='#0099ff'>" response.Write " <v:fill rotate='t' angle='-175' focus='100%' type='gradient'/>" response.Write " <v:shadow on='t' type='single' color='silver' offset='3pt,3pt'/>" response.Write " </v:rect>" response.Write " <v:Rect style='position:relative;left:15500;top:1500;width:4000;height:700' fillcolor='#000000' stroked='f' strokecolor='#000000'>" response.Write " <v:TextBox inset='8pt,4pt,3pt,3pt' style='font-size:11pt;'><div align='left'><font color='#ffffff'><B>总数:"&allvalues&unit&"</B></font></div></v:TextBox>" response.Write " </v:Rect> " for i=1 to num response.Write " <v:Rect id='rec"&i&"' style='position:relative;left:15400;top:"&i*9000/11+1450&";width:4300;height:800;display:none' fillcolor='#efefef' strokecolor='"&bg_color(i)&"'>" response.Write " <v:fill opacity='.6' color2='fill darken(118)' o:opacity2='.6' rotate='t' method='linear sigma' focus='100%' type='gradient'/>" response.Write " </v:Rect>" response.Write " <v:Rect style='position:relative;left:15500;top:"&i*9000/11+1500&";width:600;height:700' fillcolor='"&bg_color(i)&"' stroked='f'/>" response.Write " <v:Rect style='position:relative;left:16300;top:"&i*9000/11+1500&";width:3400;height:700' filled='f' stroked='f'>" response.Write " <v:TextBox inset='0pt,5pt,0pt,0pt' style='font-size:9pt;'><div align='left'>"&stat_array(i,2)&":"&stat_array(i,1)&unit&"</div></v:TextBox>" response.Write " </v:Rect> " next response.Write "</v:group>" k1=180 k4=10 for i=1 to num k2=360*pie(i)/2 k3=k1+k2 if k3>=360 then k3=k3-360 end if kkk=(-11796480*pie(i)+5898240) k5=3.1414926*2*(180-(k3-180))/360 R=all_height/2 txt_x = table_left+all_height/8-30+R+R*sin(k5)*0.7 txt_y = table_top+all_height/14-39+R+R*cos(k5)*0.7*0.5 titlestr = " 名 称:"&stat_array(i,2)&" 数 值:"&stat_array(i,1)&unit&" 所占比例:"&pie(i)*100&"% " response.Write " <div style='cursor:hand;'>" response.Write " <v:shape id='cake"&i&"' type='#Cake_3D' title='"&titlestr&"'" response.Write " style='position:absolute;left:"&table_left+all_height/8&"px;top:"&table_top+all_height/14&"px;WIDTH:"&all_height&"px;HEIGHT:"&all_height&"px;rotation:"&k3&";z-index:"&k4&"'" response.Write " adj='"&kkk&",0' fillcolor='"&bg_color(i)&"' onmouseover='moveup(cake"&i&","&(table_top+all_height/14)&",txt"&i&",rec"&i&")'; onmouseout='movedown(cake"&i&","&(table_top+all_height/14)&",txt"&i&",rec"&i&");'>" response.Write " <v:fill opacity='60293f' color2='fill lighten(120)' o:opacity2='60293f' rotate='t' angle='-135' method='linear sigma' focus='100%' type='gradient'/>" response.Write " <o:extrusion v:ext='view' on='t'backdepth='25' rotationangle='60' viewpoint='0,0'viewpointorigin='0,0' skewamt='0' lightposition='-50000,-50000' lightposition2='50000'/>" response.Write " </v:shape>" response.Write " <v:shape id='txt"&i&"' type='#3dtxt' style='position:absolute;left:"&txt_x&"px;top:"&txt_y&"px;z-index:20;display:none;width:50; height:18;' fillcolor='#ffffff'" response.Write " onmouseover='ontxt(cake"&i&","&(table_top+all_height/14)&",txt"&i&",rec"&i&")'>" response.Write " <v:fill opacity='60293f' color2='fill lighten(120)' o:opacity2='60293f' rotate='t' angle='-135' method='linear sigma' focus='100%' type='gradient'/>" response.Write " <v:textpath style='font-family:'宋体';v-text-kern:t' trim='t' fitpath='t' string='"&pie(i)*100&"%'/>" response.Write " <o:extrusion v:ext='view' backdepth='8pt' on='t' lightposition='0,0' lightposition2='0,0'/>" response.Write " </v:shape>" response.Write " </div>" k1=k1+k2*2 if k1>=360 then k1=k1-360 end if if k1>180 then k4=k4+1 else k4=k4-1 end if next end function %> <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office"> <head> <title></title> <STYLE> v\:* { Behavior: url(#default#VML) } o\:* { behavior: url(#default#VML) } </STYLE> </head> <body> <SCRIPT LANGUAGE="JavaScript"> <!-- onit=true num=0 function moveup(iteam,top,txt,rec){ temp=eval(iteam) tempat=eval(top) temptxt=eval(txt) temprec=eval(rec) at=parseInt(temp.style.top) temprec.style.display = ""; if (num>27){ temptxt.style.display = ""; } if(at>(tempat-28)&&onit){ num++ temp.style.top=at-1 Stop=setTimeout("moveup(temp,tempat,temptxt,temprec)",10) }else{ return } } function movedown(iteam,top,txt,rec){ temp=eval(iteam) temptxt=eval(txt) temprec=eval(rec) clearTimeout(Stop) temp.style.top=top num=0 temptxt.style.display = "none"; temprec.style.display = "none"; } function ontxt(iteam,top,txt,rec){ temp = eval(iteam); temptxt = eval(txt); temprec = eval(rec) if (onit){ temp.style.top = top-28; temptxt.style.display = ""; temprec.style.display = ""; } } function movereset(over){ if (over==1){ onit=false }else{ onit=true } } --> </script> <% dim total(10,2) total(1,1)=2000 total(2,1)=1800 total(3,1)=1700 total(4,1)=1500 total(5,1)=1222 total(6,1)=1100 total(7,1)=1000 total(8,1)=800 total(9,1)=700 total(10,1)=600 total(1,2)="项目1" total(2,2)="项目2" total(3,2)="项目3" total(4,2)="项目4" total(5,2)="项目5" total(6,2)="项目6" total(7,2)="项目7" total(8,2)="项目8" total(9,2)="项目9" total(10,2)="项目10" call table2(total,240,200,700,400,"三维饼状图","元") %> </body> </html>
运行效果: