1.?alterdesign
該例子演示了報表編譯后,在報表展現的時候如何動態的控制其中的元素
比如讓某一個矩形變色或其他
2.?antcompile
?演示如何讓?ant?來編譯
3.?chart
?演示了如何在報表中添加圖像,JasperReport是用Scriptlet的方式
往報表中添加圖像,而Scriptlet是調用也是開源的jfreechart的Api來
生成圖形,去jfreechart看一下,該工具能的圖形生成能力也很強
4.?datasource
?演示了如何在報表中使用各種數據源,能夠使用beanarray
beancollection,也可以用自定義的數據源,只要繼承了JRDataSource的
兩個接口,這個能給用戶提供非常大的靈活性,報表的數據不用局限于一
條Sql語句,也可以使用存儲過程,對生成報表中的數據也可以排序,二
次檢索,等等
5.?fonts
?各種字體的演示
6.?horizontal
?演示了水平分欄的報表,演示報表中分了三欄,其中還用到了
textFieldExpression,就像if語句的效果來選擇輸出的內容
7.?hyperlink
?演示了各種樣式的鏈接
8 .?images?
演示了如何在報表中加入圖像以及圖像的顯示方式
9.?jasper
?演示了分組分欄的報表,演示中用了2次group
10.?jcharts?
演示了調用另一個開源的API?jcharts來往報表中加入分析圖形,原理同
上chart,如果jfreechart都還不能滿足你分析圖形的要求,那到jcharts
里找找看吧,說不定有
11.?landscape
?演示橫向的報表
12.?nopagebreak
?演示比如在IE中不分頁的方式打印出報表的內容,通過這個演示也可以
了解報表輸出如何配置參數
13.?noreport?
演示了如何直接通過java程序生成JasperPrint對象來輸出
14.?noxmldesign?
演示了如何直接通過java程序生成JasperDesign對象來動態的生成報
表,根據這個例子,用戶可以作出自定義選列的報表,當然比較麻煩,
而且肯定自己要補充他的API庫
(JasperReport真是強大啊,呵呵)?
15.?pdfencrypt
?演示了pdf的輸出方式,可以給pdf文件加密碼,其實就是pdf輸出方式的
參數配置,具體有那些參數可配置,去看看API吧
16.?printservice
演示了如何直接打印報表
17.?query?
演示了如何讓查詢的sql動態起來,比如你可以通過一個Jsp頁面傳
報表的sql的where條件,order條件,甚至整個sql語句
18.?rotation?
演示了文字縱向顯示的報表
19.?scriptlet
?演示了如何繼承JRDefaultScriptlet,并加入自己的處理語句,這個功能
可是很強大的哦,看看這些接口
beforeReportInit()?afterReportInit()?beforePageInit()
afterPageInit()?beforeColumnInit()?afterColumnInit()?
beforeGroupInit(String?groupName)
afterGroupInit(String?groupName)?
看看這些名字就知道你能完成那些功能,比如顯示一列數據后,馬上跟
上該列數據的分析圖形,當然你也可以加上自己的方法并在報表中調用
20.?shapes?
演示了JasperReport中自帶的圖形,及能配置的參數
當然你也能繼承或者覆寫JasperReport中的Api生成你要的圖形,
21.?stretch?
演示了如何處理報表中數據拉伸以及帶來周圍的線及框的拉伸,
你能了解到雖然黑框式表格不是JasperReport中缺省的展現方式,
但在JasperReport中不難實現
22.?subreport?
演示了子報表,還告訴你一個報表中可以有n個子報表,子報表中還可以
嵌套子報表
23.?tableofcontents?
演示了如何生成一個有目錄的,復雜的報表
24.?unicode?
演示了各種?字符編碼
25.?webapp?
演示了如何把報表放到一個JavaWeb項目中,可以用Jsp?Servlet
applet,筆者做了一個有參數頁面,可以選擇html?pdf?applet
項目中學到的一些jasperReport的東東,先說點基礎的概念吧!
????????從
http://jasperforge.org/
這個網址就可以得到ireport+jasperReport,注意下載iReport和jasperReport的版本必須一致。我們所說的報表指的是JasperReport,iReport只是jasperReport的一個可視化的開發工具,JasperReport通過讀取xml文件生成報表,分為三個部分:
編寫xml文件也就是jrxml文件,讀取并編譯jrxml--->jasper文件,填充報表。
而iReport只是幫我們完成了一個可視化的編寫jrxml文件,之后在我后面的文章中還會看到直接使用jasperReport的JasperDesign設計器也可以構造出一個沒有jrxml文件的復雜報表。當然iReport這個工具還給我們提供了不少優秀的功能,編譯、預覽、復雜報表的設計。
基本設置
????????打開iReport的“Options” -“ 選項“--"General",默認的中文好像并不是我們想象的那樣好看,建議使用english。
"Compiler"標簽的Default Compilation Directory 設置一個你自己的路徑,也可以不設置,這個主要是存放編譯好的jasper文件的路徑的,筆者不太喜歡文件的亂存放。
"External Programs" 選擇使用什么樣的程序瀏覽報表,默認是使用iReport自身的JRViewer Previwer預覽的,我們可以指定自己的pdf,html等其它的預覽工具。
數據源設置
????????將數據庫使用的jdbc驅動包復制到iReport安裝路徑的lib文件夾下,新建一個connections/DataSource
JaspreReport支持很多中數據源之后在詳細介紹每一種數據源的使用
PDF報表的中文處理
jasperreport支持中文依賴iText.jar
報表設計時將字體設計為:
????????網上找一些這方面的資料很容易就可以利用報表向導做一個簡單的報表,
http://www.blogjava.net/fastunit/archive/2008/01/16/175687.html
這位哥們寫的就很不錯,截圖都有了
http://jasperreports.sourceforge.net/api/index.html
這是jasperReport的api地址,大家可以利用它的源碼自己生成api
?
?
JasperReport有三個域用來存放、展示數據,Parameter、Field、Variables,這次說說這三個吧!
Report Parameters
JasperReport 報表的參數是最為一個object類型的參數傳遞的,通常我們在jrxml文件中會這樣定義

