1. 引入jar包? ?pom.xml文件添加依賴
2.??注冊XmlViewResolver逝慧,用于iReport?&?JasperReports報表生成 讀取reports.xml配置文件
3. reports.xml? 注入報表模板
4. 報表導(dǎo)出Controller
5. 對了最后再講一下jasperreport studio如何使用
在接下來的教程中,我們將實(shí)現(xiàn)一個簡單的JasperReports示例捌浩,展現(xiàn)其基本的開發(fā)放刨、使用流程。文章很長尸饺,不過是以圖片居多进统,文字并不多。
? ? ? ? 實(shí)例中使用最新的Jasper Studio5.2進(jìn)行報表設(shè)計(下載地址:http://sourceforge.net/projects/jasperstudio/files/JaspersoftStudio-5.1.0/)浪听,數(shù)據(jù)源使用了mysql自帶的示例數(shù)據(jù)庫world中的city表螟碎。報表中嵌入了一個3D的餅圖,用一個變量使得程序運(yùn)行的時候可以動態(tài)指定主報表的查詢語句馋辈。
Jasper Studio是基于Eclipse的報表設(shè)計工具(不熟悉Eclipse的看官先去熟悉一下基本知識吧)抚芦,默認(rèn)工作區(qū)設(shè)置為當(dāng)前用戶主目錄下的JaspersoftWorkspace文件夾,并且不可更改。首先叉抡,我們創(chuàng)建一個報表工程尔崔,本例中命名為DemoProject,然后創(chuàng)建一張新的報表(File --> New–->Jasper Report)褥民,就會出現(xiàn)類似下圖所示的窗口讓我們選擇一個模板季春。
?此例我們選Coffee模板,然后點(diǎn)Next消返。在接下來的頁面里载弄,我們給報表模板起個名字(Demo1.jrxml)并放在DemoProject的根目錄下,然后點(diǎn)Next撵颊,于是進(jìn)入了數(shù)據(jù)源選擇界面:
數(shù)據(jù)源是填充報表的關(guān)鍵宇攻,我們必須制定一個數(shù)據(jù)適配器(Data Adapter),此時我們有三種選擇:選擇“OneEmpty Record - Empty rows”倡勇,這樣我們就可以專注于報表的設(shè)計逞刷,而暫時不指定數(shù)據(jù)源,創(chuàng)建完報表之后妻熊,我們隨時可以制定別的數(shù)據(jù)源夸浅。
選擇“SampleDB - Database JBDC Connection”,這是Jaspersoft Studio安裝時提供的一個示例數(shù)據(jù)庫扔役。
點(diǎn)擊“New”按鈕創(chuàng)建一個新的數(shù)據(jù)源帆喇。這正是本例要采用的方式,我們將創(chuàng)建一個連接到本機(jī)MySql數(shù)據(jù)庫的world的數(shù)據(jù)源亿胸。
首先點(diǎn)擊“New”坯钦,在彈出的向?qū)ы撝羞x擇“Database JDBC Connection”,然后點(diǎn)“Next”彈出下圖所示的頁面:
配置好基本的數(shù)據(jù)庫連接信息侈玄,點(diǎn)擊“Test”測試通過之后葫笼,一個數(shù)據(jù)源就配置好了,我們點(diǎn)擊“Finish”結(jié)束配置拗馒。初次配置MySql數(shù)據(jù)源需要在Driver Classpath頁面指定MySql驅(qū)動包的路徑:
配置并選擇數(shù)據(jù)適配器之后,我們需要指定數(shù)據(jù)查詢的語句溯街,該語句查詢出的字段將直接用于報表中的數(shù)據(jù)字段诱桂。本例中我們選出city表中的所有字段:
點(diǎn)擊“Next”之后,接下來我們需要選擇本報表中用到的字段呈昔,本例把city表的所有字段都加入報表:
點(diǎn)擊“Next”之后挥等,我們可以選擇用來分組的字段奖地,本例中我們選擇用國家(CountryCode)來分組:
這是Eclipse工作區(qū)經(jīng)典的布局視圖嘁酿,中間部分是報表設(shè)計視圖蚁堤,右側(cè)的調(diào)色板(Palette)包含了一些報表元素茁计,我們可以方便地把它們拖拽到設(shè)計視圖中的報表模板上济瓢,然后根據(jù)需要調(diào)整元素的大小、位置和配置信息等践付。本例中我們將添加一個3D餅狀圖全封,這是一個Chart元素,具體方法將在下文介紹榄檬。
? ? ? ??左下角的大綱(Outline)視圖包含了當(dāng)前編輯的報表的所有基礎(chǔ)信息卜范,包括一些固定區(qū)域的樣式(Style)、報表參數(shù)(Parameters)鹿榜、字段(Fields)等海雪,我們可以方便地查看和修改。大綱視圖中還包括報表的一些固定面板的直接鏈接舱殿,比如標(biāo)頭(Title)面板奥裸,細(xì)節(jié)(Detail)面板等。點(diǎn)擊一個面板的鏈接之后沪袭,我們可以在右側(cè)的屬性視圖(Properties)中查看和修改該面板對應(yīng)的一些基本屬性湾宙,如高度、布局枝恋。
? ? ? ??注意:從大綱視圖中我們發(fā)現(xiàn)创倔,一個報表包含很多固定的面板。在每一個報表中標(biāo)題和匯總(summary)面板只打印一次焚碌,頁眉(header)和頁腳(footer)在報表的每一頁都會獨(dú)立打印畦攘。我們可以直接在field中新增、刪除字段十电,還可以將字段拖拽到報表的細(xì)節(jié)面板中知押,Jasper Studio將會為我們創(chuàng)建一個文本字段(text field)元素,并設(shè)置其值為對應(yīng)字段的數(shù)據(jù)鹃骂。文本字段不應(yīng)出現(xiàn)在除細(xì)節(jié)面板之外的其它地方台盯。
? ? ? ??下面,我們可以預(yù)覽報表了畏线。在JasperSoftStudio5.2中静盅,我們切換到預(yù)覽(Preview)視圖(點(diǎn)擊報表設(shè)計視圖左下角的“Preview“標(biāo)簽),即可編譯寝殴、生成蒿叠、并在報表設(shè)計視圖展示報表。至此蚣常,一個簡單的報表就展示在我們面前了:
我們可以看到市咽,最終的報表正如我們在報表設(shè)計器中看到的效果一樣,只不過Detail面板會根據(jù)數(shù)據(jù)量進(jìn)行擴(kuò)展抵蚊,數(shù)據(jù)源每查詢出一條記錄施绎,Detail面板就增加一行溯革。點(diǎn)擊報表預(yù)覽視圖右上角的Export按鈕,我們還可以選擇使用多種文件形式導(dǎo)出報表谷醉,包括pdf文件致稀、網(wǎng)頁文件、xls文件孤紧、cvs文件豺裆、甚至ppt等。
通過在Outline視圖任意節(jié)點(diǎn)右鍵菜單選擇“Dataset and Query…”号显,或在Outline視圖選中報表根節(jié)點(diǎn)臭猜,在右側(cè)Properties視圖選擇“Editquery, filter and sort option”菜單均可打開“Dataset and Query”窗口,在這里我們可以修改數(shù)據(jù)源使用的查詢語句押蚤,改變或者刪改報表中的字段(注意修改查詢語句之后蔑歌,需要點(diǎn)“Read Fields”重新讀取字段信息)