var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-20738293-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script')"/>

          jutleo
          歡迎走進有風的地方~~
          posts - 63,  comments - 279,  trackbacks - 0
                  說完iReport+jasperReport之scriptlet 下來就得看看圖表了,jasperReport的圖表完全借助于外部的繪圖工具,charts和JFreeChart,其中JFreeChart是目前java最火的一個繪圖工具了,還是引用JFreeChart簡單使用 來實現我們的圖表吧,說到這里澄清一下,本篇寫的是jasperReport的圖表,下來會專門寫一篇關于jasperReport圖片報表。
                  jasperReport不重復發明車輪,在報表中是以一個變量的方式引入外部圖表的,下來我們看看是怎么實現
          的,新建一變量jfreeChart 如圖:

                  緊接著我們在報表上放置一圖片控件,下來一篇我會詳細說說圖片問題,右擊設置圖片控件屬性,如圖所示:

          net.sf.jasperreports.engine.JRRenderable為jasperReport一個專門用來處理圖表問題公共接口,一切OK,現在就是這個變量怎么才能吧jfreechart傳遞到報表中呢,還記得上篇的scriptlet嗎?
          新建一JChartReportDemo.java類,繼承自JRDefaultScriptlet,當然要實現那些方法不過大部分我們都是空實現而已,我們只要在afterReportInit方法內繪制圖表然后在set進去我們定義的那個變量即可:
          public void afterReportInit() throws JRScriptletException {
                  
                  
          //create pie chart dataset
                  DefaultPieDataset dateset = new DefaultPieDataset();

                  
          //set dataset value
                  dateset.setValue("Chinese"108);
                  dateset.setValue(
          "Math"110);
                  dateset.setValue(
          "English"74);
                  dateset.setValue(
          "Science Department"226);
                  
                  
          /*
                   * create jfreeChart object
                   * the first parameter is pie chart title
                   * the secend parameter is dataset of pie chart
                   * the three parameter is boolean value,create chart note
                   * the four parameter is boolean value,it's a tooltip of move mouse on
                   * configure chart to generate URLs,It's get a PiePlot3D object
                   * 
                   
          */

                  JFreeChart freeChart 
          = ChartFactory.createPieChart3D("Report Pie Chart", dateset, truetruefalse);
                  
                  PiePlot3D plot3D 
          = (PiePlot3D) freeChart.getPlot();
                  plot3D.setNoDataMessage(
          "No data to display");
                  
                  
          // set variable "jfreeChart" value
                  this.setVariableValue("jfreeChart"new JFreeChartRenderer(freeChart));
              }
          其中plot3D.setNoDataMessage("No data to display");這一句的意思是當沒有顯示出圖表或是圖表沒有數據不顯示時會顯示我們定義的這些信息。
          this.setVariableValue("jfreeChart"new JFreeChartRenderer(freeChart));
          這一句當然是set數據了,JFreeChartRenderer這個類是JRRenderable接口的間接實現,從API上看jasperReport已不推薦我們使用了。
              OK,我們test一下吧!JChartReportMain.java
          package org.bulktree.ireport.chart;

          import java.io.File;
          import java.io.FileInputStream;
          import java.io.InputStream;
          import java.util.HashMap;

          import net.sf.jasperreports.engine.JREmptyDataSource;
          import net.sf.jasperreports.engine.JasperCompileManager;
          import net.sf.jasperreports.engine.JasperFillManager;
          import net.sf.jasperreports.engine.JasperPrint;
          import net.sf.jasperreports.engine.JasperReport;
          import net.sf.jasperreports.view.JasperViewer;

          /**
           * 
          @author bulktree Email: laoshulin@gmail.com
           * @date Nov 28, 2008
           
          */

          public class JChartReportMain {
              
          public static void main(String[] args) {
                  String path 
          = "D:/workspace/JFreeChartReportDemo.jrxml";

                  File file 
          = new File(path);
                  InputStream in;
                  
          try {
                      HashMap parameters 
          = new HashMap();
                      parameters.put(
          "ReportTitle""LAOSHULIN");
                      in 
          = new FileInputStream(file);
                      JasperReport jasperReport 
          = JasperCompileManager.compileReport(in);
                      JasperPrint jasperPrint 
          = JasperFillManager.fillReport(jasperReport,
                              parameters, 
          new JREmptyDataSource());
                      JasperViewer viewer 
          = new JasperViewer(jasperPrint);
                      viewer.setVisible(
          true);
                  }
           catch (Exception e) {
                      e.printStackTrace();
                  }

              }

          }

          看過前面幾篇應該對這個相當熟悉了吧!
          posted on 2008-12-19 10:04 凌晨風 閱讀(8990) 評論(16)  編輯  收藏 所屬分類: iReport + JasperReport 系列

          FeedBack:
          # re: iReport+jasperReport之JFreeChart(圖表報表)
          2009-03-16 13:32 | shuaijie

          你好,看到你的文章,故想要一份你的JasperReport(HTML格式的圖表)的代碼,麻煩您了,謝謝。  回復  更多評論
            
          # re: iReport+jasperReport之JFreeChart(圖表報表)
          2009-03-16 13:32 | shuaijie
          我的郵箱是:shuaijie.zhi@gmail.com,謝謝你了。  回復  更多評論
            
          # re: iReport+jasperReport之JFreeChart(圖表報表)
          2009-03-19 11:23 | 凌晨風
          不好意思,沒有例子代碼有問題大家可以交流啊  回復  更多評論
            
          # re: iReport+jasperReport之JFreeChart(圖表報表)
          2009-03-26 20:06 | wwm
          為什么我生成的報表再WEB中圖片顯示不出來呢  回復  更多評論
            
          # re: iReport+jasperReport之JFreeChart(圖表報表)[未登錄]
          2009-03-27 08:45 | 西西
          你好,想交流一下傳參數到圖表的問題,QQ:48322221  回復  更多評論
            
          # re: iReport+jasperReport之JFreeChart(圖表報表)
          2009-03-27 09:17 | 凌晨風
          傳遞參數和普通的參數傳遞是一樣的  回復  更多評論
            
          # re: iReport+jasperReport之JFreeChart(圖表報表)
          2009-04-01 16:08 | zhangb310
          你好:
          我用的是ireport 工具生成報表, ireport怎么樣和jfreechart結合使用,
          還有我在ireport中java程序怎么用啊?
            回復  更多評論
            
          # re: iReport+jasperReport之JFreeChart(圖表報表)
          2009-04-01 16:10 | zhangb310
          新手
          求教ireport的深入問題.
          msn:zhangb310@hotmail.com
            回復  更多評論
            
          # re: iReport+jasperReport之JFreeChart(圖表報表)
          2009-04-01 16:17 | 凌晨風
          @zhangb310
          scriptlet
            回復  更多評論
            
          # re: iReport+jasperReport之JFreeChart(圖表報表)[未登錄]
          2009-04-16 17:29 | 1
          我做出來的圖表,Html頁面圖片為什么無法刷新?  回復  更多評論
            
          # re: iReport+jasperReport之JFreeChart(圖表報表)
          2009-06-22 11:29 | ps
          @shuaijie

          你自己寫啦。。要別人的代碼!!
            回復  更多評論
            
          # re: iReport+jasperReport之JFreeChart(圖表報表)
          2009-07-22 16:49 | XX某
          Html不出圖片
          怎么解決哦!
          QQ:3039410790  回復  更多評論
            
          # re: iReport+jasperReport之JFreeChart(圖表報表)
          2009-11-09 11:49 | tt
          JChartReportDemo.java這個類你是怎么注冊進去的呢?  回復  更多評論
            
          # re: iReport+jasperReport之JFreeChart(圖表報表)
          2009-11-23 17:28 | tgm
          能給出html形式的jfreechart不?  回復  更多評論
            
          # re: iReport+jasperReport之JFreeChart(圖表報表)
          2012-05-09 00:37 |
          求web中與struts2結合使用的,我的郵箱是yuchensuifeng@hotmail.com,謝謝  回復  更多評論
            
          # re: iReport+jasperReport之JFreeChart(圖表報表)[未登錄]
          2012-10-18 17:35 | sky
          你好!
          我用的是ireport 工具生成報表, ireport怎么樣和jfreechart結合使用,
          還有我在ireport中java程序怎么用啊?
          怎樣ireport生產線圖或柱狀圖的橫縱坐標軸刻度大小?求解決。
          我qq:425023633 郵箱:skytoxiao@163.com  回復  更多評論
            

          <2009年3月>
          22232425262728
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          常用鏈接

          留言簿(11)

          我參與的團隊

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          新聞分類

          新聞檔案

          收藏夾

          圍脖

          最新隨筆

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 即墨市| 大庆市| 禹城市| 专栏| 韶关市| 定日县| 赤水市| 山阳县| 尼玛县| 巴青县| 获嘉县| 苏州市| 酒泉市| 长乐市| 藁城市| 兴国县| 彭阳县| 方山县| 长岛县| 江北区| 临城县| 炎陵县| 开鲁县| 天长市| 泸州市| 班戈县| 锡林浩特市| 桦南县| 乳山市| 那坡县| 郁南县| 赫章县| 汨罗市| 鄱阳县| 绩溪县| 延寿县| 德令哈市| 瑞丽市| 吴川市| 松原市| 南涧|