紫羅蘭

          --愛的天空

          常用鏈接

          統(tǒng)計(jì)

          最新評(píng)論

          2007年2月6日 #

          iReport-1.2.8使用的幫助文檔(第一部分)

          iReport 幫助文檔

          第一部分 功能介紹:

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

          ? 一個(gè)報(bào)表的結(jié)構(gòu)大致是幾個(gè)部分:

          title pageHeader columnHeader detial columnFooter pageFooter summary groupHeader groupfooter

          ?

          · Title

          每個(gè)報(bào)表一般會(huì)有一個(gè)名字,比如×××銷售報(bào)表, title 就是擱置這個(gè)名稱的最好地方了,當(dāng)然你也可以根據(jù)需要擱置在合適的地方。

          · pageHeader

          報(bào)表的一些公共要素,比如頁(yè)碼、創(chuàng)建時(shí)間、創(chuàng)建人等信息放置在這里是比較好的選擇。

          · columnHeader

          無(wú)可非議的這里是放置列的名稱,記住不是列數(shù)據(jù)。

          · Detial

          放置需要循環(huán)的數(shù)據(jù),比如銷售記錄數(shù)據(jù)。

          · columnFooter

          放置列級(jí)別的統(tǒng)計(jì)計(jì)算值或是列的說(shuō)明。

          · pageFooter

          放置頁(yè)級(jí)別的統(tǒng)計(jì)值或是頁(yè)的說(shuō)明。

          · Summary

          可能需要對(duì)幾頁(yè)(你的報(bào)表可能有幾個(gè)頁(yè)組成)的統(tǒng)計(jì)值。比如 50 個(gè)銷售記錄共占用了 3 頁(yè),那么放置這些統(tǒng)計(jì)記錄的統(tǒng)計(jì)值最好的地方就是 summary

          · groupHeader

          每個(gè)表的內(nèi)容可能需要根據(jù)某個(gè)屬性進(jìn)行劃分顯示內(nèi)容和計(jì)算內(nèi)容,比如希望以月份為單位每組分開顯示銷售記錄,那么就可以定義一個(gè)組(組的定義參考后文), groupHeader 就是放置組說(shuō)明或是組標(biāo)志最好的地方。

          · Groupfooter :放置組的統(tǒng)計(jì)或是說(shuō)明

          ?

          2.????? iReport 的輸出格式

          iReport 的預(yù)覽輸出格式可以支持以下幾種:

          ?

          PDF HTML CSV JAVA2D Excel 、純文字、 JRViewer ,其中最常用的是 PDF JRViewer JRViewer 是直接以 C/S 方式作為報(bào)表的輸出格式,在 JFrame 框架下輸出。 Jasperreport 提供默認(rèn)的 JRViewer 輸出類。

          ?

          3.????? 報(bào)表的動(dòng)態(tài)對(duì)象變量、參數(shù)、字段

          報(bào)表上主要的元素為靜態(tài)文本 (static text) 、變量 (variable) 、動(dòng)態(tài)域 (Field) 、參數(shù) (Parameter) 。靜態(tài)文本就是顯示在報(bào)表上不變的文字。變量是指通過(guò)系統(tǒng)自帶的計(jì)算得到的一些值(如當(dāng)前頁(yè)、總記錄數(shù)等)。動(dòng)態(tài)域可以是連接數(shù)據(jù)庫(kù)時(shí)所的的字段,也可以是通過(guò)自定義數(shù)據(jù)源 ( 可能是包含一組數(shù)據(jù)的實(shí)體類 ) 。參數(shù)是程序運(yùn)行時(shí)傳到報(bào)表內(nèi)部的變量,通常通過(guò) Map 形式傳入,可作為顯示變量或者用于 sql 語(yǔ)句中變化的條件。 這些有關(guān)的內(nèi)容,我們要介紹這些對(duì)象的使用和意義:

          ·字段( Fields ):是數(shù)據(jù)庫(kù)抽取出來(lái)的,希望在報(bào)表中出現(xiàn)的數(shù)據(jù)庫(kù)內(nèi)容。比如一個(gè) ID 的所有值。 $F{ filedsName } 表示字段,是報(bào)表中最重要的部分。如果 JDBC 方式的連接,輸入 sql 查詢語(yǔ)句就可得到所有查詢所得到的字段;如果是 Custom Datasource 方式,新建一字段,例如 user_id 。數(shù)據(jù)類中 getFieldValue(JRField field) field 就是報(bào)表中的 $F{Field_name} 。程序中根據(jù) JRField 對(duì)象的 name 屬性來(lái)確定返回哪個(gè)值

          ?

          ?

          ·參數(shù)( Parameters ):這是你的應(yīng)用需要提供給報(bào)表的入口,比如你希望在報(bào)表被解釋的時(shí)候提供 Where 語(yǔ)句的條件值,那么就可以使用參數(shù)( Parameters )。 $P{ parameterName }

          代表參數(shù), {} 內(nèi)是參數(shù)的名稱,在報(bào)表中設(shè)定后,在運(yùn)行的時(shí)候通過(guò)從外部傳入的參數(shù)來(lái)動(dòng)態(tài)生成標(biāo)題等數(shù)據(jù),并且可以作為查詢條件傳入 sql 語(yǔ)句使用 ( 如果是使用 JDBC 直接連接數(shù)據(jù)庫(kù)的話 )

          ?

          ·變量( Variables ):這是報(bào)表中一些邏輯運(yùn)算的表現(xiàn),比如統(tǒng)計(jì)值。 $V{ variablesName }

          ?

          每種對(duì)象的定義格式如每個(gè)對(duì)象的后面說(shuō)明,比如定義一個(gè)變量( Variables ),那么表達(dá)式就寫成 $V{ variablesName } ,報(bào)表中出現(xiàn)的就是這個(gè)變量的名稱。后文會(huì)詳細(xì)的介紹使用方法。

          $V{PAGE_NUMBER} 代表當(dāng)前頁(yè)數(shù), $V 代表 variable ,對(duì)現(xiàn)有的 group $V{groupname_COUNT} 代表當(dāng)前組的記錄數(shù)

          // 代表返回當(dāng)前行的第四個(gè)字段

          if("user_id".equals(field.getName()))return data[index][3]

          ?

          4.????? 編譯、靜態(tài)運(yùn)行、動(dòng)態(tài)運(yùn)行

          Jasperreport 運(yùn)行時(shí)需要的就是一個(gè) jasper 后綴的文件,編譯過(guò)程其實(shí)就是把 jrxml 后綴的文件生成 jasper 后綴的文件。(可以參考 Jasperreport 的運(yùn)行原理)

          ?

          靜態(tài)運(yùn)行和動(dòng)態(tài)運(yùn)行是相對(duì)的,后者帶數(shù)據(jù)源運(yùn)行,比如帶數(shù)據(jù)庫(kù)運(yùn)行。前者就是靜態(tài)文本運(yùn)行,和數(shù)據(jù)源無(wú)關(guān),如果報(bào)表中出現(xiàn)和數(shù)據(jù)源有關(guān)的對(duì)象,則以 null 顯示。

          5.????? ? 幾種 Datasource 的方法

          a)????? JDBC 連接數(shù)據(jù)庫(kù)。新建一個(gè)連接,選擇類型為 Database JDBC connection ,給這個(gè)連接一個(gè)名字,填寫 driver ,數(shù)據(jù)庫(kù)連接的 url ,數(shù)據(jù)庫(kù)用戶名密碼等信息后,測(cè)試通過(guò)即可建立連接。

          ?

          b)????? Customer JRDatasource 取得數(shù)據(jù)。首先寫一個(gè)包含數(shù)據(jù)的類,它實(shí)現(xiàn)了 JRDatasource 接口,實(shí)現(xiàn) next() getFieldValue(JRFeild field) 兩個(gè)方法。 Next 方法用于取得下一條記錄, getFieldValue 方法則根據(jù) jasper 文件中定義的 field 的名稱來(lái)取得對(duì)應(yīng)列的數(shù)據(jù)。另外,為了在 ireport 中能預(yù)覽效果,我們還需要構(gòu)造取得該數(shù)據(jù)源類的方法,通常命名為 XXXDatasourceFactory 類,它提供了 getTheDatasource 類取得數(shù)據(jù)源類這個(gè)對(duì)象。在連接時(shí),填上工廠類和取得數(shù)據(jù)源類的對(duì)應(yīng)方法后即可得到數(shù)據(jù)。

          ?

          然后在菜單上的 build->set active connection 選擇連接,在 datasource->report query 里輸入 sql 語(yǔ)句或 javabean 方式得到數(shù)據(jù)域。得到的數(shù)據(jù)域按名存放在 Fields 里,可拖拽到頁(yè)面報(bào)表上。

          ?

          posted @ 2007-02-06 18:06 violet 閱讀(1074) | 評(píng)論 (1)編輯 收藏

          僅列出標(biāo)題  
          主站蜘蛛池模板: 海林市| 怀宁县| 郎溪县| 平山县| 固始县| 阿拉善右旗| 东乌珠穆沁旗| 陆良县| 沾化县| 景洪市| 元阳县| 错那县| 庆城县| 巧家县| 宣威市| 九龙县| 新丰县| 延津县| 儋州市| 嘉兴市| 乌拉特中旗| 海兴县| 瑞丽市| 正阳县| 特克斯县| 五河县| 平利县| 嘉定区| 白银市| 凯里市| 呼伦贝尔市| 沙田区| 宝丰县| 张北县| 阜南县| 宜黄县| 甘洛县| 习水县| 灌阳县| 浠水县| 疏附县|