亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

iReport+jasperReport之JFreeChart(圖表報表)

系統 1850 0

?說完 iReport+jasperReport之scriptlet ? 下來就得看看圖表了,jasperReport的圖表完全借助于外部的繪圖工具,charts和JFreeChart,其中JFreeChart是目前java最火的一個繪圖工具了,還是引用 JFreeChart簡單使用 ? 來實現我們的圖表吧,說到這里澄清一下,本篇寫的是jasperReport的圖表,下來會專門寫一篇關于jasperReport圖片報表。
????????jasperReport不重復發明車輪,在報表中是以一個變量的方式引入外部圖表的,下來我們看看是怎么實現
的,新建一變量jfreeChart 如圖:
iReport+jasperReport之JFreeChart(圖表報表)
????????緊接著我們在報表上放置一圖片控件,下來一篇我會詳細說說圖片問題,右擊設置圖片控件屬性,如圖所示:
iReport+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,? true ,? true ,? false );
????????
????????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();
????????}

????}

}

看過前面幾篇應該對這個相當熟悉了吧! iReport+jasperReport之JFreeChart(圖表報表)

????iReport+jasperReport之JFreeChart(圖表報表) ? 中提到圖片控件,下面就看看jasperReport怎樣處理圖片吧!
新建一空白報表,分別畫兩個靜態文本字段和圖像控件上去
iReport+jasperReport之JFreeChart(圖表報表)
????????新建兩個參數分別為:imageParam和isShowImage,其中imageParam用來指定圖片路徑,isShowImage用來指定是否顯示圖片的。
????右擊查看圖片控件屬性:分別設置圖片參數和控制打印的表達式:
iReport+jasperReport之JFreeChart(圖表報表)

iReport+jasperReport之JFreeChart(圖表報表)
ok!這個就不用解釋了吧!試試就知道啦

JasperReport?jasperReport? = ?(JasperReport)?JRLoader
????????????????????.loadObject(
" D:\\workspace\\AppletTest.jasper " );
????????????HashMap?mapParam?
= ? new ?HashMap();
????????????mapParam.put(
" imageParam " ,? " D:\\workspace\\eg_smile.gif " );
????????????
/*
?????????????*?此參數用來控制是否顯示圖片
?????????????*?第二個參數在報表中設置為String類型
?????????????
*/

????????????mapParam.put(
" isShowImage " ,? " true " );
????????????
// ?生成jasperPrint對象
????????????JasperPrint?jasperPrint? = ?JasperFillManager.fillReport(jasperReport,
????????????????????mapParam,?
new ?JREmptyDataSource());

????關于jasperReport圖片處理很簡單google一下很多啊,最近又開始忙了突然想起上篇遺留這個問題,所以抽空寫下來,算是對上篇的一個補充吧!以后有時間會繼續寫下去,國際化、corsstab、web端打印、純java定制復雜報表等。

iReport+jasperReport之JFreeChart(圖表報表)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品亚洲欧美日韩一区在线 | 亚洲综合图区 | 日本一区二区三区四区 | 中文字幕一区二区三区四区五区人 | 男女啪视频大全1000 | 亚洲国产成人久久综合碰 | 久久国产首页 | 成人午夜天| 农村高清性色生活片 | 五月婷婷六月激情 | 亚洲精品美女久久久久网站 | 日本xxx高清免费视频 | 爱爱视频天天看 | 国产日产综合 | 国产精品高清一区二区不卡 | 亚洲国产精品一区二区久久hs | 国内精品51视频在线观看 | 色综合天天综合中文网 | 纯欧美一级毛片_免费 | 婷婷视频在线 | 久久影视免费体验区午夜啪啪 | 久久国产热这里只有精品8 久久国产三级 | 久久www免费人成看国产片 | 在线观看亚洲成人 | 4虎影院永久地址www | 一级做受毛片免费大片 | 久久精品综合一区二区三区 | 中文字幕日韩在线一区国内 | 精品一区二区免费视频 | 国产在线91区精品 | 狠狠操91| 日本高中生一级乇片 | 综合视频网 | 亚洲男人的天堂久久香蕉 | 激情亚州 | 中文字幕一区二区三区精彩视频 | 热久久影院 | 日韩中文字幕不卡 | 99这里只有精品视频 | 免费的毛片网站 | 天天综合射 |