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簡單使用 來實現(xiàn)我們的圖表吧,說到這里澄清一下,本篇寫的是jasperReport的圖表,下來會專門寫一篇關(guān)于jasperReport圖片報表。
                  jasperReport不重復發(fā)明車輪,在報表中是以一個變量的方式引入外部圖表的,下來我們看看是怎么實現(xiàn)
          的,新建一變量jfreeChart 如圖:

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

          net.sf.jasperreports.engine.JRRenderable為jasperReport一個專門用來處理圖表問題公共接口,一切OK,現(xiàn)在就是這個變量怎么才能吧jfreechart傳遞到報表中呢,還記得上篇的scriptlet嗎?
          新建一JChartReportDemo.java類,繼承自JRDefaultScriptlet,當然要實現(xiàn)那些方法不過大部分我們都是空實現(xiàn)而已,我們只要在afterReportInit方法內(nèi)繪制圖表然后在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");這一句的意思是當沒有顯示出圖表或是圖表沒有數(shù)據(jù)不顯示時會顯示我們定義的這些信息。
          this.setVariableValue("jfreeChart"new JFreeChartRenderer(freeChart));
          這一句當然是set數(shù)據(jù)了,JFreeChartRenderer這個類是JRRenderable接口的間接實現(xiàn),從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 | 西西
          你好,想交流一下傳參數(shù)到圖表的問題,QQ:48322221  回復  更多評論
            
          # re: iReport+jasperReport之JFreeChart(圖表報表)
          2009-03-27 09:17 | 凌晨風
          傳遞參數(shù)和普通的參數(shù)傳遞是一樣的  回復  更多評論
            
          # re: iReport+jasperReport之JFreeChart(圖表報表)
          2009-04-01 16:08 | zhangb310
          你好:
          我用的是ireport 工具生成報表, ireport怎么樣和jfreechart結(jié)合使用,
          還有我在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結(jié)合使用的,我的郵箱是yuchensuifeng@hotmail.com,謝謝  回復  更多評論
            
          # re: iReport+jasperReport之JFreeChart(圖表報表)[未登錄]
          2012-10-18 17:35 | sky
          你好!
          我用的是ireport 工具生成報表, ireport怎么樣和jfreechart結(jié)合使用,
          還有我在ireport中java程序怎么用啊?
          怎樣ireport生產(chǎn)線圖或柱狀圖的橫縱坐標軸刻度大小?求解決。
          我qq:425023633 郵箱:skytoxiao@163.com  回復  更多評論
            

          <2008年12月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(11)

          我參與的團隊

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          新聞分類

          新聞檔案

          收藏夾

          圍脖

          最新隨筆

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 稷山县| 萨嘎县| 团风县| 永和县| 连南| 莎车县| 平塘县| 双柏县| 施甸县| 馆陶县| 苏州市| 家居| 镇安县| 祁东县| 屯留县| 五指山市| 吉林省| 内丘县| 六安市| 佛坪县| 图们市| 台江县| 浮山县| 霍邱县| 济源市| 德格县| 花莲县| 全椒县| 庆云县| 都江堰市| 二连浩特市| 安阳县| 奉节县| 民县| 方城县| 大庆市| 大厂| 巫溪县| 绥棱县| 台湾省| 海南省|