IReport報(bào)表制作概述_第1頁
IReport報(bào)表制作概述_第2頁
IReport報(bào)表制作概述_第3頁
IReport報(bào)表制作概述_第4頁
IReport報(bào)表制作概述_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

本文格式為Word版,下載可任意編輯——IReport報(bào)表制作概述IReport制作報(bào)表

一、啟動(dòng)iReport后,點(diǎn)擊菜單‖檔案‖–―開啟新檔‖(見圖1),

彈出窗口“Reportproperties〞。

圖1

二、在窗口―Reportproperties‖中可定義報(bào)表的名稱、尺寸、定

位及報(bào)表邊界值等屬性(見圖2)。―定位‖下拉列表中包含兩個(gè)選項(xiàng)“Portrait〞和“Landscape〞,其中Portrait代表縱向報(bào)表,Landscape代表橫向報(bào)表),下面以制作‖歸檔文件目錄‖為例子來介紹如何制作報(bào)表。

圖2

三、定義報(bào)表名稱及定位等屬性后,點(diǎn)擊“OK〞按鈕系統(tǒng)彈出報(bào)表

設(shè)計(jì)的主窗體。在窗體的左下方點(diǎn)擊右鍵,彈出菜單“欄的屬性〞(見圖3)。

圖3

四、選擇該菜單,在彈出窗體中設(shè)置各個(gè)欄的高度(見圖4)。設(shè)

置方法如下:選中某個(gè)欄后輸入高度值,點(diǎn)擊“Apply〞按鈕。對(duì)不需要顯示的欄設(shè)置其高度值為“0〞即可,注意:檔案的報(bào)表最常用的欄目為:columnHeader、detail、columnFooter。

圖4

五、在上方選取‖靜態(tài)字段‖工具(T圖標(biāo)),再在‖columnHeader‖欄中

畫出來(見圖5),以同樣的方法增加其它所有靜態(tài)的文字。columnHeader欄里面的圖表、文字一頁只會(huì)顯示一次,Detail欄中的會(huì)根據(jù)條件循環(huán)顯示,直到頁面不夠畫才換一頁顯示。

圖5

六、右鍵單擊畫出的靜態(tài)字段框選‖屬性‖,在彈出的對(duì)話框中(見

圖6)設(shè)置其它屬性:Font選項(xiàng)卡中設(shè)置字體的相關(guān)屬性。(1)在FontName選字體;(2)Size選字體大小;

(3)PDFFontName設(shè)置或選擇相關(guān)的字段,注意假使在Font

Name選的不是宋體,而是其它字體時(shí),需要通過復(fù)制粘貼功能把相應(yīng)的字體替換為下表中相應(yīng)的字體,字體對(duì)照表如下:

字體名稱宋體方正舒體方正姚體字體名字STSong-LightFZSTK.TTFFZYTK.TTF仿宋體黑體華文彩云華文細(xì)黑華文新魏華文行楷華文中宋楷體隸書宋體-方正超大字符集幼圓simfang.ttfsimhei.ttfSTCAIYUN.TTFSTFANGSO.TTFSTXINWEI.TTFSTXINGKA.TTFSTZHONGS.TTFsimkai.ttfSIMLI.TTFSURSONG.TTFSIMYOU.TTF(4)LineSpacing中設(shè)置行間距;

(5)Align和VerticalAlign分別代表靜態(tài)框中的文字的水平

對(duì)齊和縱向?qū)R;

(6)Rotation中設(shè)置文字的顯示方向;

(7)復(fù)選框―PDFEmbedded‖勾上,PDFCoding選

UniGB-UCS2-H(ChineseSimplified),假使字體選擇不是宋體時(shí)需要選擇Identity-H(Unicodewithhorizontalwriting);

(8)StaticText中可以更改靜態(tài)文字(雙擊框也可以更改);(9)Border中是設(shè)置該屬性的邊框。

圖6

七、在主窗體的“Library〞中設(shè)置“Field〞和變量(見圖7)。右

