報表工具之JasperReports+iReport(4)

chszs發表於2007-01-31
版權宣告:本文為博主chszs的原創文章,未經博主允許不得轉載。 https://blog.csdn.net/chszs/article/details/1499196

 報表工具之JasperReports+iReport(4)

Report Structure 報告的結構
本章描述報告的結構,可用的report物件和它們的屬性。這基本上是JasperReports的快速參考。
1、Expressions 表示式
表示式是JasperReports的核心特徵。它是一個重要的機制,允許操縱和顯示報告資料,執行各種計算,自定義報告的外觀和報告物件的可視性。
1)一個典型的表示式
$F{LastName} + ” ” + $F{LastName}
一個JasperReports的表示式是以Java表示式為基礎的,再加上一些附加的語法,它允許引用引數、變數和欄位等。
比如說要引用一個名叫DA他的引數時,語法應為$P{PARAM_NAME}。
對變數和欄位來說,其引用語法分別為$V{VAR_NAME}和$F{FIELD_NAME}。
注意:在JasperReports的groovy指令碼語言中,也同樣可以用$F,$P,$V引用引數、變數和欄位。
2)表示式的語法
(1)$F{FIELD}  引用名為FIELD的欄位;
(2)$V{VAR}    引用名為VAR的變數;
(3)$P{PARAM}  引用名為PARAM的引數;
(4)$P!{PARAM} 引用名為PARAM的引數;這個特殊的語法僅能用於report的查詢中。它允許插入引數的內容到查詢字串中。例如,它能被用於建立一個帶通過引數來指定WHERE條件的動態查詢。
$R{keyName}     在resource bundle中檢索帶keyName關鍵字的字串。
注意:表示式是用Java或Groovy寫成的,這意外著可以用Java強大的功能,如呼叫方法,允許構建無限複雜的表示式。還要注意,表示式的結果總是一個物件。
3)更多的表示式
(1)new Integer(Math.max($V{Price1},$V{Price2}))
(2)(new SimpleDateFormat(“dd/MM/yyyy”)).format($F{OrderDate})
(3)$F{SpecialOffer}.booleanValue()? $F{SpecialPrice} : $F{Price}
2、內建的函式
JasperReports提供了一套內建的函式用於report表示式中。這些函式儘管是內建的工具,還是可以在普通操作中執行它。
注意:目前這套函式很有限,在未來會得到擴充套件。
1)例:使用內建函式
msg(“Total cost is {0}”, $F{TOTAL})
msg(“Matched {0} products out of {1}”, $F{MATCHED}, $P{TOTAL})
2)內建的函式
(1)String str(String key);
從和report相聯絡的resource bundle中得到給出的key的一個字串。這個函式的功能和使用$R{key}語法等價。
(2)String msg(String pattern, Object arg0);
建立一個帶給定的pattern和給定引數來指定其格式的java.util.MessageFormat物件。
(3)String msg(String pattern, Object arg0, Object arg1);
同上;
(4)String msg(String pattern, Object arg0, Object arg1, Object arg2);
同上。
3、Report 報告
Report是表現為報告模板的根物件。在報告執行期間,report模板和資料組合成最終的文件。
報告的屬性有:
(1)Report Name 報告名;
(2)Units 報告的單位;有:畫素Pixels,毫米Millimeters,釐米Centimeters和英寸Inches。
(3)Language 報告表示式使用的語言;目前有Java和Groovy兩種。
(4)Orientation 頁的方向;其可能值為水平Protrait和縱向Landscape。
(5)Page Width 以報告單位指定的頁寬;
(6)Page Height 以報告單位指定的頁高;
(7)Page Size 報告的尺寸,即為page width和page height。
(8)Left Margin 以報告單位指定的左邊頁邊距;
(9)Right Margin 以報告單位指定的右邊頁邊距;
(10)Top Margin 以報告單位指定的頂部頁邊距;
(11)Bottom Margin 以報告單位指定的底部頁邊距;
(12)Column Count 報告中的列數;
(13)Column Spacing 以報告單位指定的列邊距;
(14)Column Width 以報告單位指定的列寬;
(15)Print Order 填充列的順序;有垂直Vertical和水平Horizontal兩種。
(16)Float Column Footer 浮動列腳,指出是否在列底部或明細表最後或組腳進行列印;
(17)Default Font 預設字型;
(18)Default Style 預設風格;
(19)Scriptlet Class 指令碼類,它必須是JRAbstractScriptlet類的子類。如果省略,將建立一個JRDefaultScriptlet的例項。
(20)Summary New Page 新頁的概要;
(21)Title New Page 新頁的標題;
(22)When No Data Print 無資料時的列印,有三個選擇:No Pages 表示0頁;Blank Page 空白頁;All Sections No Detail 除了detail section,其它的都列印。
(23)Query 查詢,用來檢索資料到報告中。
(24)Query Language 查詢語言,有五個值:SQL 用於JDBC資料來源的查詢語言;HBM Hibernate用於Hibernate資料來源的查詢語言;XPath 用於XML資料來源的查詢語言;EJBQL用於支援Java持久層(Persistence)API的資料來源的查詢語言;MDX 用於Mondrian資料來源的查詢語言。
(25)Imports java輸入的列表,例如:java.util.*和java.text.SimpleDateFormat格式。用於簡化report的表示式。
(26)Resource Bundle 為report提供了本地的系列字串。在報告中,本地字串能用$R{key}引用。
(27)When Resource Missing Print 允許自定義引擎在resource bundle中處理丟失的resource。有4種選擇:Null 丟失的resource不列印;Empty 丟失的resource為空;Key 用$R{key}指定的key來列印; Error 用錯誤來中斷報告的執行。
4、Styles 風格
一個report可以定義大量的風格。一旦定義了,它們能和report物件聯絡起來,為了給各種可視檢視提供基本的配置。report允許用模組化的方式來定義模組的風格。
風格有相關聯的條件風格。條件風格允許當其表示式為真時改變風格。
1)風格的屬性有:
(1)Name 風格名;
(2)Parent Style 父風格;
(3)Foreground 前景色;
(4)Background 背景色;
(5)Mode 方式,決定是否帶透明度;
(6)Pen 畫筆 有6種選擇:None 無線;1 Point 正常寬度的線;2 Point 中等寬度的線;4 Point 粗線;Dotted 虛線;Thin 細線。
(7)Fill 填充;決定對物件進行填充的模式;
(8)Box 指定盒子的屬性,如邊框型別,邊框顏色,是否填充。
(9)Horizontal Alignment 水平排列;有3種選擇:Left 左;Center 中;Right 右。
(10)Vertical Alignment 垂直排列;有3種選擇:Top 頂;Middle 中;Bottom 底。
(11)Scale 比例;指定影像的比例,有3種選擇:Clip 尺寸不適合時,多餘部分省略;Fill Frame 影像按比例填充進Image物件中;Retain Shape 保留原形狀進行填充。
(12)Radius 指定矩形邊框倒角的弧度;
(13)Pattern 用Text Field表示式的值來指定樣式;其日期型別的值用java.text.SimpleDataFormat類來定義;其數值型的值用java.text.DecimalFormat來定義。
(14)Blank When Null 當Text Field表示式的值為null時顯示空白;
(15)Line Spacing 線距;有3種選擇:Single:單倍線距;1 and 1/2:1.5倍線距;Double:雙倍線距。
(16)Rotation 旋轉;有3種選擇:None 不旋轉;Left 左旋180度;Right 右旋180度。
(17)Styled Text 是一個標誌位,用來指定是否text物件包含了已定義風格或規則的text。
(18)Font Name 字型名;
(19)Font Size 字型的尺寸;
(20)Bold 粗體;
(21)Italic 斜體;
(22)Underline 下劃線;
(23)Strike Through 通過標準位來取消;
(24)PDF Font Name:PDF字型名;
(25)PDF Encoding:PDF編碼;
(26)PDF Embedded是一個標誌位,指定是否PDF字型應該嵌入到文件中。
2)條件風格的屬性:
和上面僅有一點點的不同。其不同的屬性為:
Condition Expression 條件表示式;是一個布林型的表示式,用於判斷是否應用條件表示式。
5、Section Properties 節屬性
Section的種類前面已經講了,這裡只是補充講述它的屬性:
(1)Height 以報告的單位指定的section的高度;
(2)Print When Expression 是一個布林表示式,決定是否列印本Section;
(3)Split Allowed 一個標誌位,指示當Section超過當前頁面的尺寸時,是否允許分割它。如果為真,當前Section將遷移到下一頁。注意:如果Section在下一頁也不適合時,則不管標誌位值如何,都會分割它。
6、Groups 組
一個report可以定義大量的組。組表示決定帶相關資料的可視組的表示式名。一旦宣告後,組能在報告任意地方使用。
一個資料組用一個表示式組來識別。
注意:組機制不能完成來自於資料來源資料的任何排序。如果想要有序的資料,必須把資料來源的資料進行先排序處理。
組屬性:
(1)Name 組名;用於引用組。
(2)Expression 表示式;決定report資料的組;
(3)Min Height To Start New Page 開始新頁的最小高度;
(4)Reprint Header On Each Page 一個標誌位,指示在每一頁的開始處是否重新列印組頭;
(5)Reset Page Number 重設頁數,一個標誌位;在組頭在新頁開始處列印時,是否重新設定頁數;
(6)Start New Column 一個標誌位,是否在新列中總是列印組頭;
(7)Start New Page 一個標誌位,是否在新頁中總是列印組頭;


相關文章