最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iReport使用教程(示例教程)

 更新時間:2021年10月25日 10:37:43   投稿:mdxy-dxy  
在使用ireport的過程中,因為各種功能都要百度,但是大家使用的例子又千差萬別讓人很苦惱,所以用一個簡單例子貫穿的展示一下ireport的常見功能

在使用ireport的過程中,因為各種功能都要百度,但是大家使用的例子又千差萬別讓人很苦惱,所以用一個簡單例子貫穿的展示一下ireport的常見功能。

iReport簡介

說到iReport不得不先介紹Jasperreport,Jasperreport是一個報表制作程序,用戶需要按照它制定的規(guī)則編寫 一個XML文件,然后得到用戶需要輸出的格式文件。它支持輸出的文件格式包括PDF,HTML,XML,XLS,CVS等等。而iReport就是一個制 作Jasperreport的XML文件的可視化開發(fā)工具。只是一個UI。

我使用的是iReport 3.5.1,使用的示例數(shù)據(jù)表如圖:

sales表:(人名、大致結(jié)構(gòu)來自帆軟電子文檔,如有雷同,無意冒犯)


sellers表:


下面開始介紹:

報表結(jié)構(gòu)

左邊是view區(qū),聯(lián)系著主設計區(qū)中的各個band區(qū)域的數(shù)據(jù),以及參數(shù)、變量等。中間是主設計區(qū),通過拖拽控件面板可以在此區(qū)域進行設計,有三種模式:設計(Designer)、源碼(Xml)、預覽(Preview),設計模式是可視的,源碼方式可以直接在上修改,預覽是對設計好的報表樣式進行預覽,也是一個編譯的過程;右邊是控件面板和屬性面板,可以在此使用控件和設置屬性。
JasperReport有三個方式來保持數(shù)據(jù):Field、Paramrter、Variables。
一般情況下,F(xiàn)ield是用作保存從數(shù)據(jù)源取出來的數(shù)據(jù),用法是;
Parameter是用來占位—我們在設計時往往不知道具體的值,那么用一個參數(shù)來占住它們的位置,在執(zhí)行時,從程序或者數(shù)據(jù)庫中傳遞對應的參數(shù)過來,從而實現(xiàn)一個動態(tài)的過程,用法是
Variables是變量,可以將變量用于TextFild表達式中,也可以設置它的屬性,使它具有一些功能,如求和,求平均數(shù)等,用法是

數(shù)據(jù)源
ireport提供很多種數(shù)據(jù)源的連接方式,
點上方的數(shù)據(jù)庫標識就可以設置數(shù)據(jù)庫,下方的數(shù)據(jù)標識用來寫SQL語句獲取數(shù)據(jù)。

我們這里選擇jdbc數(shù)據(jù)連接,mysql連接語句,數(shù)據(jù)庫名稱是test

test一下是否連通,輸入數(shù)據(jù)庫密碼以后,如果成功會出現(xiàn)提示:

示例
3.1 簡單示例
首先連接數(shù)據(jù)庫表sales:

點擊ok,這時左側(cè)view窗口的field區(qū)域就得到了取到的數(shù)據(jù):

這時,在主設計區(qū)域拖拽靜態(tài)文本控件:在column header區(qū)域添加列名,然后拖動左側(cè)的field字段到detail域相應的列名下:

3.2 分組示例
有時候我們需要分組來觀察數(shù)據(jù),這時就需要group,我們以區(qū)域id來分組,需要注意的是,如果使用group分組,需要在一開始的sql語句中加上order by語句,否則ireport是不會自動分組的。

右鍵添加一個分組:

接下來會有一個向?qū)?,我們根?jù)向?qū)б徊讲讲僮鳎?

然后下一步,完成。

3.3 子表方式分組查看
如果不想在sql語句中增加order by語句,那么可以使用子表的方式進行分組查看,例如我想在父報表master.jasper中查看子報表sub_report.jasper的信息,需要用到銷售情況表sales和員工情況表sellers以及子報表控件和一個參數(shù) area_id。
首先建立子表員工信息表sub_report.jasper,新建一個參數(shù),作為連接兩個表的橋梁:area_id,參數(shù)的屬性設置如圖

主要是要把parameter class設置成與數(shù)據(jù)庫表中同樣的類型以防出錯。

然后為sub_report綁定數(shù)據(jù)庫表,此時需要注意SQL語句中需要包含我們設定的參數(shù) $P{area_id}

接下來,我們preview一下,這時需要給一個參數(shù)測試,假使我們給定1,結(jié)果如圖:

這說明分組已經(jīng)成功,我們下一步需要把子表與父表連接起來。
同樣需要新建一個報表文件master.jasper,為方便查看,將區(qū)域名稱拖入detail區(qū)域備用。

拖拽子表控件,根據(jù)向?qū)瓿勺颖韺傩栽O置
(1)選擇已有子表,注意是選擇編譯后的文件,sub_report.jasper,而非sub_report.jrxml。如果先建父表,在這里選擇創(chuàng)建子表,按照向?qū)?chuàng)建子表,流程如上。

(2)使用內(nèi)建連接參數(shù)表達式

(3)設定參數(shù)值為本報表中已存在的field域中的$F{area_id}

(4)存儲子表表達式,事實上,我將子表和父表已經(jīng)放在同一個文件夾中所以不必使用絕對路徑法,只需存儲一個路徑名稱即可

完成,運行一下:

