非常全面的IReport的使用教程
簡介
iReport 是為JasperReports Library和JasperReports Server設(shè)計的報表可視化設(shè)計器。
iReport是一個能夠創(chuàng)建復(fù)雜報表的開源項目。它100%使用Java語言編寫。是目前全球最為流行的開源報表設(shè)計器。
由于它豐富的圖形界面,你能夠很快的創(chuàng)建出任何一種你想要的報表。
用于打印的數(shù)據(jù)可以通過多種方式獲取包括:JDBC, TableModels, JavaBeans, XML,Hibernate(支持HQL查詢語言), CSV等。
它支持多種輸出格式包括:PDF,RTF,XML,XLS,CSV,HTM。
安裝環(huán)境
本教程環(huán)境如下,如版本不同出現(xiàn)與本文內(nèi)容不合情況請自行百度~
版本
iReport:版本5.0.0
JDK環(huán)境:版本1.6,全名:jdk1.6.0_45,即下載jdk-6u45-windows-x64.exe
注意事項
需要本機/虛擬機的JDK環(huán)境變量設(shè)置為JDK1.6才能運行iReport,環(huán)境變量怎么設(shè)置應(yīng)該不必多說了吧,忘了的可以看我這篇博文:win7/win10下的jdk的安裝和環(huán)境變量的配置
環(huán)境變量配置好后如果還是打不開iReport,請重新啟動電腦
樓主不才,如有錯誤之處,請評論必虛心改之
百度云下載地址
鏈接: https://pan.baidu.com/s/140AioMEZi6N4cedYXl4sjw
提取碼: yujq
失效請聯(lián)系樓主
基本操作
新建
1.左上角文件——》new
- 一般選擇A4紙張,而且是豎的A4,根據(jù)實際情況選擇其他類型紙張大小
- 再選擇
Open this Template
打開此模板
2.對模板進行命名
- Repoet name:模板名
- Location:文件存放地址
- File:模板文件全路徑(Location\Repoet name.jrxml)
- 下一步
3.finish完成新建
頁面布局
1.打開模板可以看到這樣的視圖
- 紅框標出來的是頁邊距,和word中的頁邊距一樣,是內(nèi)容與紙張的距離
- Title:標題,僅在第一頁顯示一次
- Page Header:頁眉,每頁出現(xiàn),可用于放頁碼,創(chuàng)建人等信息,值可變
- Column Header:列頭部信息,每頁出現(xiàn),一般不用
- Detail:內(nèi)容信息(使用重點),可添加多個Detail,控件基本上放在Detail中,它會自動根據(jù)體內(nèi)的內(nèi)容大小進行擴展、分頁
- Column Footer:列底部信息,每頁出現(xiàn),一般用于統(tǒng)計列數(shù)據(jù)。
- Page Footer:頁腳,每頁出現(xiàn),可用于放頁碼,創(chuàng)建人等信息,值可變
- Last Page Footer:最終頁腳,最后一頁顯示,一般用于顯示編制人等信息
- Summary:總結(jié),最后一頁顯示,一般用于顯示所有頁面的統(tǒng)計
2.刪除和添加頁面布局
- 可以看到上方所解釋的布局在此處都有其顯示,灰色的代表這個布局不啟用
- 刪除布局:右鍵點擊一個啟用的布局——》Delete Band
- 添加布局:右鍵點擊一個可以添加的布局(一般添加Detail)——》Add Another
- Detail Band啟用布局:右鍵點擊一個未啟用的布局——》Add Band
style樣式
和前端的css一樣,為了樣式復(fù)用,減少繁瑣的樣式操作,每個樣式都可以繼承另一個樣式,繼承的樣式?jīng)]有本身樣式的優(yōu)先級高
中文支持必備
右鍵點擊Styles——》添加一個style名為china
- pdf font name:STSong-Light
- Pdf Embedded:√
- pdf Encoding:UniGB-UCS2-H
- default style:√
比較常用的屬性
- Padding and borders:設(shè)置內(nèi)邊距和邊框
- Font name:字體
- Size:字體大小
- Horizontal Alignment:水平方向所處位置
- Vertical Alignment:垂直方向所處位置
- Line Spacing:行距
- Blank when null:勾選后如果傳入的數(shù)據(jù)是空的,不會顯示null,而是空白
基礎(chǔ)控件
右上角有控件列表,使用只需要拖進布局視圖即可
Break:分頁符
其中的Page Break 表示在此之下建立一個新的分頁,相當于word的分頁符
舉例:
在第二頁1前放一個分頁符:
查看預(yù)覽效果:
分頁符后就是這一頁的結(jié)束,分頁優(yōu)先級高于detail自動分頁
Ellipse、Round Rectangle、Line、Rectangle:圖形
四個圖形控件:
- Ellipse:橢圓
- Round Rectangle:圓角方形
- Line:橫線
- Rectangle:方形
都可組合其他控件,但操作過復(fù)雜,不推薦
示例:
Static Text:靜態(tài)文本
靜態(tài)文本,不具備自擴展能力,意思是框子有多大,顯示的內(nèi)容就多大,多余的內(nèi)容不顯示
示例:
預(yù)覽:
Text Field:文本域
文本域
- 具備自擴展能力,不管框子多大,都會完整顯示
- 具備使用數(shù)據(jù)參數(shù)能力,使用方法:$F{導(dǎo)入的字段名}
文本域?qū)懛ǎ?/strong>
點擊屬性中的Text Field Experssion
可對文本域進行編輯
字符串需要放到""
中
- 字符串需要放到""中
- 可使用加號(+),進行字符串拼接
- 調(diào)用Paramters:$P{參數(shù)名}
- 調(diào)用Fields:$F{數(shù)據(jù)庫字段名}
- 調(diào)用Variables:$V{變量名}
- 可使用基礎(chǔ)運算,如三元運算
使用自擴展,需改變兩個屬性:
示例:
預(yù)覽:
Image:圖片
圖片,可選本地文件或者網(wǎng)絡(luò)URL,一般使用網(wǎng)絡(luò)URL
示例:
- Image Expression:就像文本域一樣使用,可從數(shù)據(jù)庫拿數(shù)據(jù)填充,放入圖片URL
- Scale Image:選擇Real size或者Real height會保持原圖的比例,選擇Retain Shape會隨著圖片框的大小改變圖片的大小
- Using Cache:啟用圖片緩存,可以看到URl內(nèi)的圖片樣子
預(yù)覽:
Barcode:條形碼
條形碼,一般選取Code128條形碼
- Code Expression:就像文本域一樣使用,可從數(shù)據(jù)庫拿數(shù)據(jù)填充,放入條形碼內(nèi)容
- Orientation:條形碼方向,none就是正方向,left就是把條形碼順時針轉(zhuǎn)90°,以此類推
- Text Position:條形碼內(nèi)容顯示,Bottom就是在條形碼下方顯示,None就是不顯示
- Module Width:條形碼的長度,是以倍數(shù)增加的長度
示例:
table 和 subreport之后介紹
連接數(shù)據(jù)庫-使用table與subreport
導(dǎo)入驅(qū)動
1.尋找驅(qū)動
以導(dǎo)入Oracle驅(qū)動為例,Mysql驅(qū)動iReport已存在
首先去能連入生產(chǎn)數(shù)據(jù)庫的項目看看,用的是哪個版本的驅(qū)動,然后從Maven倉庫中找到Oracle驅(qū)動的jar包
比如我這個版本的Oracle驅(qū)動
懶的找的童鞋去maven官網(wǎng)下個jar包:https://mvnrepository.com/artifact/com.oracle/ojdbc6/11.2.0.3
2.放入bin
把驅(qū)動包放到iReport的安裝目錄\iReport-5.0.0\bin
下
3.點擊左上角的工具——》選項——》Classpath——》Add JAR
4.找到剛剛放入bin的驅(qū)動包添加進去,確定,驅(qū)動添加完成
創(chuàng)建連接
1.點擊此圖標
2.點擊new——》Database JDBC connection
3.選擇剛剛導(dǎo)入的oracle驅(qū)動,URL、用戶名、密碼自行填寫
4.點擊Test,連接成功則Save,失敗則是某個環(huán)節(jié)出問題了
5.選擇此連接,創(chuàng)建連接成功
編輯sql語句
有了連接,我們就需要查詢數(shù)據(jù)庫的sql語句了,這里分為主查詢和子查詢,都可要參數(shù)可不要參數(shù)
主查詢
1.點擊上方的按鈕
2.添加sql
我連接的是本地oracle,查的表是一張測試用戶表
可以點擊 Read Fields 查看查詢到的字段
這個sql是個全查sql且沒有條件,我們給它加一個name條件
3.添加條件和其參數(shù)
name是String類型的,新建的參數(shù)也需要此類型
點擊ok,完成一個帶條件的主查詢sql語句
4.測試主查詢
主查詢一般用于整體布局中的參數(shù)填入,也就是可以把剛剛查出來的那幾個字段的值插入到我們設(shè)計的頁面中
可以從Fields看到可以選擇的字段名
用Text Field來插入字段值
預(yù)覽:
因為需要傳入?yún)?shù),所以預(yù)覽需要一個name的條件參數(shù)值
輸入?yún)?shù)后,可得到預(yù)覽頁面
子查詢(較難)
很多時候并不是一個主查詢的一個sql語句就能查到所有想要的數(shù)值,那么可以新建多個子查詢
子查詢同樣可以通過條件參數(shù)來查詢,可以新建一個條件參數(shù),也可以使用主查詢同名的條件參數(shù)
1.新建一個dataset
一般是單數(shù)據(jù)源,所以選擇創(chuàng)建空的dataset
2.設(shè)置sql
還是熟悉的界面,還是熟悉的操作,傳入的參數(shù)名取和主查詢一樣的名字——name,這樣只需要輸入一次name的值子查詢也可查詢完畢
特別注意的是,記得給字段取別名,不要都叫一樣的名字,不僅自己容易混淆,程序也容易出錯
3.使用子查詢——table
例子中的主查詢返回值只有0個或1個對象,而子查詢可以返回多個對象(列表),這時候可以使用table了
拖一個table到一個單獨的detail
中,這樣detail會自適應(yīng)table
選擇table所用的dataset,剛剛的創(chuàng)建t1
選擇需要顯示的字段,一般全選
選擇連接的數(shù)據(jù)源,一般是一個數(shù)據(jù)源,也就是創(chuàng)建連接
中的那個數(shù)據(jù)源
如果是第一次創(chuàng)建table,勾上這個,會為表頭\表尾、表列頭\表列尾、表邊框、表內(nèi)容各創(chuàng)建一個style
表介紹
Table Header\Table Footer:表頭\表尾Column Header\Column Footer:表列頭\表列尾Detail:表內(nèi)容
style介紹
table:表整體(相當于圍了一圈邊框)table_TH:表頭\表尾(第一行/最后一行)table_CH:表列頭\表列尾(第二行/倒二行)table_TD:表內(nèi)容(除此之外的行)
最終是這樣展現(xiàn)的
終極丑有木有?明明只想要最原始的表格就好了,太花花綠綠了
刪除除了有字段的所有其他行
將Table、Column Header、嵌入的Text Field、Static Text的樣式全部選擇為table_TD,再拉長Text Field、Static Text占據(jù)列長
此時表就創(chuàng)建好了,這個表是根據(jù)子查詢dataset t1的數(shù)據(jù)來填入信息的,t1是需要傳入一個參數(shù)的,這個參數(shù)的值我們需要去指定,右鍵Table——》Edit Table datasource
t1子查詢需要一個name參數(shù)的值,這個值可以從輸入?yún)?shù)(如 P N A M E ) 取 , 也 可 以 自 己 去 設(shè) 定 ( 如 " c i c h e n g " ) , 還 可 以 從 主 查 詢 的 字 段 值 中 取 ( 如 P{NAME})取,也可以自己去設(shè)定(如"cicheng"),還可以從主查詢的字段值中取(如 PNAME)取,也可以自己去設(shè)定(如"cicheng"),還可以從主查詢的字段值中?。ㄈ鏔{NAME})
布局:
預(yù)覽:
表格這個屬性記得改成這個:
可以達到?jīng)]數(shù)據(jù)也可以有表頭的效果
子模板subreport
相當于再新建了一個模板,但主模板包含這個子模板
子模板本身也具備所有主模板的特性,擁有主查詢和子查詢,層層套娃
示例暫且先鴿了,因為以上內(nèi)容足以完成模板的布局與樣式,之后會繼續(xù)更新~
本人原創(chuàng)內(nèi)容,如需轉(zhuǎn)載,請聯(lián)系一下我~
到此這篇關(guān)于非常全面的IReport的使用的文章就介紹到這了,更多相關(guān)IReport使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot結(jié)合Vue實現(xiàn)投票系統(tǒng)過程詳解
這篇文章主要介紹了SpringBoot+Vue框架實現(xiàn)投票功能的項目系統(tǒng),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-09-09HashMap底層數(shù)據(jù)結(jié)構(gòu)詳細解析
這篇文章主要介紹了HashMap底層數(shù)據(jù)結(jié)構(gòu)詳細解析,HashMap作為開發(fā)中常用的數(shù)據(jù)結(jié)構(gòu),也是面試中經(jīng)常被問的知識點,因此作為開發(fā)者應(yīng)該盡可能多的理解其底層的數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下2023-11-11Java getResource()如何獲取class文件目錄位置
這篇文章主要介紹了Java getResource()如何獲取class文件目錄位置,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12關(guān)于SpringBoot+Mybatis報MapperScan.factoryBean()問題
解決SpringBoot+Mybatis中的MapperScan.factoryBean()問題,讓你的項目運行更順暢!本指南將帶你一步步解決這個問題,讓你的開發(fā)過程更加高效,不要錯過這個實用指南,快來一探究竟吧!2024-02-02Java開發(fā)者結(jié)合Node.js編程入門教程
這篇文章主要介紹了Java開發(fā)者結(jié)合Node.js編程入門教程,我將先向您展示如何使用Java EE創(chuàng)建一個簡單的Rest服務(wù)來讀取 MongoDB數(shù)據(jù)庫。然后我會用node.js來實現(xiàn)相同的功能,需要的朋友可以參考下2014-09-09