用vml,svg。下午有人问过了,你查查!

解决方案 »

  1.   

    我用applet写过统计图,
    就是速度稍慢了一点点
      

  2.   

    看看这个例子吧,应该可以解决你的问题。
    http://www.cn-java.com/target/news.php?news_id=723
      

  3.   

    试试调用owc
    <%@ page contentType="text/html;charset=GBK"%>
    <%@ include file="../Connections/bbgl.jsp" %>
    <%@ include file="../Connections/total.jsp" %>
    <style type="text/css">
    <!--
        A:link {color:"#003399";text-decoration: none;}
        A:visited {color:"#003399";text-decoration: none;}
        A:hover {color:"#ff3300";}
        td {color:"#003399";font-size:12px}
    -->
    </style>
    <%
    String ttype="";//声明要画的是曲线图柱图还是饼图
    if(request.getParameter("ttype")!=null)
    {ttype=request.getParameter("ttype");}
    else{ ttype="01";}
    String strdd2=request.getParameter("strdd2");//要提取数据的字段标志
    String z1=strdd2;
    strdd2=strdd2.substring(0,strdd2.length()-1);String strdd1=request.getParameter("strdd1"); //客户名称
    strdd1=TurnCharSetPara(strdd1);
    String z3=strdd1;String strdd3=request.getParameter("strdd3");//时间
    strdd3=TurnCharSetPara(strdd3);
    String z2=strdd3;String a[]=new String[100];
    String b[]=new String[20];
    int o=0;
    int p=0;while(strdd3.indexOf(",")>0)
    {
    a[o]=strdd3.substring(0,strdd3.indexOf(","));
    strdd3=strdd3.substring(strdd3.indexOf(",")+1,strdd3.length());
    o++;
    }while(strdd1.indexOf(",")>0)
    {
    b[p]=strdd1.substring(0,strdd1.indexOf(","));
    strdd1=strdd1.substring(strdd1.indexOf(",")+1,strdd1.length());
    p++;
    }
    String score[][]=new String[o+1][p+1];
    String title="比较";
    score[0][0]="__";
    int column=p+1;
    String sql1="";
    if(strdd2.equals("1")){ sql1="select sum(bendi) as G from user_money "; title="本地"+title;}
    if(strdd2.equals("2")){ sql1="select sum(changhua) as G from user_money ";title="长话"+title;}
    if(strdd2.equals("3")){sql1="select sum(wangyuan) as G from user_money ";title="网元"+title;}
    if(strdd2.equals("4")){sql1="select sum(wangjian) as G from user_money ";title="网间"+title;}
    if(strdd2.equals("5")){sql1="select sum(shuju) as G from user_money ";title="数据费"+title;}
    if(strdd2.equals("6")){sql1="select sum(xinxi) as G from user_money ";title="信息费"+title;}
    if(strdd2.equals("7")){sql1="select sum(qita) as G from user_money ";title="其他"+title;}
    if(strdd2.equals("8")){ sql1="select sum(heji) as G from user_money ";title="合计"+title;}
    //out.println(sql1);
    for(int l1=0;l1<p;l1++)
    {score[0][l1+1]=b[l1];for(int l2=0;l2<o;l2++)
    {score[l2+1][0]=a[l2];
    ResultSet msgRecordset11 = MyConn.executeQuery(sql1+" where rtrim(riqi)='"+a[l2]+"' and rtrim(name)='"+b[l1]+"'");
    //out.println(sql1+" where rtrim(riqi)='"+a[l2]+"' and rtrim(name)='"+b[l1]+"'");
    msgRecordset11.next();
    score[l2+1][l1+1]=msgRecordset11.getString("G");
    //out.println(score[l1+1][l2+1]);
    }}
    int i=0;
    int j=0;
    %>
    <html>
    <form name="form1" action="map32.jsp">
    <div align="center">
    <object classid="clsid:0002E556-0000-0000-C000-000000000046" id="ChartSpace1">
    <param name="XMLData" value="&lt;xml xmlns:x=&quot;urn:schemas-microsoft-com:office:excel&quot;&gt;
    &lt;x:ChartSpace&gt;
    &lt;x:OWCVersion&gt;10.0.0.2621         &lt;/x:OWCVersion&gt;
    &lt;x:Width&gt;15240&lt;/x:Width&gt;
    &lt;x:Height&gt;10160&lt;/x:Height&gt;
    &lt;x:Palette&gt;
    &lt;x:Entry&gt;#000000&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#000000&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#000000&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#000000&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#000000&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#000000&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#000000&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#000000&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#000000&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#000000&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#000000&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#000000&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#000000&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#000000&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#000000&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#000000&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#A0E0E0&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#802060&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#FFFFA0&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#8080FF&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#600080&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#FF8080&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#008080&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#C0C0FF&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#000080&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#FF00FF&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#80FFFF&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#0080FF&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#FF8080&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#C0FF80&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#FFC0FF&lt;/x:Entry&gt;
    &lt;x:Entry&gt;#FF80FF&lt;/x:Entry&gt;
    &lt;/x:Palette&gt;
    &lt;x:DefaultFont&gt;宋体&lt;/x:DefaultFont&gt;
     &lt;x:Chart&gt;
    &lt;x:PlotArea&gt;
    &lt;x:Graph&gt;
    <%
    if(ttype.equals("02")){ %>
    &lt;x:Type&gt;Line&lt;/x:Type&gt;
    &lt;x:SubType&gt;Standard&lt;/x:SubType&gt;
    &lt;x:SubType&gt;Marker&lt;/x:SubType&gt;
    <%}%>
    <%
    if(ttype.equals("01")){ %>
    &lt;x:SubType&gt;Clustered&lt;/x:SubType&gt;
    &lt;x:Type&gt;Column&lt;/x:Type&gt;
    <%}%>
    <%
    if(ttype.equals("03")){ %>
     &lt;x:Type&gt;Pie&lt;/x:Type&gt;
    &lt;x:SubType&gt;Stacked&lt;/x:SubType&gt;
    <%}%> file="../Connections/bbglend.jsp" %>
      

  4.   

    接上篇
    <%
    for(i=1;i<column;i++)
     {
    %>
     &lt;x:Series&gt;
    &lt;x:FormatMap&gt;
    &lt;/x:FormatMap&gt;
    &lt;x:Name&gt;
    <%
    out.print(score[0][i]);%>&lt;/x:Name&gt;
    &lt;x:Caption&gt;
    &lt;x:DataSourceIndex&gt;-1&lt;/x:DataSourceIndex&gt;
    &lt;x:Data&gt;&amp;quot;
    <%
    out.print(score[0][i]);%>&amp;quot;&lt;/x:Data&gt;
    &lt;/x:Caption&gt;
    &lt;x:Index&gt;
    <%
    out.print(i);%>&lt;/x:Index&gt;
    &lt;x:Category&gt;
    &lt;x:DataSourceIndex&gt;-1&lt;/x:DataSourceIndex&gt;
    &lt;x:Data&gt;
    { <%
    for(j=1;j<score.length;j++)
    if(j!=score.length-1)
    out.print("&amp;quot;"+score[j][0]+"&amp;quot;,");
    else
    out.print("&amp;quot;"+score[j][0]+"&amp;quot;");
    %>}&lt;/x:Data&gt;
    &lt;/x:Category&gt;
    &lt;x:Value&gt;
    &lt;x:DataSourceIndex&gt;-1&lt;/x:DataSourceIndex&gt;
    &lt;x:Data&gt;
    { <%
    for(j=1;j<score.length;j++)
    if(j!=score.length-1)
    out.print(score[j][i]+",");
    else
    out.print(score[j][i]);
    %>}&lt;/x:Data&gt;
    &lt;/x:Value&gt;
    <%
    if(ttype.equals("01")||ttype.equals("03")){%>
    &lt;x:Marker&gt;
    &lt;x:Symbol&gt;None&lt;/x:Symbol&gt;
    &lt;/x:Marker&gt;
    <%}%>
    &lt;x:Explode&gt;0&lt;/x:Explode&gt;
    &lt;x:Thickness&gt;10&lt;/x:Thickness&gt;
    &lt;/x:Series&gt;
    <%
    }
    %>
    <%
    if(ttype.equals("01")||ttype.equals("02"))
    {%>
    &lt;x:Dimension&gt;
    &lt;x:ScaleID&gt;50278424&lt;/x:ScaleID&gt;
    &lt;x:Index&gt;Categories&lt;/x:Index&gt;
    &lt;/x:Dimension&gt;
    &lt;x:Dimension&gt;
    &lt;x:ScaleID&gt;50278628&lt;/x:ScaleID&gt;
    &lt;x:Index&gt;Value&lt;/x:Index&gt;
    &lt;/x:Dimension&gt;
    &lt;x:Overlap&gt;
    <%
    if(ttype.equals("01"))
    {out.print("0");}
    if(ttype.equals("02"))
    {out.print("100");}
     %>&lt;/x:Overlap&gt;
    &lt;x:GapWidth&gt;150&lt;/x:GapWidth&gt;
    &lt;x:FirstSliceAngle&gt;0&lt;/x:FirstSliceAngle&gt;
    &lt;/x:Graph&gt;
    &lt;x:Axis&gt;
    &lt;x:AxisID&gt;50278832&lt;/x:AxisID&gt;
    &lt;x:ScaleID&gt;50278424&lt;/x:ScaleID&gt;
    &lt;x:Type&gt;Category&lt;/x:Type&gt;
    &lt;x:MajorTick&gt;Outside&lt;/x:MajorTick&gt;
    &lt;x:MinorTick&gt;None&lt;/x:MinorTick&gt;
    &lt;x:Placement&gt;Bottom&lt;/x:Placement&gt;
    &lt;x:GroupingEnum&gt;Auto&lt;/x:GroupingEnum&gt;
    &lt;/x:Axis&gt;
    &lt;x:Axis&gt;
    &lt;x:AxisID&gt;50279440&lt;/x:AxisID&gt;
    &lt;x:ScaleID&gt;50278628&lt;/x:ScaleID&gt;
    &lt;x:Type&gt;Value&lt;/x:Type&gt;
    &lt;x:MajorGridlines&gt;
    &lt;/x:MajorGridlines&gt;
    &lt;x:MajorTick&gt;Outside&lt;/x:MajorTick&gt;
    &lt;x:MinorTick&gt;None&lt;/x:MinorTick&gt;
    &lt;x:Placement&gt;Left&lt;/x:Placement&gt;
    &lt;/x:Axis&gt;
    <%}%>
    <%
    if(ttype.equals("03")){%>
    &lt;x:VaryColors/&gt;
    &lt;x:Dimension&gt;
    &lt;x:ScaleID&gt;113329172&lt;/x:ScaleID&gt;
    &lt;x:Index&gt;Value&lt;/x:Index&gt;
    &lt;/x:Dimension&gt;
    &lt;x:HoleSize&gt;0&lt;/x:HoleSize&gt;
    &lt;x:FirstSliceAngle&gt;17&lt;/x:FirstSliceAngle&gt;
    &lt;/x:Graph&gt;
    <%}%>
     &lt;/x:PlotArea&gt;
    &lt;/x:Chart&gt;
    &lt;x:Title&gt;
    &lt;x:Border&gt;
    &lt;x:ColorIndex&gt;None&lt;/x:ColorIndex&gt;
    &lt;/x:Border&gt;
    &lt;x:Caption&gt;
    &lt;x:DataSourceIndex&gt;-1&lt;/x:DataSourceIndex&gt;
    <%
     out.print("&lt;x:Data&gt;&amp;quot;"+title+"&amp;quot;&lt;/x:Data&gt;");%>
    &lt;/x:Caption&gt;
    &lt;/x:Title&gt;
    &lt;x:Legend&gt;
    &lt;x:Placement&gt;Right&lt;/x:Placement&gt;
    &lt;/x:Legend&gt;
    &lt;x:Scaling&gt;
    &lt;x:ScaleID&gt;50278424&lt;/x:ScaleID&gt;
    &lt;/x:Scaling&gt;
    &lt;x:Scaling&gt;
    &lt;x:ScaleID&gt;50278628&lt;/x:ScaleID&gt;
    &lt;/x:Scaling&gt;
    &lt;/x:ChartSpace&gt;
    &lt;/xml&gt;">
    <param name="ScreenUpdating" value="-1">
    <param name="EnableEvents" value="-1">
    <table width='100%' cellpadding='0' cellspacing='0' border='0' height='8'>
     <tr>
    <td bgColor='#336699' height='25' width='10%'>&nbsp;</td>
    <td bgColor='#666666'width='85%'><font face='宋体' color='white' size='4'><b>&nbsp; 
    缺少 Microsoft Office Web Components</b></font></td>
    </tr>
    <tr>
    <td bgColor='#cccccc' width='15'>&nbsp;</td>
    <td bgColor='#cccccc' width='500px'><br>
    <font face='宋体' size='2'>此网页要求 Microsoft Office Web Components。
    <p align='center'> <a href='owc10.exe'>单击此处安装 MMicrosoft 
    Office Web Components。</a>.</p>
    </font>
    <p><font face='宋体' size='2'>此网页同时要求 Microsoft Internet Explorer 4.01((SP-1)或更高版本。</p>
    <p align='center'><a href='http://www.microsoft.com/windows/ie/default.htm'> 
    单击此处安装最新的 Internet Explorer</a>.</font><br>
    &nbsp;
    </td>
    </tr>
    </table>
    </object>
    </div>
                    
      <div align="center"><a href="map32.jsp?ttype=02&strdd3=<%=z2%>&strdd1=<%=z3%>&strdd2=<%=z1%>">曲线图</a> <a href="map32.jsp?ttype=03&strdd3=<%=z2%>&strdd1=<%=z3%>&strdd2=<%=z1%>">饼图 </a> <a href="map32.jsp?ttype=01&strdd3=<%=z2%>&strdd1=<%=z3%>&strdd2=<%=z1%>">柱图  </a></div>
    </form>
    <%@ include
      

  5.   

    接上篇
    file="../Connections/bbglend.jsp" %>