丄諦啲仇魜ヤ
          如 果 敵 人 讓 你 生 氣 , 那 說 明 你 沒 有 勝 他 的 把 握!
          posts - 6,comments - 56,trackbacks - 1
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567


          QQ:    315480381
          MSN: wangsq777@126.com

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          博客

          幫助

          看見的好東西

          網(wǎng)站

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          1.JFreeReport :報表解決工具
          2.JFreeChart:Java 圖形解決方案(Application/Applet/Servlet/Jsp)
          3.JCommon :JFreeReport和JFreeChart的公共類庫
          4.JFreeDesigner :JFreeReport的報表設(shè)計(jì)工具
          下載 地址 http://www.jfree.org/jfreechart/index.html 解壓將LIB下的jfreechart-1.0.6.jar 、jcommon-1.0.10.jar、gnujaxp.jar 放到項(xiàng)目中即可,如果加上第三個jar(gnujaxp.jar)包有時web.xml會報錯,把它去掉就好了。

          我的環(huán)境 tomcat 6.0 ,eclipse 3.2.  mssql
          在web.xml文件中增加如下配置:
          <servlet>
                    
          <servlet-name>DisplayChart</servlet-name>
                    
          <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
          </servlet>
          <servlet-mapping>
                    
          <servlet-name>DisplayChart</servlet-name>
                    
          <url-pattern>/servlet/DisplayChart</url-pattern>
          </servlet-mapping>

          package com.report;
          import java.util.Iterator;
          import java.util.List;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;
          import org.apache.struts.action.Action;
          import org.apache.struts.action.ActionForm;
          import org.apache.struts.action.ActionForward;
          import org.apache.struts.action.ActionMapping;
          import org.hibernate.Query;
          import org.jfree.data.general.DefaultPieDataset;
          import com.dao.DbApplicationDAO;

          /**
           * 處理餅狀圖
           * 
           * @version1.0 2007-11-3
           * @author王世清
           
          */

          public class PieAction extends Action {

              
          public ActionForward execute(ActionMapping mapping, ActionForm form,
                      HttpServletRequest request, HttpServletResponse response) 
          {
                  String year 
          = request.getParameter("year").trim();
                  
          /** ******JfreeChart中的制作柱餅圖類******* */
                  DefaultPieDataset dataset 
          = new DefaultPieDataset();
                  
                  
          //DAO
                  DbApplicationDAO dbApplicationDAO = new DbApplicationDAO();
                  
                  
          /** 查找當(dāng)年的請假每月的假期總數(shù)* */
                  
          //list 里面裝的數(shù)組
                  List list = dbApplicationDAO.findAplicationByYear(year);
          /**  findAplicationByYear(year)方法如下
                   public List findAplicationByYear(String year) {
                  log.debug("finding by year instances");
                  try {
                      Byte st = new Byte("1");
                      String queryString = "select sum(days),holidayMonth from DbApplication d where d.state="
                              + st
                              + " and  d.holidayYear="
                              + year
                              + " group by d.holidayMonth order by d.holidayMonth ";
                      Query queryObject = getSession().createQuery(queryString);
                      List list = queryObject.list();
                      // Iterator i=list.iterator();
                      // while(i.hasNext()){
                      // Object[] row = (Object[]) i.next();
                      // Integer days = (Integer) row[0];
                      // String month= (String) row[1];
                      // System.out.println(days+" 個半天 "+month+" 月");
                      //            
                      // 
                      // }
                      return list;

                  } catch (RuntimeException re) {
                      log.error("find all failed", re);
                      throw re;
                  }
              }
          *
          */

                  Iterator i 
          = list.iterator();
                  
          while (i.hasNext()) {
                      Object[] row 
          = (Object[]) i.next();
                      Integer days 
          = (Integer) row[0];
                      String month 
          = (String) row[1];
                      dataset.setValue(month 
          + "", days);
                  }

                  request.setAttribute(
          "year", year);
                  request.setAttribute(
          "dataset", dataset);
                  
          return mapping.findForward("go_pie");//轉(zhuǎn)發(fā)到pie.jsp就是下面顯示的JSP

              }

          }
          餅狀圖輔助類

          package com.report;

          import java.io.PrintWriter;
          import javax.servlet.http.HttpSession;
          import org.jfree.chart.ChartFactory;
          import org.jfree.chart.ChartRenderingInfo;
          import org.jfree.chart.ChartUtilities;
          import org.jfree.chart.JFreeChart;
          import org.jfree.chart.entity.StandardEntityCollection;
          import org.jfree.chart.servlet.ChartDeleter;
          import org.jfree.chart.servlet.ServletUtilities;
          import org.jfree.data.general.DefaultPieDataset;

          /**
           * 餅狀圖輔助類
           * 
           * @version1.0 2007-11-3
           * @author王世清
           
          */


          public class ChartUtil {
              
          public static String generatePieChart(DefaultPieDataset dataset,
                      String title, 
          int width, int height, HttpSession session,
                      PrintWriter pw) 
          {

                  String filename 
          = null;
                  
          try {
                      
          if (session != null{
                          ChartDeleter deleter 
          = (ChartDeleter) session
                                  .getAttribute(
          "JFreeChart_Deleter");
                          session.removeAttribute(
          "JFreeChart_Deleter");
                          session.setAttribute(
          "JFreeChart_Deleter", deleter);
                      }

                      JFreeChart chart 
          = ChartFactory.createPieChart3D(title, // chart
                                                                              
          // title
                              dataset, // data
                              true// include legend
                              truefalse);
                      
                      ChartRenderingInfo info 
          = new ChartRenderingInfo(
                              
          new StandardEntityCollection());
                      
                      filename 
          = ServletUtilities.saveChartAsPNG(chart, width, height,
                              info, session);
                      
                      ChartUtilities.writeImageMap(pw, filename, info, 
          true);
                      pw.flush();
                  }
           catch (Exception e) {
                      System.out.println(
          "Exception - " + e.toString());
                      e.printStackTrace(System.out);
                      filename 
          = "picture_error.png";
                  }

                  
          return filename;
              }

          }

          顯示的頁面pie.jsp
          <%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
          <%@ page import="java.io.PrintWriter"%>
          <%@ page import="org.jfree.data.general.DefaultPieDataset"%>
          <%@ page import="com.report.ChartUtil"%>
          <HTML>
              
          <HEAD>
                  
          <TITLE>員工看見的餅狀圖</TITLE>
              
          </HEAD>
              
          <BODY bgcolor="#E0F0F8">
              
          <%      String year= (String) request.getAttribute("year");
                       DefaultPieDataset piedataset
          =(DefaultPieDataset)request.getAttribute("dataset");
                       String p 
          = ChartUtil.generatePieChart(piedataset,year+" 假期統(tǒng)計(jì)",600,300,nullnew PrintWriter(out));    
                       String p1 
          = request.getContextPath() + "/servlet/DisplayChart?filename=" + p;
                       
               
          %>
               
          <center>
                  
          <table>
                      
          <tr valign="top" align="center">
                          
          <td>
                              
          <%@ include file="header.jsp"%>
                          
          </td>
                      
          </tr>
                      
          <tr valign="middle" align="center">
                          
          <td>
                              
          <img src="<%=p1%>" width=600 height=300 border=0 usemap="#<%=p%>">
                          
          </td>
                      
          </tr>
                      
          </table>
                      
          </center>
              
          </BODY>
          </HTML>






          posted on 2007-12-06 13:29 Crying 閱讀(593) 評論(0)  編輯  收藏 所屬分類: JreeChart使用

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 长泰县| 阳曲县| 冷水江市| 合作市| 汉中市| 长葛市| 华池县| 罗平县| 大洼县| 开平市| 陆川县| 黄龙县| 定边县| 特克斯县| 平舆县| 莲花县| 惠州市| 淳安县| 禹城市| 云浮市| 平谷区| 曲周县| 西乌| 偏关县| 墨脱县| 县级市| 吉安县| 玉环县| 邯郸县| 永善县| 齐齐哈尔市| 赞皇县| 资源县| 陵水| 怀远县| 军事| 巴彦县| 宜川县| 威信县| 蒲城县| 天水市|