鍵點(diǎn)“Field〞選“添加〞–“Field〞,在對(duì)話框中輸入Field的Name(名字)和Description(描述—路徑值)。Name(名字)的值可以為任意字符,Description的值為系統(tǒng)中某字段的名稱或者XML文件中的路徑。統(tǒng)計(jì)報(bào)表中Description的值為某個(gè)字段在XML文件中的路徑,在其它類型報(bào)表中Description的值為檔案系統(tǒng)中某字段的名稱,除了數(shù)據(jù)庫字段外,還必需增加rows字段,并fieldDescription設(shè)置報(bào)表所需打印的行數(shù)。

圖7

八、雙擊‖Library‖中的‖F(xiàn)ields‖會(huì)看到方才添加的‖F(xiàn)ield‖,左鍵

按住‖件號(hào)‖拖到表格中,Field就會(huì)在框中了,右鍵可設(shè)置‖F(xiàn)iled‖框的各種屬性(和靜態(tài)字段框一樣的),繼續(xù)增加其

他Field并拖到表格中,調(diào)整好位置和寬度。

九、主窗體菜單“Data〞中的“連接/資料來源〞是設(shè)置數(shù)據(jù)源的

(見圖9),點(diǎn)擊“連接/資料來源〞后系統(tǒng)彈出“Connections/Datasources〞對(duì)話框(見圖10)。

圖9

十、在“Connections/Datasources〞對(duì)話框中點(diǎn)‖new‖,選‖XMLfile

datasource‖,如下圖:

十一、單擊“next〞按鈕,輸入‖name‖(名字)、選中‖Usethereport

Xpathexpressionwhenfillingthereport‖、點(diǎn)―Browse‖選擇xml文件數(shù)據(jù)源,注:關(guān)于XML文件需要從系統(tǒng)的定義檔案模版,選擇中相應(yīng)模版的結(jié)構(gòu),在“報(bào)表〞頁面,增加報(bào)表頁面里有個(gè)下載樣例數(shù)據(jù)。選完后,可以點(diǎn)下方的‖Test‖測(cè)試是否通過。(見圖11)

圖11

十二、在主窗體中選擇―Data‖–―報(bào)表查詢‖,系統(tǒng)彈出“Report

Query〞對(duì)話框,在“ReportQuery〞對(duì)話框中,“Querylanguage〞設(shè)置為“Xpath〞,輸入XPath路徑(測(cè)試數(shù)據(jù)中為/data/descendant::Package/Description)。(如圖14)

圖14

十三、在主窗體中,點(diǎn)擊數(shù)據(jù)源下拉列表,從中選擇數(shù)據(jù)源。(如

圖15)

圖15

十四、編譯并執(zhí)行報(bào)表。報(bào)表的執(zhí)行包括無數(shù)據(jù)執(zhí)行和有數(shù)據(jù)執(zhí)

行。(如圖15)

編譯無數(shù)據(jù)瀏覽有數(shù)據(jù)瀏覽

圖15

附注:報(bào)表設(shè)計(jì)一些技巧

1、報(bào)表設(shè)計(jì)器屬性

PDF格式:高度、寬度參數(shù)是數(shù)字30都代表1CM;

如:ColumnHeader的高度設(shè)置為5CM,此時(shí)需要設(shè)成150

EXCEL格式:高度為28.85代表1cm,寬度為30.05代表1cm。如:

ColumnHeader的高度設(shè)置為5CM,此時(shí)需要設(shè)成144。

打印條件設(shè)置

2、newBoolean(!$F{題名}.equals(null)),是指當(dāng)題名字段不為

空時(shí)打印,也可通過勾選TextField屬性中的Blankwhennull來實(shí)現(xiàn)(注:excel報(bào)表中由于線條顯示是需要通過textField邊框來實(shí)現(xiàn),最好習(xí)慣使用Blankwhennull來實(shí)現(xiàn)字段值為空時(shí)打印空白)