3.4 圖表示例
3.4.1 餅圖
針對 Pie圖表類型,有三個表達式需要我們輸入:Key,Value 和 Label。表達式 Key 允許你標識 Pie 圖里的一塊。如果 Key 的值出現(xiàn)重復, 那么 Label 和 Value的值會關聯(lián)起來用來覆蓋 Key 的值。一個 Key 值不能為 null。Value 的表達式值指定這個Key 的數(shù)字值。Label 表達式的值允許你為并圖中每一塊指定一個標簽。這個表達式的值是可選的,同時默認值為 key=value
首先拖動圖表控件,ireport支持多種圖表,因為示例的數(shù)據(jù)比較簡單,我們就只說餅圖和柱狀圖。

放好餅圖以后,右鍵chart data,設置圖表屬性

這里需要注意的是,value是用來表述你劃分餅圖關鍵詞的值,本例中,我們根據(jù)售貨員來銷售的蘋果汁來劃分餅圖,那么key就是售貨員,他的“值”,也就是蘋果銷售量就是value,value一般要求是數(shù)字類型。


如果我們將label表達式換成$F{apple},就會是如下效果:

個人認為還是后者比較直觀。

3.4.2 柱狀圖
過程和餅狀圖一樣,效果如下:

顯然更復雜的數(shù)據(jù)比較能體現(xiàn)到他的用處。

3.5交叉報表
有時候我們不僅需要縱向比較數(shù)據(jù),也需要同時橫向進行比較,這就用到了交叉報表。
交叉報表需要用到空間crosstab
我們新建一個報表文件CrosstabTest,統(tǒng)計一下不同區(qū)域蘋果汁的銷售情況,綁好數(shù)據(jù)表后,拖拽交叉報表控件,根據(jù)向?qū)гO置:
首先選擇主報表數(shù)據(jù)集:

然后,設定行參數(shù),我們選擇區(qū)域id作為分組依據(jù),group2暫時不用。

接下來是列參數(shù),選擇銷售人員作為分組依據(jù)。

然后是主區(qū)數(shù)據(jù),我們主要是看不同區(qū)域不同銷售人員蘋果汁的銷售情況所以選擇apple,由于是計數(shù),fuction選擇count即可。

 

最后是布局,crosstab控件會自動帶行總數(shù)列總數(shù),可自選。

完成:

不在該銷售區(qū)域的會被標記為0.

此外,iReport還有獲取當前時間,獲取頁數(shù)等小工具可供使用,這些工具都是基于TextField可以更改表達式進行定義。當模板文件編譯后,可放至程序中使用,并進行參數(shù)傳遞。

這是我這一段對ireport的摸索,因為數(shù)據(jù)簡單,很多問題還沒有發(fā)掘出來,有錯誤和不足的地方歡迎一起討論改正。

相關文章

  • Spring data JPA只查詢部分字段問題及解決

    Spring data JPA只查詢部分字段問題及解決

    這篇文章主要介紹了Spring data JPA只查詢部分字段問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java獲取文件的路徑及常見問題解決方案

    Java獲取文件的路徑及常見問題解決方案

    這篇文章主要介紹了Java獲取文件的路徑及常見問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • SpringBoot項目 文件上傳臨時目標被刪除異常的處理方案

    SpringBoot項目 文件上傳臨時目標被刪除異常的處理方案

    這篇文章主要介紹了SpringBoot項目 文件上傳臨時目標被刪除異常的處理方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • SpringMVC結(jié)合ajaxfileupload實現(xiàn)文件無刷新上傳代碼

    SpringMVC結(jié)合ajaxfileupload實現(xiàn)文件無刷新上傳代碼

    本篇文章主要介紹了SpringMVC結(jié)合ajaxfileupload實現(xiàn)文件無刷新上傳,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • Java class文件格式之數(shù)據(jù)類型_動力節(jié)點Java學院整理

    Java class文件格式之數(shù)據(jù)類型_動力節(jié)點Java學院整理

    這篇文章主要介紹了Java class文件格式之數(shù)據(jù)類型的相關資料,需要的朋友可以參考下
    2017-06-06
  • Java多線程并發(fā)FutureTask使用詳解

    Java多線程并發(fā)FutureTask使用詳解

    Java?的多線程機制本質(zhì)上能夠完成兩件事情,異步計算和并發(fā),F(xiàn)utureTask?是基于?Runnable?實現(xiàn)的一個可取消的異步調(diào)用?API,本文給大家介紹Java?多線程并發(fā)FutureTask及基本使用,需要的朋友可以參考下
    2022-06-06
  • Java調(diào)用ChatGPT(基于SpringBoot和Vue)實現(xiàn)可連續(xù)對話和流式輸出的ChatGPT API

    Java調(diào)用ChatGPT(基于SpringBoot和Vue)實現(xiàn)可連續(xù)對話和流式輸出的ChatGPT API

    這篇文章主要介紹了Java調(diào)用ChatGPT(基于SpringBoot和Vue),實現(xiàn)可連續(xù)對話和流式輸出的ChatGPT API(可自定義實現(xiàn)AI助手),文中代碼示例介紹的非常詳細,感興趣的朋友可以參考下
    2023-04-04
  • 最新評論

    新闻| 封丘县| 大田县| 柞水县| 灵山县| 静安区| 中西区| 北辰区| 三明市| 潜江市| 荣昌县| 南岸区| 南江县| 毕节市| 拉萨市| 紫阳县| 海南省| 潜江市| 轮台县| 兴仁县| 宜兴市| 长岭县| 布尔津县| 建平县| 九江县| 绥滨县| 吐鲁番市| 云梦县| 于田县| 卢湾区| 济源市| 大城县| 双桥区| 南澳县| 鄂托克前旗| 惠来县| 垣曲县| 建昌县| 鹿泉市| 宜章县| 桃源县|