ASP+VML制作统计图的源程序

有时间大家也学学:http://lydsgw.com/fyw/  教程)
此程序只能用IE浏览器浏览,根据下面的源程序,我们只是略做修改结合数据库就能实际应用到一些系统中。

示例:1、直方图    2、饼图   3、曲线图


一、统计图--直方图

None.gif < %
None.gif
' ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
None.gif'
┃                               ┃
None.gif'
┃ 摘 要: 统计图--直方图                       ┃
None.gif'
┃ 作 者: 翁云兵                        ┃
None.gif'
┃ 创建日期:2004年11月5日                    ┃
None.gif'
┃ 完成日期:2004年11月5日                    ┃
None.gif'
┃                               ┃
None.gif'
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
None.gif'
参数含义(数组,横坐标,纵坐标,图表的宽度,图表的高度,图表标题,X轴单位,Y轴单位)
None.gif
function  table1(stat_array,table_left,table_top,all_width,all_height,table_title,X_unit,Y_unit)
None.gif
dim  bg_color( 10 )
None.gifbg_color(
1 ) = " #ff1919"
None.gif
bg_color( 2 ) = " #ffff19"
None.gif
bg_color( 3 ) = " #1919ff"
None.gif
bg_color( 4 ) = " #19ff19"
None.gif
bg_color( 5 ) = " #fc0"
None.gif
bg_color( 6 ) = " #3cc"
None.gif
bg_color( 7 ) = " #ff19ff"
None.gif
bg_color( 8 ) = " #993300"
None.gif
bg_color( 9 ) = " #f60"
None.gif
bg_color( 10 ) = " #ff8c19"
None.gif

