欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

iReport+jasperReport之JFreeChart(圖表報表)

系統 1921 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條評論
主站蜘蛛池模板: 国产日韩一区二区 | 久久久91| 91久久精品日日躁夜夜躁国产 | 成人a视频在线观看 | 500av导航大全精品 | 成人免费在线视频 | 欧美狂猛xxxxx乱大交3 | 国产成人精品一区在线播放 | 国产情侣啪啪 | 色综合区| 在线激情视频 | 9久9久女女免费精品视频在线观看 | 久久久人| 日韩欧美在线视频 | 日韩视频一区二区三区 | 免费观看黄色a一级视频播放 | 午夜久久久久久禁播电影 | 欧美成在人线a免费视频 | 国产精品久久久久久久一区探花 | 欧美一级毛片在线看视频 | 亚洲高清在线观看 | 综合欧美一区二区三区 | 九热视频在线观看 | 欧洲免费无线码二区5 | 国产精品二区三区 | 亚洲视频毛片 | 成人网在线免费观看 | 青娱乐中文字幕 | 亚洲高清成人欧美动作片 | 999热这里只有精品 三级在线网站 | 欧洲另类一二三四区 | 久久福利青草精品资源 | 亚洲免费网 | 亚洲欧美在线视频免费 | 宣言个人资料 | 精品国产成a人在线观看 | 日本人69视频jizz免费看 | 天天操天天射天天舔 | 狠狠视频 | 久久国产精品-国产精品 | 婷婷狠狠干|