iReport使用入门
一、iReport?是什么
????iReport是一個能夠創(chuàng)建復(fù)雜報表的開源項目,并且它能調(diào)用JasperReports庫應(yīng)用于任何一種Java應(yīng)用程序。本身是分布式的且由符合GNU通用公共許可的百分之百純java編寫。
由于它豐富的圖形界面,你能夠很快的創(chuàng)建出任何一種你想要的報表。iReport能夠讓我們提高技術(shù)方面的信心,比如它能降低學(xué)習(xí)JasperReports的XML語法的難度,而且能夠為熟練的技術(shù)人員節(jié)省大量的時間并能開發(fā)出非常精細的報表。
?
二、iReport?的下載與安裝
JasperReport?的下載地址:http://jasperreports.sourceforge.net/index.html
iReport的下載地址:http://sourceforge.net/projects/ireport
可能有幾種不同的分類
iReport-x.x.x.zip?這是官方的zip格式的二進制文件。
iReport-x.x.x.tgz?這是官方的tar gz格式的二進制文件。
iReport-x-x-x-src.zip?這是官方的包含源代碼的zip格式的二進制文件。
x.x.x表明了iReport的版本號。每一種都包含必須使用的第三方的庫和程序及附加文件,例如模板和一些html格式的基礎(chǔ)教程。
?
三、iReport?的配置
iReport的初始化配置包括:設(shè)置所要查看運行后的文檔的格式;選擇語言;設(shè)置編譯后的文件目錄。我們要配置 iReport 必須運行剛剛安裝的 iReport。然后選擇菜單選項中工具選項(menu?Options → Tools.)。
首先出現(xiàn)如下圖的界面(圖1.1)。此選項卡是一些簡單常規(guī)的設(shè)置。
???????????????????????????????????????????????????????????????圖?1.1
這個選項卡(圖1.2)是用來設(shè)置編譯后的文件存儲目錄,默認的目錄會在iReport的根目錄。一般情況下是要指定一個有效的目錄來保存編譯文件。這個目錄也可以是加載報表源時的目錄。筆者的文件存儲目錄是?D:"J2EE"iReport?,以后所有的報表文件都將被保存在這個目錄下。
???????????????????????????????????????????????????????????????圖?1.2
這個選項卡(圖1.3)設(shè)置?iReport?編譯后用來預(yù)覽報表的外部程序。筆者這里只設(shè)定了?IE,其它沒有設(shè)定的編譯之后?iReport?會為你生成一個對應(yīng)格式的文件保存在上面設(shè)置的默認目錄下,但不會打開。
???????????????????????????????????????????????????????????????圖?1.3
?
四、創(chuàng)建?JDBC?連接
任何一種動態(tài)報表都需要一個數(shù)據(jù)源,iReport?支持任何一款關(guān)系型數(shù)據(jù)庫作為數(shù)據(jù)源。
首先我們來看一下怎么建立一個數(shù)據(jù)源的連接。點菜單(圖1.4),出現(xiàn)一個?Connections /Datasources?對話框。
?????????圖?1.4
???????????????????圖?1.5
筆者這里已經(jīng)創(chuàng)建了兩個數(shù)據(jù)源。如果你是第一次使用?iReport?工具來作報表的話,那么你就要首先來創(chuàng)建數(shù)據(jù)源的連接。點擊New?新建一個數(shù)據(jù)源連接。將出現(xiàn)(圖1.6)一個?Connections properties?對話框。這里有很多種數(shù)據(jù)源類型,我們程序員常用的只有?Database JDBC connection、XML file data source、JavaBeans set data source、EJBQL connection?這幾種。其它的一般程序員很少用得到的。(呵呵…..這是筆者個人的看法)
?????????????????????????????????????????????????圖?1.6
我們選擇?Database JDBC connection?后點擊?Next?出現(xiàn)一個數(shù)據(jù)源連接的配置屬性對話框(圖1.7)。以下是針對筆者的?Oracle?10?數(shù)據(jù)庫連接配置。
?????????????????????????????????? ??????????????圖?1.7
配置好后我們需要測試一下是否連接成功。點擊?Test?進行測試如出現(xiàn)?Connectin test successful?則表示連接成功(圖1.8)。
注意:這里有一個?Save password?復(fù)選框,如果你選種了此復(fù)選框,則它會將密碼保存到一個?.txt?文件里面,如果你的密碼不想被暴露話的話,建議不要選此復(fù)選框。
???????????????圖?1.8
創(chuàng)建一個連接后此連接后,筆者的?iReport?就有三個數(shù)據(jù)源了(圖1.9)。
????????????????????????????????????????????????????????圖?1.9
注意:我們創(chuàng)建數(shù)據(jù)源連接時一定要有數(shù)據(jù)庫連接驅(qū)動的支持。iReport?只為我們符帶了一個?MySQL?的驅(qū)動包,并且不定符合你的?MySQL?數(shù)據(jù)庫的版本。所以我們連接任何一種關(guān)系型數(shù)據(jù)庫時都要將驅(qū)動拷貝到?iReport?的安裝根目錄下的?lib?目錄里。
?
?
五、第一個簡單的報表
第一個報表我們就采用?iReport?本身的報表精靈向?qū)韯?chuàng)建一個簡單的。iReport Wizard?是一個用來一步步創(chuàng)建報表的工具。點擊(圖2.0)菜單檔案à報表清靈,將出現(xiàn)一個?iReport Wizard?對話框(圖2.1)。
???????????圖2.0
iReport Wizard?工具可以根據(jù)你以往的模版進行報表的創(chuàng)建。也可選擇你已經(jīng)配置好的數(shù)據(jù)庫連接作為此報表的數(shù)據(jù)源,然后編寫SQL語句或?qū)胍延械?span style="font-family:"Times New Roman"">SQL文件。即使你不會寫SQL語句也可以做出一個漂亮的報表出來,因為它有一個?Design…?按鈕(圖2.2),專門為一些不會寫SQL語句的人所設(shè)計的。
???????????????????????????????????????????????????????????????圖2.1
在此視圖中你可以選擇你要使用的表和表字段,并且它幫我們把表的關(guān)系給體現(xiàn)出來了。
???????????????????????????????????????????????????????????????圖?2.2
下一步需要選擇我們要在報表中顯示的字段(圖2.3)。
???????????????????????????????????????????????????????????????圖2.3
根據(jù)此向?qū)覀兛梢詣?chuàng)建四個組(事實它可以設(shè)置很多的組)。
???????????????????????????????????????????????????????????????圖2.4
向?qū)槲覀兲峁滋罪@示模版供我們選擇(圖2.5)。
???????????????????????????????????????????????????????????????圖2.5
最終它根據(jù)我們的設(shè)定生成了一份報表(圖2.6)。
???????????????????????????????????????????????????????????????圖2.6
所有的工作已經(jīng)全部完成,只需要執(zhí)行報表就可以了。點擊后面這個執(zhí)行動態(tài)報表將出來下圖(圖2.7)的報表結(jié)果。
???????????????????????????????????????????????????????????????圖2.7
?
如何支持中文。
這個報表的所有數(shù)據(jù)都是英文的,如果您的數(shù)據(jù)有中文的話,那么您還需要進行一步設(shè)定(圖2.8),要修改的地方有三個,1.Font Name?改成中國的字體。2.PDF Font Name?改成?STSong-Light。3.PDF Encoding?改成?UniGB-UCS2-H (Chinese Simplified)。就OK啦。
???????????????????????????????????圖2.8
?
上面我只做了一個簡單的報表,其實?iReport+JasperReport?最大的靚點就是設(shè)計可視化的圖表報表,下面是筆者做的一個簡單的圖形報表(圖2.9)。
????????????????????????????????????????????????????????圖2.9
?
六、圖形報表(餅圖)
新建一個chatReport?報表
編寫SQL語句(圖3.0)。查詢每個部門有多少個職員。
????????????????????????????????????????????????????????圖3.0
選擇工具欄中插入餅圖的快捷鍵(圖3.1)
????????????????????????????????????????????????????????圖3.1
出現(xiàn)一個圖形報表選擇向?qū)АN覀冞x擇第二個三維餅圖(圖3.2)。
???????????????????????????????????圖3.2
?
點擊OK之后,在報表的設(shè)計器中出現(xiàn)一個三維餅圖(圖3.3)。我們需要設(shè)置餅圖的一些屬性,通過右鍵?Chart Properties?來完成屬性的設(shè)定。
????????????????????????????????????????????????????????圖3.3
出現(xiàn)了?Chart Properties?對話框后,選擇?Chart Data?選項卡圖形報表的數(shù)據(jù),設(shè)置其數(shù)據(jù)來源。
| 對應(yīng)部門的職員的個數(shù) 部門名稱 ??????????????????????????????????????????????????? ?圖3.4 關(guān)閉設(shè)計視圖。然后選擇我們要預(yù)覽的格式(圖3.5)。 ??????????????????????????????????????????圖3.5 注意:在生成PDF預(yù)覽時,需要向?iReprot?的?lib?目錄下加入一個?iTextAsian.jar?的亞州語言包,用于處理亞州語言的亂碼的問題。iTextAsian.jar?現(xiàn)在很難下載得到了,如果你需要的話給我一個郵件,講明你所要的東西。 點擊工具欄的編譯運行,最終執(zhí)行報表的效果(圖3.6)。 ????????????????????????????????????????????????????????圖3.6 ?????? 七、一勞永益的解決中文的問題 前面提到過報表中的中文問題,上面給出的解決方案比較麻煩需要對每個字段進行設(shè)定,下面給出一個通用的設(shè)定,可以應(yīng)用到所有的字段,這樣我們只須做一次設(shè)定永久使用。 第一步:添加一個自定義的字體(圖3.7)。 ????????????????????????????圖?3.7 彈出一個添加自定義字體的對話框(圖3.8)。 ?????????????????????????????????????????????????圖3.8 點擊添加一個新的字體。要想中文不出現(xiàn)亂碼,則要跟我的配置一樣(圖3.9)。 ??????????????????????????????????????????圖3.9 配置已完生,以后在使用的時候只要選中字段然后右鍵屬性,在Font?選項卡中?Report Font?中選擇我的字體就OK了(圖4.0),不用像上面那樣子每次都要同時修改三個地方了。 ???????????????????????????????????圖4.0 ? 八、應(yīng)用程序調(diào)用JasperReport?報表 應(yīng)用程序包結(jié)構(gòu)(圖4.1)。 ??????????????圖4.1 Servlet?代碼: iReport?工具的lib目錄下的.jar?全部拷貝到工程下面。 ???????public?void?service(HttpServletRequest?request,?HttpServletResponse?response) 記住此應(yīng)用程序需要添加一些庫支持。最簡單的辦法就是把 運行程序,打開瀏覽器。 http://localhost:8080/reportdemo/index.jsp出現(xiàn)此頁面(圖4.2)。 ???????????????圖4.2 點擊生成報表。出現(xiàn)我們想要的報表(圖4.3)。 ???????????????????????????????????????????????????????????????圖4.3 ?????? ????大功告成。。 |
總結(jié)
以上是生活随笔為你收集整理的iReport使用入门的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kaminari分页插件样式
- 下一篇: 4. 计算机科学 (Kaggle项目拆解