None.gif
if  X_unit <> ""   then
None.gifX_unit
= X_unit
None.gif
end   if
None.gif
if  Y_unit <> ""   then
None.gifY_unit
= Y_unit
None.gif
end   if
None.gif
None.gifnum 
= ubound (stat_array, 1 )
None.gifitem_width 
=   cint ( 20000 / num + 0.5 )
None.gifbegin_x
=   cint ((item_width - 1200 ) / 2 ) + 2200
None.gif
None.gifvalue_Max
= 0
None.gif
for  i = 1   to  num
None.gif
if  value_Max < stat_array(i, 1 then  value_Max = stat_array(i, 1 )
None.gif
next
None.gifvalue_Max 
=   cint (value_Max)
None.gifvalue_Max_str 
= cstr (value_Max) 
None.gif
if  value_Max > 9   then
None.giftemp
= mid (value_Max_str, 2 , 1 )
None.gif
if  temp > 4   then  
None.giftemp2
= ( int (value_Max / ( 10 ^ ( len (value_Max_str) - 1 ))) + 1 ) * 10 ^ ( len (value_Max_str) - 1 )
None.gif
else
None.giftemp2
= ( int (value_Max / ( 10 ^ ( len (value_Max_str) - 1 ))) + 0.5 ) * 10 ^ ( len (value_Max_str) - 1 )
None.gif
end   if
None.gif
else
None.gif
if  value_Max > 4   then  temp2 = 10   else  temp2 = 5
None.gif
end   if
None.gifitem_hight 
=  temp2 / 5
None.gif
None.gifresponse.Write 
" <v:shapetype id='Box' coordsize='21600,21600' o:spt='16' adj='5400'></v:shapetype>"
None.gif

None.gif
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'>"
None.gif
response.Write  "  <v:shadow on='t' type='single' color='silver' offset='4pt,4pt'/>"
None.gif
response.Write  " </v:rect>"
None.gif

None.gif
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'> "  
None.gif
None.gifresponse.Write 
"  <v:Rect style='position:relative;left:1500;top:200;width:20000;height:800'filled='false' stroked='false'>"
None.gif
response.Write  "  <v:TextBox inset='0pt,0pt,0pt,0pt'>"
None.gif
response.Write  "  <table width='100%' border='0' align='center' cellspacing='0'>"
None.gif
response.Write  "  <tr>"
None.gif
response.Write  "  <td align='center' valign='middle'><div style='font-size:15pt; font-family:黑体;'><B> " & table_title & " </B></div></td>"
None.gif
response.Write  "  </tr>"
None.gif
response.Write  "  </table>"
None.gif
response.Write  "  </v:TextBox>"
None.gif
response.Write  "  </v:Rect> "
None.gif

None.gif
response.Write  "  <v:rect id='back' style='position:relative;left:1700;top:1200;width:20500; height:10500;' fillcolor='#9cf' strokecolor='#DFDFDF'>"
None.gif
response.Write  "  <v:fill rotate='t' angle='-45' focus='100%' type='gradient'/>"
None.gif
response.Write  "  </v:rect>"
None.gif
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>"
None.gif
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>"
None.gif

None.gif
response.Write  "  <v:Rect style='position:relative;left:100;top:700;width:1500;height:500' filled='false' stroked='false'>"
None.gif
response.Write  "  <v:TextBox inset='0pt,0pt,0pt,0pt' style='font-size:9pt;'><div align='right'> " & Y_unit & " </div></v:TextBox>"
None.gif
response.Write  "  </v:Rect>  "  
None.gifresponse.Write 
"  <v:Rect style='position:relative;left:22200;top:11700;width:2000;height:500' filled='false' stroked='false'>"
None.gif
response.Write  "  <v:TextBox inset='0pt,0pt,0pt,0pt' style='font-size:9pt;'><div align='left'> " & X_unit & " </div></v:TextBox>"
None.gif
response.Write  "  </v:Rect>  "  
None.gif
for  i = 0   to   4
None.gifresponse.Write 
"  <v:line from='1200, " & i * 2000 + 1700 & " ' to='1700, " & i * 2000 + 1700 & " ' style='z-index:2' strokecolor='#000000'></v:line>"
None.gif
response.Write  "  <v:line from='1700, " & i * 2000 + 1700 & " ' to='2200, " & i * 2000 + 1200 & " ' style='z-index:2' strokecolor='#0099FF'></v:line>"
None.gif
response.Write  "  <v:line from='2200, " & i * 2000 + 1200 & " ' to='22200, " & i * 2000 + 1200 & " ' style='z-index:2' strokecolor='#0099FF'></v:line>"
None.gif
response.Write  "  <v:line from='2200, " & i * 2000 + 2200 & " ' to='22200, " & i * 2000 + 2200 & " ' style='z-index:2' strokecolor='#0099FF'>"
None.gif
response.Write  "  <v:stroke dashstyle='Dot'/>"
None.gif
response.Write  "  </v:line>"
None.gif

None.gif
response.Write  "  <v:Rect style='position:relative;left:100;top: " & i * 2000 + 1250 & " ;width:1500;height:500' filled='false' stroked='false'>"
None.gif
response.Write  "  <v:TextBox inset='0pt,0pt,0pt,0pt' style='font-size:9pt;'><div align='right'> " & item_hight * ( 5 - i) & " </div></v:TextBox>"
None.gif
response.Write  "  </v:Rect>  "  
None.gif
next
None.gif
None.gifresponse.Write 
"  <v:line from='2200,11200' to='22200,11200' style='z-index:2' strokecolor='#0099FF'></v:line>"
None.gif
response.Write  "  <v:line from='2200,1200' to='2200,11200' style='z-index:2' strokecolor='#0099FF'></v:line>"
None.gif
response.Write  "  <v:line from='1700,11700' to='2200,11200' style='z-index:2' strokecolor='#0099FF'></v:line>"
None.gif

None.gif
for  i = 1   to  num
None.gifthis_hight 
=   cint (stat_array(i, 1 ) / ( 5 * item_hight) * 10000 + 420 )
None.gifresponse.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'>"
None.gif
response.Write  "  <v:fill o:opacity2='52429f' rotate='t' angle='-45' focus='100%' type='gradient'/>"
None.gif
response.Write  "  </v:shape>"
None.gif

None.gif
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'>"
None.gif
response.Write  "  <v:TextBox inset='0pt,0pt,0pt,0pt' style='font-size:9pt;'><div align='center'> " & stat_array(i, 1 ) & " </div></v:TextBox>"
None.gif
response.Write  "  </v:Rect>  "  
None.gif
None.gifresponse.Write 
"  <v:Rect style='position:relative;left: " & (i - 1 ) * item_width + 2200 & " ;top:11850;width: " & item_width & " ;height:500' filled='false' stroked='false'>"
None.gif
response.Write  "  <v:TextBox inset='0pt,0pt,0pt,0pt' style='font-size:9pt;'><div align='center'> " & stat_array(i, 2 ) & " </div></v:TextBox>"
None.gif
response.Write  "  </v:Rect>  "  
None.gif
next
None.gifresponse.Write 
" </v:group>"
None.gif
end function
None.gif%
>
None.gif
< html xmlns:v = " urn:schemas-microsoft-com:vml "  xmlns:o = " urn:schemas-microsoft-com:office:office " >
None.gif
< head >
None.gif
< title ></ title >
None.gif
< STYLE >
None.gifv
\ : *  { Behavior: url(#default#VML) }
None.gifo
\ : *  { behavior: url(#default#VML) }
None.gif
</ STYLE >
None.gif
</ head >
None.gif
< body >
None.gif
None.gif
< %
None.gif
dim  total( 10 , 2 )
None.gif
None.giftotal(
1 , 1 ) = 200
None.giftotal(
2 , 1 ) = 800
None.giftotal(
3 , 1 ) = 1004
None.giftotal(
4 , 1 ) = 600
None.giftotal(
5 , 1 ) = 1222
None.giftotal(
6 , 1 ) = 2100
None.giftotal(
7 , 1 ) = 80
None.giftotal(
8 , 1 ) = 1002
None.giftotal(
9 , 1 ) = 145
None.giftotal(
10 , 1 ) = 1040
None.gif
None.giftotal(
1 , 2 ) = " 项目1"
None.gif
total( 2 , 2 ) = " 项目2"
None.gif
total( 3 , 2 ) = " 项目3"
None.gif
total( 4 , 2 ) = " 项目4"
None.gif
total( 5 , 2 ) = " 项目5"
None.gif
total( 6 , 2 ) = " 项目6"
None.gif
total( 7 , 2 ) = " 项目7"
None.gif
total( 8 , 2 ) = " 项目8"
None.gif
total( 9 , 2 ) = " 项目9"
None.gif
total( 10 , 2 ) = " 项目10"
None.gif

None.gif
call  table1(total, 240 , 200 , 700 , 400 , " 柱 状 统 计 图 " , "" , " " )
None.gif%
>
None.gif
None.gif
</ body >
None.gif
</ html >

二、统计图--饼图
None.gif < %
None.gif
' ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
None.gif'
┃                               ┃
None.gif'
┃ 摘 要: 统计图--饼图                        ┃
None.gif'
┃ 作 者: 翁云兵                        ┃
None.gif'
┃ 创建日期:2004年11月23日                  ┃
None.gif'
┃ 完成日期:2004年11月28日                  ┃
None.gif'
┃                               ┃
None.gif'
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
None.gif'
参数含义(数组,横坐标,纵坐标,图表的宽度,图表的高度,图表标题,单位)
None.gif
function  table2(stat_array,table_left,table_top,all_width,all_height,table_title,unit)
None.gif
dim  bg_color( 10 ),pie( 10 )
None.gifbg_color(
1 ) = " #ff1919"
None.gif
bg_color( 2 ) = " #ffff19"
None.gif
bg_color( 3 ) = " #1919ff"
None.gif
bg_color( 4 ) = " #19ff19"
None.gif
bg_color( 5 ) = " #fc0"
None.gif
bg_color( 6 ) = " #3cc"
None.gif
bg_color( 7 ) = " #ff19ff"
None.gif
bg_color( 8 ) = " #993300"
None.gif
bg_color( 9 ) = " #f60"
None.gif
bg_color( 10 ) = " #ff8c19"
None.gif

None.gif
num  = ubound (stat_array, 1 )
None.gifallvalues
= 0
None.gif
for  i = 1   to  num
None.gifallvalues 
=  allvalues + stat_array(i, 1 )
None.gif
next
None.gifk
= 0
None.gif
for  i = 1   to  num - 1
None.gifpie(i)
= formatnumber (stat_array(i, 1 ) / allvalues, 4 , - 1 )
None.gifk
= k + pie(i)
None.gif
next
None.gifpie(num)
= formatnumber (( 1 - k), 4 , - 1 )
None.gif
None.gifresponse.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>"
None.gif

None.gif
response.Write  " <v:shapetype id='3dtxt' coordsize='21600,21600' o:spt='136' adj='10800' path='m@7,l@8,m@5,21600l@6,21600e'> "
None.gif
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'/>"
None.gif
response.Write  "  <v:textpath on='t' fitshape='t'/>"
None.gif
response.Write  "  <o:lock v:ext='edit' text='t' shapetype='t'/>"
None.gif
response.Write  " </v:shapetype>"
None.gif

None.gif
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'>"
None.gif
response.Write  "  <v:shadow on='t' type='single' color='silver' offset='4pt,4pt'/>"
None.gif
response.Write  " </v:rect>"
None.gif

None.gif
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'> "  
None.gifresponse.Write 
"  <v:Rect style='position:relative;left:500;top:200;width:20000;height:800'filled='false' stroked='false'>"
None.gif
response.Write  "  <v:TextBox inset='0pt,0pt,0pt,0pt'>"
None.gif
response.Write  "  <table width='100%' border='0' align='center' cellspacing='0'>"
None.gif
response.Write  "  <tr>"
None.gif
response.Write  "  <td align='center' valign='middle'><div style='font-size:15pt; font-family:黑体;'><B> " & table_title & " </B></div></td>"
None.gif
response.Write  "  </tr>"
None.gif
response.Write  "  </table>"
None.gif
response.Write  "  </v:TextBox>"
None.gif
response.Write  "  </v:Rect> "
None.gif

None.gif
response.Write  "  <v:rect id='back' style='position:relative;left:500;top:1000;width:20000; height:10000;' οnmοuseοver='movereset(1)' οnmοuseοut='movereset(0)' fillcolor='#9cf' strokecolor='#888888'>"
None.gif
response.Write  "  <v:fill rotate='t' angle='-45' focus='100%' type='gradient'/>"
None.gif
response.Write  "  </v:rect>"
None.gif

None.gif
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'>"
None.gif
response.Write  "  <v:fill rotate='t' angle='-175' focus='100%' type='gradient'/>"
None.gif
response.Write  "  <v:shadow on='t' type='single' color='silver' offset='3pt,3pt'/>"
None.gif
response.Write  "  </v:rect>"
None.gif

None.gif
response.Write  "  <v:Rect style='position:relative;left:15500;top:1500;width:4000;height:700' fillcolor='#000000' stroked='f' strokecolor='#000000'>"
None.gif
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>"
None.gif
response.Write  "  </v:Rect>  "  
None.gif
for  i = 1   to  num
None.gifresponse.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) & " '>"
None.gif
response.Write  "  <v:fill opacity='.6' color2='fill darken(118)' o:opacity2='.6' rotate='t' method='linear sigma' focus='100%' type='gradient'/>"
None.gif
response.Write  "  </v:Rect>"
None.gif
response.Write  "  <v:Rect style='position:relative;left:15500;top: " & i * 9000 / 11 + 1500 & " ;width:600;height:700' fillcolor=' " & bg_color(i) & " ' stroked='f'/>"
None.gif
response.Write  "  <v:Rect style='position:relative;left:16300;top: " & i * 9000 / 11 + 1500 & " ;width:3400;height:700' filled='f' stroked='f'>"
None.gif
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>"
None.gif
response.Write  "  </v:Rect>  "  
None.gif
next
None.gif
None.gifresponse.Write 
" </v:group>"
None.gif

None.gif
k1 = 180
None.gifk4
= 10
None.gif
for  i = 1   to  num
None.gifk2
= 360 * pie(i) / 2
None.gifk3
= k1 + k2
None.gif
if  k3 >= 360   then
None.gifk3
= k3 - 360
None.gif
end   if
None.gifkkk
= ( - 11796480 * pie(i) + 5898240 )
None.gif
None.gifk5
= 3.1414926 * 2 * ( 180 - (k3 - 180 )) / 360
None.gifR
= all_height / 2
None.giftxt_x 
=  table_left + all_height / 8 - 30 + R + R * sin (k5) * 0.7
None.giftxt_y 
=  table_top + all_height / 14 - 39 + R + R * cos (k5) * 0.7 * 0.5
None.gif
None.giftitlestr 
=   " &nbsp;名&nbsp;&nbsp;称: " & stat_array(i, 2 ) & " &#13;&#10;&nbsp;数&nbsp;&nbsp;值: " & stat_array(i, 1 ) & unit & " &#13;&#10;&nbsp;所占比例: " & pie(i) * 100 & " %&nbsp;&nbsp;"
None.gif
response.Write  "  <div style='cursor:hand;'>"
None.gif
response.Write  "  <v:shape id='cake " & i & " ' type='#Cake_3D' title=' " & titlestr & " '"
None.gif
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 & " '"
None.gif
response.Write  "  adj=' " & kkk & " ,0' fillcolor=' " & bg_color(i) & " ' οnmοuseοver='moveup(cake " & i & " , " & (table_top + all_height / 14 ) & " ,txt " & i & " ,rec " & i & " )'; οnmοuseοut='movedown(cake " & i & " , " & (table_top + all_height / 14 ) & " ,txt " & i & " ,rec " & i & " );'>"
None.gif
response.Write  "  <v:fill opacity='60293f' color2='fill lighten(120)' o:opacity2='60293f' rotate='t' angle='-135' method='linear sigma' focus='100%' type='gradient'/>"
None.gif
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'/>"
None.gif
response.Write  "  </v:shape>"
None.gif
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'"
None.gif
response.Write  "  οnmοuseοver='ontxt(cake " & i & " , " & (table_top + all_height / 14 ) & " ,txt " & i & " ,rec " & i & " )'>"
None.gif
response.Write  "  <v:fill opacity='60293f' color2='fill lighten(120)' o:opacity2='60293f' rotate='t' angle='-135' method='linear sigma' focus='100%' type='gradient'/>"
None.gif
response.Write  "  <v:textpath style='font-family:'宋体';v-text-kern:t' trim='t' fitpath='t' string=' " & pie(i) * 100 & " %'/>"
None.gif
response.Write  "  <o:extrusion v:ext='view' backdepth='8pt' on='t' lightposition='0,0' lightposition2='0,0'/>"
None.gif
response.Write  "  </v:shape> "  
None.gifresponse.Write 
"  </div>"
None.gif
k1 = k1 + k2 * 2
None.gif
if  k1 >= 360   then
None.gifk1
= k1 - 360
None.gif
end   if
None.gif
if  k1 > 180   then
None.gifk4
= k4 + 1
None.gif
else
None.gifk4
= k4 - 1
None.gif
end   if
None.gif
next
None.gif
end function
None.gif%
>
None.gif
< html xmlns:v = " urn:schemas-microsoft-com:vml "  xmlns:o = " urn:schemas-microsoft-com:office:office " >
None.gif
< head >
None.gif
< title ></ title >
None.gif
< STYLE >
None.gifv
\ : *  { Behavior: url(#default#VML) }
None.gifo
\ : *  { behavior: url(#default#VML) }
None.gif
</ STYLE >
None.gif
</ head >
None.gif
< body >
None.gif
None.gif
< SCRIPT LANGUAGE = " JavaScript " >
None.gif
< ! --
None.gifonit
= true
None.gifnum
= 0
None.gif
function  moveup(iteam,top,txt,rec){
None.giftemp
= eval (iteam)
None.giftempat
= eval (top)
None.giftemptxt
= eval (txt)
None.giftemprec
= eval (rec)
None.gifat
= parseInt(temp.style.top)
None.giftemprec.style.display 
=   ""
None.gif
if  (num > 27 ){
None.giftemptxt.style.display 
=   "" ;
None.gif}
None.gif
if (at > (tempat - 28 ) && onit){
None.gifnum
++
None.giftemp.style.top
= at - 1
None.gifStop
= setTimeout( " moveup(temp,tempat,temptxt,temprec) " , 10 )
None.gif}
else {
None.gifreturn
None.gif
None.gif}
None.gif
function  movedown(iteam,top,txt,rec){
None.giftemp
= eval (iteam)
None.giftemptxt
= eval (txt)
None.giftemprec
= eval (rec)
None.gifclearTimeout(Stop)
None.giftemp.style.top
= top
None.gifnum
= 0
None.giftemptxt.style.display 
=   " none " ;
None.giftemprec.style.display 
=   " none " ;
None.gif}
None.gif
function  ontxt(iteam,top,txt,rec){
None.giftemp 
=   eval (iteam);
None.giftemptxt 
=   eval (txt);
None.giftemprec 
=   eval (rec)
None.gif
if  (onit){
None.giftemp.style.top 
=  top - 28 ;
None.giftemptxt.style.display 
=   "" ;
None.giftemprec.style.display 
=   "" ;
None.gif}
None.gif}
None.gif
function  movereset(over){
None.gif
if  (over == 1 ){
None.gifonit
= false
None.gif}
else {
None.gifonit
= true
None.gif}
None.gif}
None.gif
-->
None.gif
</ script >
None.gif
< %
None.gif
dim  total( 10 , 2 )
None.gif
None.giftotal(
1 , 1 ) = 2000
None.giftotal(
2 , 1 ) = 1800
None.giftotal(
3 , 1 ) = 1700
None.giftotal(
4 , 1 ) = 1500
None.giftotal(
5 , 1 ) = 1222
None.giftotal(
6 , 1 ) = 1100
None.giftotal(
7 , 1 ) = 1000
None.giftotal(
8 , 1 ) = 800
None.giftotal(
9 , 1 ) = 700
None.giftotal(
10 , 1 ) = 600
None.gif
None.giftotal(
1 , 2 ) = " 项目1"
None.gif
total( 2 , 2 ) = " 项目2"
None.gif
total( 3 , 2 ) = " 项目3"
None.gif
total( 4 , 2 ) = " 项目4"
None.gif
total( 5 , 2 ) = " 项目5"
None.gif
total( 6 , 2 ) = " 项目6"
None.gif
total( 7 , 2 ) = " 项目7"
None.gif
total( 8 , 2 ) = " 项目8"
None.gif
total( 9 , 2 ) = " 项目9"
None.gif
total( 10 , 2 ) = " 项目10"
None.gif

None.gif
call  table2(total, 240 , 200 , 700 , 400 , " 三维饼状图 " , " " )
None.gif%
>
None.gif
</ body >
None.gif
</ html >

三、统计图--曲线图
None.gif < %
None.gif
' ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
None.gif'
┃                               ┃
None.gif'
┃ 摘 要: 统计图--曲线图                       ┃
None.gif'
┃ 作 者: 翁云兵                        ┃
None.gif'
┃ 创建日期:2004年12月01日                    ┃
None.gif'
┃ 完成日期:2004年11月03日                  ┃
None.gif'
┃                               ┃
None.gif'
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
None.gif'
参数含义(数组,横坐标,纵坐标,图表的宽度,图表的高度,图表标题,X轴单位,Y轴单位)
None.gif
function  table1(stat_array,table_left,table_top,all_width,all_height,table_title,X_unit,Y_unit)
None.gif
dim  bg_color( 10 )
None.gifbg_color(
1 ) = " #ff1919"
None.gif
bg_color( 2 ) = " #ffff19"
None.gif
bg_color( 3 ) = " #1919ff"
None.gif
bg_color( 4 ) = " #19ff19"
None.gif
bg_color( 5 ) = " #fc0"
None.gif
bg_color( 6 ) = " #3cc"
None.gif
bg_color( 7 ) = " #ff19ff"
None.gif
bg_color( 8 ) = " #993300"
None.gif
bg_color( 9 ) = " #f60"
None.gif
bg_color( 10 ) = " #ff8c19"
None.gif

None.gif
if  X_unit  <>   ""   then
None.gifX_unit 
=  X_unit
None.gif
end   if
None.gif
if  Y_unit  <>   ""   then
None.gifY_unit 
=  Y_unit
None.gif
end   if
None.gif
None.gifnum1 
=   ubound (stat_array, 1
None.gifline_temp
= split (stat_array( 0 , 1 ), " , " )
None.gifnum2 
=   ubound (line_temp, 1 ) + 1
None.gif
dim  line_code
None.gif
redim  line_code(num1,num2)
None.gif
for  j = 1   to  num2
None.gifline_code(
0 ,j)  =  line_temp(j - 1 )
None.gif
next
None.gif
for  i = 1   to  num1
None.gifline_temp 
=   split (stat_array(i, 1 ), " , " )
None.gifline_code(i,
0 =  stat_array(i, 2 )
None.gif
for  j = 1   to  num2
None.gifline_code(i,j) 
=   cdbl (line_temp(j - 1 ))
None.gif
next
None.gif
next  
None.gifvalue_Max
= 0
None.gif
for  i = 1   to  num1
None.gif
for  j = 1   to  num2
None.gif
if  value_Max < line_code(i,j)  then  value_Max = line_code(i,j) 
None.gif
next
None.gif
next
None.gif
None.gifvalue_Max 
=   cint (value_Max)
None.gifvalue_Max_str 
= cstr (value_Max) 
None.gif
if  value_Max > 9   then
None.giftemp
= mid (value_Max_str, 2 , 1 )
None.gif
if  temp > 4   then  
None.giftemp2
= ( int (value_Max / ( 10 ^ ( len (value_Max_str) - 1 ))) + 1 ) * 10 ^ ( len (value_Max_str) - 1 )
None.gif
else
None.giftemp2
= ( int (value_Max / ( 10 ^ ( len (value_Max_str) - 1 ))) + 0.5 ) * 10 ^ ( len (value_Max_str) - 1 )
None.gif
end   if
None.gif
else
None.gif
if  value_Max > 4   then  temp2 = 10   else  temp2 = 5
None.gif
end   if
None.gifitem_hight 
=  temp2 / 5
None.gif
None.gifitem_width 
=   20000 / (num2 - 1 )
None.gif
None.gifresponse.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'>"
None.gif
response.Write  "  <v:shadow on='t' type='single' color='silver' offset='4pt,4pt'/>"
None.gif
response.Write  " </v:rect>"
None.gif

None.gif
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'>"
None.gif

None.gif
response.Write  "  <v:Rect style='position:relative;left:1500;top:200;width:23000;height:800'filled='false' stroked='f'>"
None.gif
response.Write  "  <v:TextBox inset='0pt,0pt,0pt,0pt'>"
None.gif
response.Write  "  <table width='100%' border='0' align='center' cellspacing='0'>"
None.gif
response.Write  "  <tr>"
None.gif
response.Write  "  <td align='center' valign='middle'><div style='font-size:15pt; font-family:黑体;'><B> " & table_title & " </B></div></td>"
None.gif
response.Write  "  </tr>"
None.gif
response.Write  "  </table>"
None.gif
response.Write  "  </v:TextBox>"
None.gif
response.Write  "  </v:Rect> "
None.gif

None.gif
response.Write  "  <v:rect id='back' style='position:relative;left:1700;top:1200;width:20500; height:10500;' fillcolor='#9cf' strokecolor='#DFDFDF'>"
None.gif
response.Write  "  <v:fill rotate='t' angle='-45' focus='100%' type='gradient'/>"
None.gif
response.Write  "  </v:rect>"
None.gif

None.gif
response.Write  "  <v:rect id='back2' style='position:relative;left:23000;top:1200;width:4000; height: " & ( 10500 ) & " ;' fillcolor='#9cf' stroked='t' strokecolor='#0099ff'>"
None.gif
response.Write  "  <v:fill rotate='t' angle='-175' focus='100%' type='gradient'/>"
None.gif
response.Write  "  <v:shadow on='t' type='single' color='silver' offset='3pt,3pt'/>"
None.gif
response.Write  "  </v:rect>"
None.gif

None.gif
for  i = 1   to  num1
None.gif
if  i = 1   then
None.gifdisplaystr
= " "
None.gif
else
None.gifdisplaystr
= " none"
None.gif
end   if
None.gifresponse.Write 
"  <div style='cursor:hand;' οnmοuseοver='moveon(rec " & i & " ,line_ " & i & " )' οnmοuseοut='moveout(rec " & i & " ,line_ " & i & " , " & i & " )' οnclick='clickit( " & i & " )'>"
None.gif
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) & " '>"
None.gif
response.Write  "  <v:fill opacity='.6' color2='fill darken(118)' o:opacity2='.6' rotate='t' method='linear sigma' focus='100%' type='gradient'/>"
None.gif
response.Write  "  </v:Rect>"
None.gif
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'/>"
None.gif
response.Write  "  <v:Rect style='position:relative;left:24000;top: " & (i - 1 ) * 10200 / 10 + 1500 & " ;width:3400;height:700' filled='f' stroked='f'>"
None.gif
response.Write  "  <v:TextBox inset='0pt,4pt,0pt,0pt' style='font-size:9pt;'><div align='left'> " & stat_array(i, 2 ) & " </div></v:TextBox>"
None.gif
response.Write  "  </v:Rect> "
None.gif
response.Write  "  </div> "
None.gif
next
None.gif
None.gifresponse.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>"
None.gif
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>"
None.gif

None.gif
response.Write  "  <v:Rect style='position:relative;left:100;top:700;width:1500;height:500' filled='false' stroked='false'>"
None.gif
response.Write  "  <v:TextBox inset='0pt,0pt,0pt,0pt' style='font-size:9pt;'><div align='right'> " & Y_unit & " </div></v:TextBox>"
None.gif
response.Write  "  </v:Rect>  "  
None.gifresponse.Write 
"  <v:Rect style='position:relative;left:22200;top:11900;width:2000;height:500' filled='false' stroked='false'>"
None.gif
response.Write  "  <v:TextBox inset='0pt,0pt,0pt,0pt' style='font-size:9pt;'><div align='left'> " & X_unit & " </div></v:TextBox>"
None.gif
response.Write  "  </v:Rect>  "  
None.gif
None.gif
for  i = 0   to   4
None.gifresponse.Write 
"  <v:line from='1300, " & i * 2000 + 1700 & " ' to='1700, " & i * 2000 + 1700 & " ' style='z-index:2' strokecolor='#000000'></v:line>"
None.gif
response.Write  "  <v:line from='1700, " & i * 2000 + 1700 & " ' to='2200, " & i * 2000 + 1200 & " ' style='z-index:2' strokecolor='#0099FF'></v:line>"
None.gif
response.Write  "  <v:line from='2200, " & i * 2000 + 1200 & " ' to='22200, " & i * 2000 + 1200 & " ' style='z-index:2' strokecolor='#0099FF'></v:line>"
None.gif
response.Write  "  <v:line from='2200, " & i * 2000 + 2200 & " ' to='22200, " & i * 2000 + 2200 & " ' style='z-index:2' strokecolor='#0099FF'>"
None.gif
response.Write  "  <v:stroke dashstyle='Dot'/>"
None.gif
response.Write  "  </v:line>"
None.gif

None.gif
response.Write  "  <v:Rect style='position:relative;left:100;top: " & i * 2000 + 1250 & " ;width:1500;height:500' filled='false' stroked='false'>"
None.gif
response.Write  "  <v:TextBox inset='0pt,0pt,0pt,0pt' style='font-size:9pt;'><div align='right'> " & item_hight * ( 5 - i) & " </div></v:TextBox>"
None.gif
response.Write  "  </v:Rect>  "  
None.gif
next
None.gif
None.gifresponse.Write 
"  <v:line from='2200,11200' to='22200,11200' style='z-index:2' strokecolor='#0099FF'></v:line>"
None.gif
response.Write  "  <v:line from='2200,1200' to='2200,11200' style='z-index:2' strokecolor='#0099FF'></v:line>"
None.gif
response.Write  "  <v:line from='1700,11700' to='2200,11200' style='z-index:2' strokecolor='#0099FF'></v:line>"
None.gif

None.gif
for  j = 0   to  num2 - 1
None.gifresponse.Write 
"  <v:line from=' " & j * item_width + 1700 & " ,11700' to=' " & j * item_width + 1700 & " ,12000' style='z-index:2' strokecolor='#000000'></v:line>"
None.gif
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>"
None.gif
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>"
None.gif
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'>"
None.gif
response.Write  "  <v:TextBox inset='0pt,0pt,0pt,0pt' style='font-size:9pt;'><div align='center'> " & line_code( 0 ,j + 1 ) & " </div></v:TextBox>"
None.gif
response.Write  "  </v:Rect>  "  
None.gif
next
None.gif
for  i = 1   to  num1
None.gif
if  i = 1   then
None.gifdisplaystr
= " "
None.gif
else
None.gifdisplaystr
= " none"
None.gif
end   if
None.gifresponse.Write 
"  <div id='line_ " & i & " ' style='display: " & displaystr & " ;'>"
None.gif
for  j = 0   to  num2 - 2
None.gifthis_hight1 
=   cint (line_code(i,j + 1 ) / ( 5 * item_hight) * 10000 )
None.gifthis_hight2 
=   cint (line_code(i,j + 2 ) / ( 5 * item_hight) * 10000 )
None.gifresponse.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) & " '>"
None.gif
response.Write  "  <o:extrusion v:ext='view' backdepth='12pt' on='t' lightposition='-50000,-50000' lightposition2='50000'/>"
None.gif
response.Write  "  </v:line>"
None.gif
next
None.gifresponse.Write 
"  </div>"
None.gif
next
None.gif
None.gifresponse.Write 
" </v:group> "  
None.gif
end function
None.gif%
>
None.gif
< html xmlns:v = " urn:schemas-microsoft-com:vml "  xmlns:o = " urn:schemas-microsoft-com:office:office " >
None.gif
< head >
None.gif
< title ></ title >
None.gif
< STYLE >
None.gifv
\ : *  { Behavior: url(#default#VML) }
None.gifo
\ : *  { behavior: url(#default#VML) }
None.gif
</ STYLE >
None.gif
< SCRIPT LANGUAGE = " JavaScript " >
None.gif
< ! --
None.gifvar showit 
=   new   Array ( 10 );
None.gif
None.gif
function  moveon(iteam,lineit){
None.giftemp
= eval (iteam)
None.giftempline
= eval (lineit)
None.gif
if (showit[ 1 ]){
None.gifrec1.style.display 
=   "" ;
None.gifline_1.style.display 
=   "" ;
None.gif}
else {
None.gifrec1.style.display 
=   " none " ;
None.gifline_1.style.display 
=   " none " ;
None.gif
None.giftemp.style.display 
=   "" ;
None.giftempline.style.display 
=   "" ;
None.gif}
None.gif
function  moveout(iteam,lineit,i){
None.giftemp
= eval (iteam)
None.giftempline
= eval (lineit)
None.gif
if  (showit[i]){
None.giftemp.style.display 
=   "" ;
None.giftempline.style.display 
=   "" ;
None.gif}
else {
None.giftemp.style.display 
=   " none " ;
None.giftempline.style.display 
=   " none " ;
None.gif}
None.gif}
None.gif
function  clickit(i){
None.gif
if  (showit[i]){
None.gifshowit[i]
= false
None.gif}
else {
None.gifshowit[i]
= true
None.gif
None.gif}
None.gif
-->
None.gif
</ script >
None.gif
</ head >
None.gif
< body >
None.gif
None.gif
< %
None.gif
dim  total( 10 , 2 )
None.gif
None.giftotal(
0 , 1 ) = " 1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月"
None.gif
total( 1 , 1 ) = " 200,158,982,0,369,100,595,895,652,25,245,951"
None.gif
total( 2 , 1 ) = " 984,58,495,36,158,486,952,258,653,415,485,14"
None.gif
total( 3 , 1 ) = " 850,988,958,145,369,745,265,158,856,145,425,352"
None.gif
total( 4 , 1 ) = " 600,525,235,485,258,265,158,365,35,148,658,475"
None.gif
total( 5 , 1 ) = " 62,525,635,215,0,465,258,305,66,547,54,148"
None.gif
total( 6 , 1 ) = " 560,625,645,329,158,665,358,95,120,358,42,253"
None.gif
total( 7 , 1 ) = " 950,725,635,435,258,865,458,955,152,845,425,421"
None.gif
total( 8 , 1 ) = " 600,825,155,455,458,265,558,365,352,245,853,122"
None.gif
total( 9 , 1 ) = " 360,925,215,545,658,465,658,845,400,421,541,125"
None.gif
total( 10 , 1 ) = " 50,225,355,655,858,665,758,35,584,214,54,651"
None.gif

None.gif
total( 1 , 2 ) = " 项目1"
None.gif
total( 2 , 2 ) = " 项目2"
None.gif
total( 3 , 2 ) = " 项目3"
None.gif
total( 4 , 2 ) = " 项目4"
None.gif
total( 5 , 2 ) = " 项目5"
None.gif
total( 6 , 2 ) = " 项目6"
None.gif
total( 7 , 2 ) = " 项目7"
None.gif
total( 8 , 2 ) = " 项目8"
None.gif
total( 9 , 2 ) = " 项目9"
None.gif
total( 10 , 2 ) = " 项目10"
None.gif
None.gif

None.gif
call  table1(total, 240 , 200 , 700 , 350 , " 曲 线 统 计 图 " , " 时间 " , " " )
None.gif%
>
None.gif
None.gif
</ body >
None.gif
</ html >

转载于:https://www.cnblogs.com/Dicky/archive/2005/07/17/194358.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值