3、newBoolean($F{題名}.length()>117),是指當(dāng)題名字段的

長度大于117時(shí)打印

4、newBoolean($V{REPORT_COUNT}.intValue()%11==0),是

指報(bào)表的行數(shù)為11時(shí)出現(xiàn),一般用于報(bào)表底部粗線的打印條件5、$F{起止日期}.substring(0,4),是指截取起止日期的前四位,

用截取函數(shù)時(shí),最好加上條件,即newBoolean($F{起止日期}.length()>4),否則假使起止日期為空時(shí),報(bào)表就無法正常打印了,假使想從第五位開始取4位的話,$F{起止日期}.substring(4,8)

6、newBoolean(!$F{案卷題名}.equals(null)7、

$F{案卷題名}.split(\;\,是指出題名的其次段

8、newBoolean($F{案卷題名}.indexof(\;\)==-1),判斷案卷題

名中是否包含\;\,若不包含返回值為-1。

9、如報(bào)表需要按什么分組打印,可增加的一個(gè)字段group,并設(shè)

置原卷號(hào)_2;屬類號(hào)_1,是指按原卷號(hào)與屬類號(hào)分組打印。

10、假使報(bào)表是復(fù)合報(bào)表,取案卷庫字段用_1,取卷內(nèi)庫字段_211、newInteger($F{文件標(biāo)題}.toString().trim().length())取

文件標(biāo)題的實(shí)際長度。12、new

Integer(Integer.parseInt($F{

號(hào)}.toString().trim())把字符型轉(zhuǎn)換為整型。

13、取文件形成日期的月

1、打印條件

newBoolean(newString($F{文件形成日期}.replaceAll(\\

2、輸出值

newInteger(new

SimpleDateFormat(\文件形成日期}.replaceAll(\

IReport介紹

什么是iReport?

iReport是一個(gè)能夠創(chuàng)立繁雜報(bào)表的開源項(xiàng)目,并且它能調(diào)用JasperReports庫應(yīng)用于任何一種java應(yīng)用程序。本身是分布式的且由符合GNU通用公共許可的百分之百純java編寫。由于它豐富的圖形界面,你能夠很快的創(chuàng)立出任何一種你想要的報(bào)表。

必要條件:

iReport需要SunJava2SDK1.4以上版本;為了能編譯jasper文件就必需安裝完整的java2(JDK),不光是(JRE)這個(gè)運(yùn)行環(huán)境。假使你還想編譯iReport源代碼,你還要安裝JakartaAntversion1.6以上版本。

硬件方面,類似于java的環(huán)境,iReport也占好多的RAM,所以它也需要至少256Mb的內(nèi)存和至少20Mb的磁盤空間。

報(bào)表結(jié)構(gòu)

這章我們將分析報(bào)表的構(gòu)成,來觀測(cè)一下它由那幾部分構(gòu)成,當(dāng)用數(shù)據(jù)打印時(shí)這幾部分是如何運(yùn)轉(zhuǎn)的。

Bands

一個(gè)報(bào)表依靠―type‖頁來定義說明。它被分成不同水平的一份被叫做bands。當(dāng)報(bào)表參與數(shù)據(jù)去打印時(shí),這些部分被印刷好屢屢依照他們自身的屬性(依照?qǐng)?bào)表創(chuàng)立者設(shè)計(jì)的規(guī)則)。舉個(gè)例子,pageheader被重復(fù)的打印在每頁的開始部分,這樣的話,每個(gè)band都會(huì)重復(fù)的打印每一單一的記錄。

這個(gè)―type‖頁被分成9個(gè)預(yù)先確定的bands作為新組被加進(jìn)去。事實(shí)上,iReport控制每一個(gè)頭條(Groupheader)和一個(gè)摘要條(Groupfooter)為每一個(gè)組。

(6)腳本是一個(gè)java類,它的方法執(zhí)行在報(bào)表生成期間,通過觸發(fā)一個(gè)特別的事件,在scriptlet選項(xiàng)卡,可以指定一個(gè)外部的腳本(java類)或激活iReport的內(nèi)部腳本支持。

假使不想使用腳本,那就設(shè)置下拉菜單的值為:Don’tusescriptletclass…或者在輸入?yún)^(qū)域填寫你所要使用的類的名字。(7)在‖more..‖選項(xiàng)卡可以對(duì)打印進(jìn)行設(shè)置。

Titleonanewpage選項(xiàng):

Title指定為一個(gè)新頁的選項(xiàng),打印在每頁的開始,在title之后頁面將發(fā)生大的變化。圖4.12和4.13展示報(bào)表的結(jié)果,圖4.11顯示報(bào)表。

圖4.11

Title被打印總是一樣的,而且在每頁的頂部。圖4.12顯示使用缺省設(shè)置打印的結(jié)果:

圖4.12

圖4.13顯示打印的結(jié)果假使“titleonanewpage―選項(xiàng)設(shè)置為true。像你看到那樣,沒有一行其他的band被打印在title頁,甚至沒有pageheader或pagefooter。然而這頁依舊計(jì)算這頁的總數(shù)。

圖4.13

Summaryonanewpage選項(xiàng):

這個(gè)選項(xiàng)完全和從前的選項(xiàng)一樣,只是summaryband被打印在最終一頁?,F(xiàn)在,假使你選擇了這項(xiàng),那新頁將包含summaryband。

Floatingcolumnfooter選項(xiàng):

這個(gè)選項(xiàng)允許你加強(qiáng)columnfooterband的打印,直接在最終detailband(或groupfooter)后顯示而不不在column后顯示。當(dāng)你想用報(bào)表元素創(chuàng)立表格時(shí)使用這個(gè)選項(xiàng)。(詳細(xì)請(qǐng)看JasperReportstables.jrxml)

打印順序:

Printorder用來決定如何組織打印多列數(shù)據(jù)。缺省的printorder一是vertical,它是垂直的打印記錄直到頁末開始打印新的一列。

Horizontalprintorderprints以橫向打印記錄當(dāng)一行占據(jù)頁寬后開始打印另一行。圖4.14和4.15:

圖4.14圖4.15

這兩個(gè)圖明了的顯示這個(gè)兩個(gè)選項(xiàng)的概念。如你看到的,每個(gè)名字按字母的順序打印。圖4.14顯示了縱向的打?。ǖ谝涣写蛴⊥杲又蛴∑浯瘟校?,圖4.15顯示了橫向的打?。ù蛴⊥晁械男酗@示出整個(gè)列)

無數(shù)據(jù)打印(假使沒有數(shù)據(jù)時(shí)):

當(dāng)提供一個(gè)空的數(shù)據(jù)打印時(shí)(或者sql查詢沒有返回記錄)一個(gè)空文件被創(chuàng)立(或返回是一個(gè)零字節(jié)長度的流)。這個(gè)缺省的行為能被修改通過指定其他的,在沒有數(shù)據(jù)時(shí)。(指whennodata)。表4.2概述了可能的值和意義。OptionDescriptionNoPages缺省值,最終的結(jié)果為空。BlankPage返回一個(gè)空白頁。AllSectionsNoDetails返回整個(gè)頁的組成,出了detailband表4.2

i18n:

il8n選項(xiàng)卡用來設(shè)置片段的參數(shù)。

ResourceBundleBasename

ResourceBundlebasename是一個(gè)參數(shù)名,當(dāng)你想使報(bào)表國際化時(shí)。ResourceBundle包含用在報(bào)表中的標(biāo)簽,句子,表達(dá)式翻譯文本以指定的語言。這個(gè)語言符合一個(gè)特別的文件。basename表示文件名,能幫助你找到這個(gè)文件用正確翻譯。為了用確切的語言來重建文件名,一些language/country首位字母大寫(e.g._it_IT,forItalian-Italy)和.prope

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論