隨筆 - 6  文章 - 129  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(14)

          隨筆檔案(6)

          文章分類(467)

          文章檔案(423)

          相冊(cè)

          收藏夾(18)

          JAVA

          搜索

          •  

          積分與排名

          • 積分 - 827222
          • 排名 - 49

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          iReport 的使用入門
          文章來(lái)源:http://blog.chinahr.com/blog/vincent860214/post/99218
          Author: liuxiaohua mailto: vincent860214@126.com

          一、iReport 是什么

              iReport是一個(gè)能夠創(chuàng)建復(fù)雜報(bào)表的開源項(xiàng)目,并且它能調(diào)用JasperReports庫(kù)應(yīng)用于任何一種java應(yīng)用程序。本身是分布式的且由符合GNU通用公共許可的百分之百純java編寫。

          由于它豐富的圖形界面,你能夠很快的創(chuàng)建出任何一種你想要的報(bào)表。iReport能夠讓我們提高技術(shù)方面的信心,比如它能降低學(xué)習(xí)JasperReports的XML語(yǔ)法的難度,而且能夠?yàn)槭炀毜募夹g(shù)人員節(jié)省大量的時(shí)間并能開發(fā)出非常精細(xì)的報(bào)表。

           

          二、iReport 的下載與安裝

          JasperReport 的下載地址:http://jasperreports.sourceforge.net/index.html

          iReport的下載地址:http://sourceforge.net/projects/ireport

          可能有幾種不同的分類

          iReport-x.x.x.zip 這是官方的zip格式的二進(jìn)制文件。

          iReport-x.x.x.tgz 這是官方的tar gz格式的二進(jìn)制文件。

          iReport-x-x-x-src.zip 這是官方的包含源代碼的zip格式的二進(jìn)制文件。

          x.x.x表明了iReport的版本號(hào)。每一種都包含必須使用的第三方的庫(kù)和程序及附加文件,例如模板和一些html格式的基礎(chǔ)教程。

           

          三、iReport 的配置

          iReport的初始化配置包括:設(shè)置所要查看運(yùn)行后的文檔的格式;選擇語(yǔ)言;設(shè)置編譯后的文件目錄。我們要配置 iReport 必須運(yùn)行剛剛安裝的 iReport。然后選擇菜單選項(xiàng)中工具選項(xiàng)(menu Options → Tools.)。

          首先出現(xiàn)如下圖的界面(圖1.1)。此選項(xiàng)卡是一些簡(jiǎn)單常規(guī)的設(shè)置。

                                                                         1.1

          這個(gè)選項(xiàng)卡(1.2)是用來(lái)設(shè)置編譯后的文件存儲(chǔ)目錄,默認(rèn)的目錄會(huì)在iReport的根目錄。一般情況下是要指定一個(gè)有效的目錄來(lái)保存編譯文件。這個(gè)目錄也可以是加載報(bào)表源時(shí)的目錄。筆者的文件存儲(chǔ)目錄是 D:"J2EE"iReport ,以后所有的報(bào)表文件都將被保存在這個(gè)目錄下。

                                                                         1.2

          這個(gè)選項(xiàng)卡(1.3)設(shè)置 iReport 編譯后用來(lái)預(yù)覽報(bào)表的外部程序。筆者這里只設(shè)定了 IE,其它沒(méi)有設(shè)定的編譯之后 iReport 會(huì)為你生成一個(gè)對(duì)應(yīng)格式的文件保存在上面設(shè)置的默認(rèn)目錄下,但不會(huì)打開。

                                                                         1.3

           

          四、創(chuàng)建 JDBC 連接

          任何一種動(dòng)態(tài)報(bào)表都需要一個(gè)數(shù)據(jù)源,iReport 支持任何一款關(guān)系型數(shù)據(jù)庫(kù)作為數(shù)據(jù)源。

          首先我們來(lái)看一下怎么建立一個(gè)數(shù)據(jù)源的連接。點(diǎn)菜單(1.4),出現(xiàn)一個(gè) Connections /Datasources 對(duì)話框。

                   1.4

                             1.5

          筆者這里已經(jīng)創(chuàng)建了兩個(gè)數(shù)據(jù)源。如果你是第一次使用 iReport 工具來(lái)作報(bào)表的話,那么你就要首先來(lái)創(chuàng)建數(shù)據(jù)源的連接。點(diǎn)擊New 新建一個(gè)數(shù)據(jù)源連接。將出現(xiàn)(1.6)一個(gè) Connections properties 對(duì)話框。這里有很多種數(shù)據(jù)源類型,我們程序員常用的只有 Database JDBC connectionXML file data sourceJavaBeans set data sourceEJBQL connection 這幾種。其它的一般程序員很少用得到的。(呵呵…..這是筆者個(gè)人的看法)

                                                           1.6

          我們選擇 Database JDBC connection 后點(diǎn)擊 Next 出現(xiàn)一個(gè)數(shù)據(jù)源連接的配置屬性對(duì)話框(1.7)。以下是針對(duì)筆者的 Oracle 10 數(shù)據(jù)庫(kù)連接配置。

                                                           1.7

          配置好后我們需要測(cè)試一下是否連接成功。點(diǎn)擊 Test 進(jìn)行測(cè)試如出現(xiàn) Connectin test successful 則表示連接成功(1.8)

          注意:這里有一個(gè) Save password 復(fù)選框,如果你選種了此復(fù)選框,則它會(huì)將密碼保存到一個(gè) .txt 文件里面,如果你的密碼不想被暴露話的話,建議不要選此復(fù)選框。

                         1.8

          創(chuàng)建一個(gè)連接后此連接后,筆者的 iReport 就有三個(gè)數(shù)據(jù)源了(圖1.9)。

                                                                  1.9

          注意:我們創(chuàng)建數(shù)據(jù)源連接時(shí)一定要有數(shù)據(jù)庫(kù)連接驅(qū)動(dòng)的支持。iReport 只為我們符帶了一個(gè) MySQL 的驅(qū)動(dòng)包,并且不定符合你的 MySQL 數(shù)據(jù)庫(kù)的版本。所以我們連接任何一種關(guān)系型數(shù)據(jù)庫(kù)時(shí)都要將驅(qū)動(dòng)拷貝到 iReport 的安裝根目錄下的 lib 目錄里。

           

           

          五、第一個(gè)簡(jiǎn)單的報(bào)表

          第一個(gè)報(bào)表我們就采用 iReport 本身的報(bào)表精靈向?qū)?lái)創(chuàng)建一個(gè)簡(jiǎn)單的。iReport Wizard 是一個(gè)用來(lái)一步步創(chuàng)建報(bào)表的工具。點(diǎn)擊(2.0)菜單檔案à報(bào)表清靈,將出現(xiàn)一個(gè) iReport Wizard 對(duì)話框(2.1)

                     2.0

          iReport Wizard 工具可以根據(jù)你以往的模版進(jìn)行報(bào)表的創(chuàng)建。也可選擇你已經(jīng)配置好的數(shù)據(jù)庫(kù)連接作為此報(bào)表的數(shù)據(jù)源,然后編寫SQL語(yǔ)句或?qū)胍延械?/span>SQL文件。即使你不會(huì)寫SQL語(yǔ)句也可以做出一個(gè)漂亮的報(bào)表出來(lái),因?yàn)樗幸粋€(gè) Design… 按鈕(圖2.2),專門為一些不會(huì)寫SQL語(yǔ)句的人所設(shè)計(jì)的。

                                                                         2.1

          在此視圖中你可以選擇你要使用的表和表字段,并且它幫我們把表的關(guān)系給體現(xiàn)出來(lái)了。

                                                                         2.2

          下一步需要選擇我們要在報(bào)表中顯示的字段(2.3)

                                                                         2.3

          根據(jù)此向?qū)覀兛梢詣?chuàng)建四個(gè)組(事實(shí)它可以設(shè)置很多的組)

                                                                         2.4

          向?qū)槲覀兲峁滋罪@示模版供我們選擇(2.5)

                                                                         2.5

          最終它根據(jù)我們的設(shè)定生成了一份報(bào)表(圖2.6)。

                                                                         2.6

          所有的工作已經(jīng)全部完成,只需要執(zhí)行報(bào)表就可以了。點(diǎn)擊后面這個(gè)執(zhí)行動(dòng)態(tài)報(bào)表將出來(lái)下圖(2.7)的報(bào)表結(jié)果。

                                                                         2.7

           

          如何支持中文。

          這個(gè)報(bào)表的所有數(shù)據(jù)都是英文的,如果您的數(shù)據(jù)有中文的話,那么您還需要進(jìn)行一步設(shè)定(2.8),要修改的地方有三個(gè),1.Font Name 改成中國(guó)的字體。2.PDF Font Name 改成 STSong-Light3.PDF Encoding 改成 UniGB-UCS2-H (Chinese Simplified)。就OK啦。

                                             2.8

           

          上面我只做了一個(gè)簡(jiǎn)單的報(bào)表,其實(shí) iReport+JasperReport 最大的靚點(diǎn)就是設(shè)計(jì)可視化的圖表報(bào)表,下面是筆者做的一個(gè)簡(jiǎn)單的圖形報(bào)表(圖2.9)。

                                                                  2.9

           

          六、圖形報(bào)表(餅圖)

          新建一個(gè)chatReport 報(bào)表

          編寫SQL語(yǔ)句(圖3.0)。查詢每個(gè)部門有多少個(gè)職員。

                                                                  3.0

          選擇工具欄中插入餅圖的快捷鍵(圖3.1

                                                                  3.1

          出現(xiàn)一個(gè)圖形報(bào)表選擇向?qū)АN覀冞x擇第二個(gè)三維餅圖(3.2)

                                             3.2

           

          點(diǎn)擊OK之后,在報(bào)表的設(shè)計(jì)器中出現(xiàn)一個(gè)三維餅圖(圖3.3)。我們需要設(shè)置餅圖的一些屬性,通過(guò)右鍵 Chart Properties 來(lái)完成屬性的設(shè)定。

                                                                  3.3

          出現(xiàn)了 Chart Properties 對(duì)話框后,選擇 Chart Data 選項(xiàng)卡圖形報(bào)表的數(shù)據(jù),設(shè)置其數(shù)據(jù)來(lái)源。

          對(duì)應(yīng)部門的職員的個(gè)數(shù)

          部門名稱

                                                               3.4

          關(guān)閉設(shè)計(jì)視圖。然后選擇我們要預(yù)覽的格式(3.5)

                                                    3.5

          注意:在生成PDF預(yù)覽時(shí),需要向 iReprot lib 目錄下加入一個(gè) iTextAsian.jar 的亞州語(yǔ)言包,用于處理亞州語(yǔ)言的亂碼的問(wèn)題。iTextAsian.jar 現(xiàn)在很難下載得到了,如果你需要的話給我一個(gè)郵件,講明你所要的東西。

          點(diǎn)擊工具欄的編譯運(yùn)行,最終執(zhí)行報(bào)表的效果(3.6)

                                                                  3.6

                

          七、一勞永益的解決中文的問(wèn)題

          前面提到過(guò)報(bào)表中的中文問(wèn)題,上面給出的解決方案比較麻煩需要對(duì)每個(gè)字段進(jìn)行設(shè)定,下面給出一個(gè)通用的設(shè)定,可以應(yīng)用到所有的字段,這樣我們只須做一次設(shè)定永久使用。

          第一步:添加一個(gè)自定義的字體(3.7)

                                      3.7

          彈出一個(gè)添加自定義字體的對(duì)話框(圖3.8)。

                                                           3.8

          點(diǎn)擊添加一個(gè)新的字體。要想中文不出現(xiàn)亂碼,則要跟我的配置一樣(圖3.9)。

                                                    3.9

          配置已完生,以后在使用的時(shí)候只要選中字段然后右鍵屬性,在Font 選項(xiàng)卡中 Report Font 中選擇我的字體就OK了(圖4.0),不用像上面那樣子每次都要同時(shí)修改三個(gè)地方了。

                                             4.0

           

          八、應(yīng)用程序調(diào)用JasperReport 報(bào)表

          應(yīng)用程序包結(jié)構(gòu)(4.1)

                        4.1

          Servlet 代碼:

          iReport 工具的lib目錄下的.jar 全部拷貝到工程下面。

                 public void service(HttpServletRequest request, HttpServletResponse response)

                               
          throws ServletException, IOException {

           

                        
          try {

                               
          // 報(bào)表編譯之后生成的.jasper 文件的存放位置

                               File reportFile 
          = new File(

                                             request.getRealPath(
          "jasperreport/employee.jasper"));

                               
          // 傳遞報(bào)表中用到的參數(shù)值

                               Map
          <String, String> parameters = new HashMap<String, String>();

                      

                      
          // "name"是報(bào)表中定義過(guò)的一個(gè)參數(shù)名稱,其類型為String 型

          //                   parameters.put("name", value);

                      

                      
          byte[] bytes = JasperRunManager.runReportToPdf(

                                             reportFile.getPath(), 
          null, DBConnection.getConnection());

                      
          //生成PDF文件

                      response.setContentType(
          "application/pdf");

                               ServletOutputStream ouputStream 
          = response.getOutputStream();

                               ouputStream.write(bytes, 
          0, bytes.length);

                               ouputStream.flush();

                               ouputStream.close();

                  } 
          catch (Exception e) {

                               System.out.println(
          "出錯(cuò)");

                               e.printStackTrace();

                        }

                 }

          記住此應(yīng)用程序需要添加一些庫(kù)支持。最簡(jiǎn)單的辦法就是把

          運(yùn)行程序,打開瀏覽器。

          http://localhost:8080/reportdemo/index.jsp出現(xiàn)此頁(yè)面(4.2)

                         4.2

          點(diǎn)擊生成報(bào)表。出現(xiàn)我們想要的報(bào)表(4.3)

                                                                         4.3

                

              大功告成。。



          posted on 2008-11-09 09:47 Ke 閱讀(12444) 評(píng)論(1)  編輯  收藏 所屬分類: iReport

          FeedBack:
          # re: iReport 的使用入門[未登錄](méi) 2014-01-21 17:31 123
          ireport交流QQ群 145521545  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 阿合奇县| 赞皇县| 阿城市| 阳城县| 蛟河市| 当阳市| 大悟县| 页游| 旌德县| 平山县| 南阳市| 正阳县| 凉城县| 深州市| 渭南市| 望奎县| 循化| 江永县| 清河县| 镇巴县| 五家渠市| 平远县| 邵阳市| 绍兴县| 贵德县| 新龙县| 巴彦淖尔市| 望奎县| 苍溪县| 武川县| 冷水江市| 棋牌| 东平县| 灵川县| 英吉沙县| 乌审旗| 射阳县| 武夷山市| 柳林县| 寿阳县| 颍上县|