• ASP统计图


    <%
    '┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
    '┃                               ┃
    '┃ 摘 要: 统计图--直方图                    ┃
    '┃ 作 者: 翁云兵                        ┃
    '┃ 创建日期: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;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;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;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;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&";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)&";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)&";"&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;"&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;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;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;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&";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&";600;height:700' fillcolor='"&bg_color(i)&"' stroked='f'/>"
    response.Write " <v:Rect style='position:relative;left:24000;top:"&(i-1)*10200/10+1500&";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;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;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&";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;"&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;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;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;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;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&";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&";600;height:700' fillcolor='"&bg_color(i)&"' stroked='f'/>"
    response.Write " <v:Rect style='position:relative;left:16300;top:"&i*9000/11+1500&";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;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>

    运行效果:

  • 相关阅读:
    程序员:不要自称为码农
    SpringBoot对静态资源配置
    LeetCode 572. Subtree of Another Tree(子树)
    LeetCode 437. Path Sum III(统计路径和等于sum的路径数量)
    LeetCode 112. Path Sum(判断路径和是否等于一个数)
    LeetCode 617. Merge Two Binary Trees(归并两棵二叉树)
    LeetCode 226. Invert Binary Tree(翻转二叉树)
    Failure to transfer org.apache.maven.plugins:maven-resources-plugin:pom:2.6 的解决办法
    linux-查询某软件的安装的目录
    WebService概念解释
  • 原文地址:https://www.cnblogs.com/webczw/p/2799038.html
Copyright © 2020-2023  润新知