顧名思義,參數是用來傳遞給報表的,通常我們會動態的傳遞一個參數給報表作為報表的標題,傳遞給自報表一個參數用來作為自報表查詢的條件等等。
jasperReport內置了幾個有用的參數:
REPORT_SCRIPTLET引用外部的scriptlet,
REPORT_LOCALE
引用國際化preperty文件使用的,
REPORT_CONNECTION
傳遞報表JDBC連接參數使用的等等。






程序運行的時候就會動態的賦值給ReportTitle這個參數
下面這個是報表運行時需要的connection參數,是動態傳遞給子報表的

我們在程序運行的時候的時候可以把一個打開的連接傳給REPORT_CONNECTION參數,

Report Field
field是用來展現數據的域,也是最常用的一個,采用JDBC時iReport可以在我們寫入SQL時自動檢測到所有的field,有時我們需要自己手動建立一些field,這個字段沒有什么好說的,我們可以在iReport設置它的各種屬性。以后碰到的時候在說。
Report Variables
提起Variables不能不提expression,report expression是jasperReport一個非常實用的組件,它可以用來執行各種計算,修飾各個字段的數據。如:








????????報表變量是建立在表達式上的一個特殊的用來簡化報表設計,一個變量可以執行內置類型的計算以及相應表達式,如:總數,總和、平均數、最低值、最高值、差額等等。





JasperReport內置了一些變量???
PAGE_NUMBER 頁數
COLUMN_NUMBER 列數
REPORT_COUNT 報表總數
PAGE_COUNT? 當前頁數
COLUMN_COUNT 列總數
值得一提的是JasperReport還有一個比較強大的功能就是parameter/field/variables都支持html語言
設置Markup為HTML時就可以在Text Field Expression 中寫入html標記了

當報表預覽的時候就可以直接看到html的效果了
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
