基于Jasper的報表管理平臺設計與實現論文_第1頁
基于Jasper的報表管理平臺設計與實現論文_第2頁
基于Jasper的報表管理平臺設計與實現論文_第3頁
基于Jasper的報表管理平臺設計與實現論文_第4頁
基于Jasper的報表管理平臺設計與實現論文_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 PAGE63 / NUMPAGES72基于Jasper的報表管理平臺設計與實現摘要報表管理系統(tǒng)是企業(yè)管理維護報表,研究業(yè)務需求的主要解決方案,它可以直觀有效地為企業(yè)提供報表日常維護、需求動態(tài)分析、戰(zhàn)略研究部署等相關的功能,是企業(yè)決策的來源。對于企業(yè)來說,管理報表的過程就是獲取企業(yè)基本信息和實時動態(tài),認清自我的優(yōu)勢和劣勢,尋求企業(yè)精心策劃和可靠戰(zhàn)略部署的過程。所以說,報表管理是企業(yè)日常管理當中非常重要的一個環(huán)節(jié),時刻影響著企業(yè)的規(guī)劃和運營。本文主要完成了基于Jasper技術的報表管理平臺的設計與實現,描述了課題的背景和意義、研究的現狀以與存在的問題,通過對報表管理平臺相關技術的綜述與比較,最終

2、確定了以Jasper報表引擎、Spring、SpringMVC框架、Velocity模板引擎、iBATIS框架和MYSQL數據庫等容作為系統(tǒng)的主要設計實現技術。本文設計和實現了在MVC框架基礎上的報表管理平臺的業(yè)務流程和技術框架,技術框架的視圖層采用了Velocity、CSS和JSP技術相結合的界面,業(yè)務模塊采用了Jasper技術、Spring和SpringMVC框架來設計和實現各種業(yè)務邏輯,持久層采用了JDBC、SpringDAO和iBATIS框架來處理各種數據,數據庫采用MYSQL,并結合對Jasper報表引擎處理報表模板文件流程的代碼分析,設計和實現了報表管理平臺的系統(tǒng)集成以與用戶角色管

3、理、數據源管理、報表管理等具體功能模塊。報表管理平臺的主要功能是管理和運行報表模板,產生和展示報表結果。用戶可以使用管理員角色或者普通用戶角色,在報表列表界面管理報表模板并且運行查看報表數據。本系統(tǒng)的優(yōu)勢在于結合開源組件,維護費用低,易于管理,以與報表處理能力比較強。關鍵詞:報表管理平臺,JasperReports,SpringMVC,Velocity,iBATISAbstractReport management system is the main solutionfor enterprise to manage and maintainreports, research business

4、 requirements. It can provide enterprises with reports of routine maintenance, the demand for dynamic analysis, deployment of strategic research and other related functions intuitively and effectively,and it is the source of business decisions. For businesses, the report management process is to get

5、 the basic information and real-time dynamic, to recognize the advantages and disadvantages of self, seeking enterprise careful planning andreliable strategic plan.So, report management is a very important part of the enterprises daily management, always influences the planning and running of the en

6、terprise.This thesis based on the technology of Jasper mainly completed the design and implementation of the report management platform, described the background and significance of the topic, research status and existing problems, reviewed and compared the report management platform related technol

7、ogy, and finally confirmed to use Jasper report engine, Spring, the SpringMVC framework, Velocity template engine, iBATIS framework, and MYSQL database to design and implement this system.This thesis designed and implemented the business process and technical framework about the report management pl

8、atformbased on the MVC framework,technical framework for the view layer using the interface combined Velocity, CSS and JSP technology, the business modules using Jasper, Spring, and SpringMVC framework to design and implement a variety of business logic, the persistence layer using JDBC, Spring DAO

9、and iBATIS framework to deal with all kinds of data, and using the MYSQL database, combined with the code analysis process about the Jasper report engine processing report template file, designed and implemented report management platform system integration, user and role management, data source man

10、agement, report management, and other specific functional modules.The main function of report management platformisto manage and run the report template, to generate and display the report results.Users can use the administrator role or normal user role,management the report templates, run and view

11、the report data in the list of reports interface. The advantages of this system includethe combination of open source components, low maintenance costs, easy to manage, and strong report processing ability.Key Words:Reportmanagement platform, JasperReports, SpringMVC, Velocity, iBATIS目錄 TOC o 1-3 h

12、z u HYPERLINK l _Toc354758065摘要 PAGEREF _Toc354758065 h iHYPERLINK l _Toc354758066Abstract PAGEREF _Toc354758066 h iiHYPERLINK l _Toc354758067目錄 PAGEREF _Toc354758067 h IVHYPERLINK l _Toc354758068圖目錄 PAGEREF _Toc354758068 h VIHYPERLINK l _Toc354758069表目錄 PAGEREF _Toc354758069 h VIIIHYPERLINK l _Toc3

13、54758070第1章 緒論 PAGEREF _Toc354758070 h 1HYPERLINK l _Toc3547580711.1 課題背景和意義 PAGEREF _Toc354758071 h 1HYPERLINK l _Toc3547580721.2 研究現狀與存在的問題 PAGEREF _Toc354758072 h 1HYPERLINK l _Toc3547580731.3 論文的主要容和特色 PAGEREF _Toc354758073 h 3HYPERLINK l _Toc3547580741.4 論文組織結構 PAGEREF _Toc354758074 h 4HYPERLIN

14、K l _Toc3547580751.5 本章小結 PAGEREF _Toc354758075 h 5HYPERLINK l _Toc354758076第2章 報表管理平臺的技術綜述 PAGEREF _Toc354758076 h 6HYPERLINK l _Toc3547580772.1 報表管理平臺相關技術描述 PAGEREF _Toc354758077 h 6HYPERLINK l _Toc3547580782.2 JasperReports工具的技術綜述 PAGEREF _Toc354758078 h 6HYPERLINK l _Toc3547580792.2.1 JasperRepo

15、rts工具的工作原理 PAGEREF _Toc354758079 h 6HYPERLINK l _Toc3547580802.2.2 JasperReports的特點 PAGEREF _Toc354758080 h 7HYPERLINK l _Toc3547580812.3 MVC框架技術綜述 PAGEREF _Toc354758081 h 7HYPERLINK l _Toc3547580822.3.1 MVC PAGEREF _Toc354758082 h 7HYPERLINK l _Toc3547580832.3.2 Struts2 PAGEREF _Toc354758083 h 8HYP

16、ERLINK l _Toc3547580842.3.3 SpringMVC PAGEREF _Toc354758084 h 8HYPERLINK l _Toc3547580852.4 表現層技術綜述 PAGEREF _Toc354758085 h 9HYPERLINK l _Toc3547580862.4.1 JSP綜述 PAGEREF _Toc354758086 h 9HYPERLINK l _Toc3547580872.4.2 FreeMarker模板引擎綜述 PAGEREF _Toc354758087 h 10HYPERLINK l _Toc3547580882.4.3 Velocity

17、模板引擎綜述 PAGEREF _Toc354758088 h 10HYPERLINK l _Toc3547580892.5 MySQL綜述 PAGEREF _Toc354758089 h 12HYPERLINK l _Toc3547580902.5.1 MySQL PAGEREF _Toc354758090 h 12HYPERLINK l _Toc3547580912.5.2 MySQL的特性 PAGEREF _Toc354758091 h 12HYPERLINK l _Toc3547580922.5.3 MySQL的應用 PAGEREF _Toc354758092 h 12HYPERLINK

18、 l _Toc3547580932.6 持久層框架綜述 PAGEREF _Toc354758093 h 13HYPERLINK l _Toc3547580942.6.1 Hibernate框架綜述 PAGEREF _Toc354758094 h 13HYPERLINK l _Toc3547580952.6.2 iBATIS框架綜述 PAGEREF _Toc354758095 h 13HYPERLINK l _Toc3547580962.7 本章小結 PAGEREF _Toc354758096 h 16HYPERLINK l _Toc354758097第3章 報表管理平臺架構設計 PAGEREF

19、 _Toc354758097 h 17HYPERLINK l _Toc3547580983.1 平臺架構設計的概述 PAGEREF _Toc354758098 h 17HYPERLINK l _Toc3547580993.2 平臺的業(yè)務流程設計 PAGEREF _Toc354758099 h 17HYPERLINK l _Toc3547581003.3 平臺的技術框架設計 PAGEREF _Toc354758100 h 20HYPERLINK l _Toc3547581013.3.1 View層 PAGEREF _Toc354758101 h 21HYPERLINK l _Toc3547581

20、023.3.2 Controller層 PAGEREF _Toc354758102 h 23HYPERLINK l _Toc3547581033.3.3 Model層 PAGEREF _Toc354758103 h 24HYPERLINK l _Toc3547581043.3.4 Database Service層 PAGEREF _Toc354758104 h 24HYPERLINK l _Toc3547581053.4 本章小結 PAGEREF _Toc354758105 h 25HYPERLINK l _Toc354758106第4章 報表管理平臺的實現 PAGEREF _Toc3547

21、58106 h 26HYPERLINK l _Toc3547581074.1 平臺實現的概述 PAGEREF _Toc354758107 h 26HYPERLINK l _Toc3547581084.2 平臺的系統(tǒng)架構實現 PAGEREF _Toc354758108 h 26HYPERLINK l _Toc3547581094.2.1 模型層 PAGEREF _Toc354758109 h 26HYPERLINK l _Toc3547581104.2.2 視圖層 PAGEREF _Toc354758110 h 29HYPERLINK l _Toc3547581114.2.3 控制器層 PAGE

22、REF _Toc354758111 h 32HYPERLINK l _Toc3547581124.2.4 具體實例 PAGEREF _Toc354758112 h 33HYPERLINK l _Toc3547581134.3 Jasper報表引擎分析 PAGEREF _Toc354758113 h 35HYPERLINK l _Toc3547581144.3.1 Jasper報表產生流程 PAGEREF _Toc354758114 h 35HYPERLINK l _Toc3547581154.3.2 Jasper報表引擎的主要步驟 PAGEREF _Toc354758115 h 36HYPER

23、LINK l _Toc3547581164.3.3 報表編譯相關的類和接口分析 PAGEREF _Toc354758116 h 37HYPERLINK l _Toc3547581174.3.4 報表引擎的數據源分析 PAGEREF _Toc354758117 h 38HYPERLINK l _Toc3547581184.3.5 報表引擎的輸出格式 PAGEREF _Toc354758118 h 38HYPERLINK l _Toc3547581194.4 基于Jasper的報表管理系統(tǒng)集成 PAGEREF _Toc354758119 h 38HYPERLINK l _Toc3547581204

24、.5 平臺的功能模塊實現 PAGEREF _Toc354758120 h 40HYPERLINK l _Toc3547581214.5.1 總體功能模塊 PAGEREF _Toc354758121 h 40HYPERLINK l _Toc3547581224.5.2 用戶管理模塊實現 PAGEREF _Toc354758122 h 41HYPERLINK l _Toc3547581234.5.3 角色管理模塊實現 PAGEREF _Toc354758123 h 43HYPERLINK l _Toc3547581244.5.4 數據源管理模塊實現 PAGEREF _Toc354758124 h

25、45HYPERLINK l _Toc3547581254.5.5 報表管理模塊實現 PAGEREF _Toc354758125 h 46HYPERLINK l _Toc3547581264.6 本章小結 PAGEREF _Toc354758126 h 50HYPERLINK l _Toc354758127第5章 報表輸出格式的多樣化 PAGEREF _Toc354758127 h 52HYPERLINK l _Toc3547581285.1 HTML格式報表輸出 PAGEREF _Toc354758128 h 52HYPERLINK l _Toc3547581295.2 XLS格式報表輸出 P

26、AGEREF _Toc354758129 h 54HYPERLINK l _Toc3547581305.3 本章小結 PAGEREF _Toc354758130 h 56HYPERLINK l _Toc354758131第6章 總結與展望 PAGEREF _Toc354758131 h 57HYPERLINK l _Toc3547581326.1 論文主要工作概述 PAGEREF _Toc354758132 h 57HYPERLINK l _Toc3547581336.2 未來工作展望 PAGEREF _Toc354758133 h 58HYPERLINK l _Toc354758134參考文

27、獻 PAGEREF _Toc354758134 h 60HYPERLINK l _Toc354758135作者簡歷 PAGEREF _Toc354758135 h 62HYPERLINK l _Toc354758136致 PAGEREF _Toc354758136 h 63圖目錄TOC h z t 圖,1HYPERLINK l _Toc354675156圖2.1 MVC設計模式圖 PAGEREF _Toc354675156 h 7HYPERLINK l _Toc354675157圖2.2 Struts2框架處理流程圖 PAGEREF _Toc354675157 h 8HYPERLINK l _

28、Toc354675158圖2.3 Velocity工作原理圖 PAGEREF _Toc354675158 h 11HYPERLINK l _Toc354675159圖2.4 iBATIS框架的原理圖 PAGEREF _Toc354675159 h 14HYPERLINK l _Toc354675160圖2.5 JDBC與iBATIS程序框架比較圖 PAGEREF _Toc354675160 h 15HYPERLINK l _Toc354675161圖3.1 報表管理平臺的整體業(yè)務功能圖 PAGEREF _Toc354675161 h 18HYPERLINK l _Toc354675162圖3.

29、2 報表管理平臺技術框架設計圖 PAGEREF _Toc354675162 h 21HYPERLINK l _Toc354675163圖3.3 報表管理平臺整體界面 PAGEREF _Toc354675163 h 22HYPERLINK l _Toc354675164圖4.1 sqlMapConfig的配置代碼 PAGEREF _Toc354675164 h 27HYPERLINK l _Toc354675165圖4.2 事務管理配置信息 PAGEREF _Toc354675165 h 29HYPERLINK l _Toc354675166圖4.3 數據源配置信息 PAGEREF _Toc35

30、4675166 h 29HYPERLINK l _Toc354675167圖4.4 SqlMapClient配置信息 PAGEREF _Toc354675167 h 29HYPERLINK l _Toc354675168圖4.5 用戶管理的vm視圖代碼 PAGEREF _Toc354675168 h 31HYPERLINK l _Toc354675169圖4.6 界面實現代碼 PAGEREF _Toc354675169 h 31HYPERLINK l _Toc354675170圖4.7 分發(fā)器Dispatcherservlet配置信息 PAGEREF _Toc354675170 h 33HYP

31、ERLINK l _Toc354675171圖4.8 跳轉至添加頁面代碼 PAGEREF _Toc354675171 h 33HYPERLINK l _Toc354675172圖4.9 viewResolver配置信息 PAGEREF _Toc354675172 h 34HYPERLINK l _Toc354675173圖4.10 數據源添加界面 PAGEREF _Toc354675173 h 34HYPERLINK l _Toc354675174圖4.11 保存數據源信息代碼 PAGEREF _Toc354675174 h 35HYPERLINK l _Toc354675175圖4.12 a

32、ddOrUpdate方法代碼 PAGEREF _Toc354675175 h 35HYPERLINK l _Toc354675176圖4.13 JasperReports流程圖 PAGEREF _Toc354675176 h 36HYPERLINK l _Toc354675177圖4.14 基于Jasper的報表管理平臺集成圖 PAGEREF _Toc354675177 h 39HYPERLINK l _Toc354675178圖4.15 系統(tǒng)功能模塊結構圖 PAGEREF _Toc354675178 h 40HYPERLINK l _Toc354675179圖4.16 用戶管理流程圖 PAG

33、EREF _Toc354675179 h 42HYPERLINK l _Toc354675180圖4.17 用戶管理功能實現截圖 PAGEREF _Toc354675180 h 43HYPERLINK l _Toc354675181圖4.18 增加用戶功能圖 PAGEREF _Toc354675181 h 43HYPERLINK l _Toc354675182圖4.19 角色管理功能實現截圖 PAGEREF _Toc354675182 h 44HYPERLINK l _Toc354675183圖4.20 角色編輯功能圖 PAGEREF _Toc354675183 h 44HYPERLINK l

34、 _Toc354675184圖4.21 JDBC連接配置信息 PAGEREF _Toc354675184 h 45HYPERLINK l _Toc354675185圖4.22 數據源管理實現截圖 PAGEREF _Toc354675185 h 46HYPERLINK l _Toc354675186圖4.23 報表模板管理流程圖 PAGEREF _Toc354675186 h 47HYPERLINK l _Toc354675187圖4.24 報表管理實現截圖 PAGEREF _Toc354675187 h 47HYPERLINK l _Toc354675188圖4.25 產生報表的方法 PAGE

35、REF _Toc354675188 h 48HYPERLINK l _Toc354675189圖4.26 獲取報表模板文件 PAGEREF _Toc354675189 h 49HYPERLINK l _Toc354675190圖4.27 報表的解析、編譯、填充和輸出 PAGEREF _Toc354675190 h 49HYPERLINK l _Toc354675191圖4.28 輸出格式為PDF的報表樣例 PAGEREF _Toc354675191 h 50HYPERLINK l _Toc354675192圖5.1 iReport報表模板 PAGEREF _Toc354675192 h 52H

36、YPERLINK l _Toc354675193圖5.2 輸出HTML的源碼 PAGEREF _Toc354675193 h 53HYPERLINK l _Toc354675194圖5.3 輸出格式為HTML的報表樣例 PAGEREF _Toc354675194 h 53HYPERLINK l _Toc354675195圖5.4 配置ImageServlet PAGEREF _Toc354675195 h 54HYPERLINK l _Toc354675196圖5.5 輸出Excel的源碼 PAGEREF _Toc354675196 h 55HYPERLINK l _Toc354675197圖

37、5.6 輸出格式為XLS的報表樣 PAGEREF _Toc354675197 h 55表目錄TOC h z t 表,1HYPERLINK l _Toc354675147表4.1 SqlMap.xml文件與其作用 PAGEREF _Toc354675147 h 27HYPERLINK l _Toc354675148表4.2 報表模型數據DAO接口 PAGEREF _Toc354675148 h 28HYPERLINK l _Toc354675149表4.3 功能模塊和Velocity模板的關系 PAGEREF _Toc354675149 h 30HYPERLINK l _Toc354675150

38、表4.4 報表管理平臺的主要控制器類 PAGEREF _Toc354675150 h 32HYPERLINK l _Toc354675151表4.5 JasperReports編譯時的類和接口功能 PAGEREF _Toc354675151 h 37HYPERLINK l _Toc354675152表4.6 JRDataSource接口的實現方法 PAGEREF _Toc354675152 h 38HYPERLINK l _Toc354675153表4.7 報表輸出類 PAGEREF _Toc354675153 h 38緒論課題背景和意義在沒有計算機以前,數據的保存方式多數依靠紙文件,基本使用

39、手工來完成數據的處理,手工實現報表的編制。而隨著當今世界上使用計算機應用的頻率變得更加普遍,人們也更加習慣于使用計算機以與計算機軟件實現數據的處理,使用數據庫系統(tǒng)實現數據的管理,使用應用程序實現具體的業(yè)務的操作與完成,報表的編制也通過使用軟件來實現。這樣可以完成報表制作工作的軟件稱為報表工具,它的產生改變了原來的報表制作方式,對各個行業(yè)各個領域都產生了深遠的影響。報表在企業(yè)進行管理時擁有比較大的作用,它是企業(yè)的業(yè)務要求,更是企業(yè)進行戰(zhàn)略部署的基石。報表能夠完全表現企業(yè)的運營情況,它是企業(yè)審查自我,改進自我的利器,是強大的驅動力1。報表技術的發(fā)展對當今社會的發(fā)展起到了長足的推動作用。報表的本質是

40、對數據的抽象和概括,它使用一種比原始數據本身抽象性和概括性更高、規(guī)律性更強、更容易被人理解和控制的形式來描述和展示數量巨大的、無序的原始數據集合2。在實際生活和工作中,我們需要處理的數據往往是大量的,一般的傳統(tǒng)手工處理方式無論從數據量還是從處理速度上來講,都無法滿足高速、高效和大數據量的要求。為了能夠幫助用戶更好地利用現有數據庫,快速高效地管理各類報表模板,準確方便地獲取、匯總、分析并挖掘各種報表數據,更好地為決策者提供依據,報表管理平臺是基于以上目標而得到的理想解決方案。報表管理平臺能夠提供豐富的報表展示、敏捷的布局手段,為企業(yè)級數據分析與智能分析提供高性能、高效率的報表系統(tǒng)解決方案,企業(yè)通

41、過報表管理平臺獲取分析數據,預測未來行業(yè)的發(fā)展趨勢,實現靈活管理和實施重大決策3。研究現狀與存在的問題目前在國的報表市場上有很多功能不一但都有各自專長的報表工具,對它們進行對比和研究,可以讓我們取長補短,設計出更有優(yōu)勢的報表管理系統(tǒng)。從各個報表工具的介紹來看,它們的功能有很大一部分是重復的,我們可以了解和區(qū)分各個報表工具的實現機制和具體效果以確定這個報表工具是否符合實際應用需求。通過對國外市場上表現不錯并且具有一定代表性的幾個產品來做一個深入的比較,像Crystal Report、Actuate、潤乾報表、Jasper Report等,我們可以通過上述產品的特性進一步地了解它們。1、Cryst

42、al ReportCrystal Report使用廣泛,在各個領域、各種規(guī)模的應用里都有其存在,但是Crystal Report的使用費用較高,在Java平臺上,它通過收取一定費用來為企業(yè)服務。Crystal Report是個封閉性較大的系統(tǒng),它無法提供很多個性化的應用,集成度也比較差,而且缺乏功能的可擴展性,其在中式報表的表現并不如人意4。2、Actuate e.ReportActuate作為企業(yè)級報表工具,其專業(yè)性較強。在國際市場上,Actuate報表被廣泛用于金融市場、政府部分等較大規(guī)模的單位和組織中,擁有比較長的歷史。但是,Actuate e.Report的難用是業(yè)有名的,對使用者有很

43、高的要求,而一般的客戶并不是IT業(yè)界人士,過于復雜的設計只會起到相反的效果。3、潤乾報表潤乾報表在國報表市場是后來居上的態(tài)勢,因為它更加了解國的報表需求狀況,功能上更符合中國式的報表。它的報表模型更加新穎。不同于“表格式”或者“類EXCEL”的報表模型,潤乾報表有很多層次感更深的模型。實際上,Crystal Report等報表處理復雜型的報表難度很高,只能通過編寫復雜的SQL語句,甚至編寫代碼來實現。但是潤乾報表正是在處理復雜報表上有絕對的優(yōu)勢,它可以運用各種手段,將報表化復雜為簡單,提高開發(fā)效率。因為潤乾報表有著Java語言的特性,所以它也可以在各種框架平臺上部署和運行5。雖然潤乾報表在處理

44、報表的能力上比較突出,功能和性能上都可圈可點,但是它的價格也非常昂貴,開發(fā)維護費用高導致它失去了一部分競爭優(yōu)勢,對一些中小型企業(yè)來說它并不是最好的選擇。潤乾報表的外圍功能做得較少。其他報表系統(tǒng)上的一些功能,比如權限、用戶、門戶等功能并沒有實現,所以實際上也很難發(fā)揮應有的作用和滿足客戶應用的需要。4、JasperReportsJasperReports作為一個報表解決方案,它能提供的功能非常多,也非常強大,用戶通過它可以非常方便地完成報表的定制、設計、預覽和生成等步驟。它是用java編寫的,與其他報表工具相比較,它的優(yōu)勢體現在以下幾個方面6: (1)開放源代碼。源代碼的開放使開發(fā)人員可以更敏捷地

45、開發(fā)和實現此報表工具的一些功用以滿足項目需求。 (2)功能強大。報表擁有強大的功能,其通過圖表的鑲嵌,不同線段的使用,數據源連接的多選擇性,模板的編譯填充和數據的預覽輸出等功能,無論是復雜繁瑣的固定類型報表、子報表,還是其他的報表,都能非常完美地制定和實現,而且因為在開源的情況下,它的功能將會被不斷擴展。并且在融合iReport的情況下,它會跳過描寫XML的復雜過程,基本實現和完善報表的設計。iReport也是一款開源軟件,功能強大,它可以用可視化的方式來設計報表模板,生成的模板文件提供給JasperReports報表工具使用。它的出現,主要是為了降低JasperReports的設計難度,為用

46、戶提供可視化的報表設計工具。它采用Java編寫開發(fā),支持以圖形化方式操作XML文件,支持報表預覽、報表輸出打印功能,支持多種文件格式的報表文件輸出,同時支持復雜報表的編輯、設計與運行,例如交叉報表、子報表等,基于JFreeChart圖表庫的集成,可以在表中嵌入圖形7。iReport報表設計工具與JasperReports的結合使JasperReports的功能更加完善,表現性能更加出色。 (3)完美支持B/S架構的Web環(huán)境,因為它的類庫使用java編寫,而且能夠輸出打印以與產生多種格式的報表文件,例如PDF、XLS、HTML等。但是如同其他開源軟件一樣,JasperReports有著它本身的

47、缺陷,缺乏商業(yè)公司的技術支持,兼容性不夠等問題,因為開放源碼的特性,它的安全性得不到保障,而且在開發(fā)過程中常常會被一些小問題困擾。論文的主要容和特色基于開源軟件擁有開放源代碼、自由定制并且無需維護費用、易于管理、版本更新快等優(yōu)點,結合開發(fā)項目的實際需求,設計一套基于JasperReports技術的報表管理平臺框架,框架使用MVC模式實現,MVC框架有利于系統(tǒng)的擴展、調用以與二次開發(fā)。目標是學習JasperReports和MVC技術的相關架構和源代碼以與其他相關框架技術,設計平臺的功能模塊并進行代碼開發(fā),最后驗證系統(tǒng)的作用和效果。通過對報表管理平臺的設計和實現,掌握基本的報表開發(fā)環(huán)節(jié),真正領會報

48、表開發(fā)技術。本文以基于Jasper報表管理平臺這一項目的設計與實現為基礎,其主要容如下:1. 在基于用戶需求的前提下,分析報表管理平臺的技術框架。深入分析報表管理平臺相關技術的優(yōu)缺點,根據技術綜述,選擇所需系統(tǒng)下最適合的平臺實現技術框架,對平臺的整體業(yè)務功能和具體流程進行設計與實現,對視圖層采用Velocity和JSP技術,業(yè)務層采用Spring和SpringMVC框架,數據持久層采用iBATIS和DAO技術,數據庫采用MYSQL的技術框架進行了設計與實現。2. 分析Jasper報表引擎的源代碼。報表引擎是報表管理平臺的核心,對其各個模塊,例如整體流程的設計、編譯的步驟、數據源和輸出格式的選擇

49、等模塊進行源代碼的分析,有助于了解報表引擎的長處與不足,有利于項目的功能和技術框架設計,有利于項目的完全實現。3. 設計并實現報表管理平臺?;诟鞣N業(yè)務流程、技術框架的分析設計與報表引擎的源代碼分析,根據用戶需求和業(yè)務流程,實現系統(tǒng)的總體架構以與具體功能模塊。基于以上容設計的報表管理平臺擁有以下特點8:1. 具有較高的重用性。報表管理平臺采用MVC模式實現系統(tǒng)的職能分工,分層后更有利于組件的重用。如Model層、View層都可以獨立成一個模塊組件,供系統(tǒng)重用。2. 具有較高的靈活性。在MVC模式中,三個層級擁有不同的任務,各自完成自己的邏輯,而當某一個層級發(fā)生需求上的改變需要修改時,只需要在這

50、一層中更改代碼而不會影響到別的層級代碼。3. 具有較強的獨立與可維護性。系統(tǒng)的視圖部分采用Velocity模板技術開發(fā)實現,它的優(yōu)勢在于獨立于后臺組件,并不與業(yè)務邏輯層直接進行交互,方便進行維護。論文組織結構本文主要介紹了基于JasperReports工具的報表管理平臺的分析、設計與實現。本文共分為以下六個章節(jié):第一章:緒論。概述了報表管理平臺的背景與意義,國外研究的現狀和本文的主要研究容與其特色。第二章:報表管理平臺的技術綜述。對平臺相關技術進行分析綜述,為項目技術框架的設計實現奠定基礎。第三章:報表管理平臺的總體框架設計?;趯ο嚓P技術的綜述,設計報表管理平臺的整體業(yè)務流程和技術框架。第四

51、章:報表管理平臺的實現。通過對Jasper報表引擎的源代碼分析,實現對報表管理平臺的集成,并且實現了平臺的總體架構和具體功能模塊。第五章:報表輸出格式多樣化。通過對HTML和XLS這兩種不同輸出格式的報表生成,驗證了本系統(tǒng)支持多種格式報表輸出的特征。第六章:總結和展望??偨Y整體項目的設計實現情況,說明論文的主要工作容,發(fā)現其長處與不足,并透過開發(fā)過程展望報表管理平臺的未來。本章小結本章主要描述了本文課題的背景和意義,對目前報表工具的研究現狀和存在的問題一一進行了整理和分析,總結了論文的主要容和特色,最后是論文的組織結構。報表管理平臺的技術綜述報表管理平臺相關技術描述本文的報表管理平臺基于Jas

52、per報表工具,使用了MVC模式,表現層技術以與持久層框架,具體的技術綜述如下。JasperReports工具的技術綜述JasperReports報表工具是開源組織的免費軟件,它的功能非常強大,例如豐富的頁面容,支持多種文件格式等,也可以通過瀏覽器對報表文件進行遠程訪問。JasperReports工具的工作原理一個報表的整個實現過程由四個步驟組成,分別是報表XML文件解析、編譯報表設計、報表數據源填充和報表輸出。下面講述這四個過程的主要任務與原理9。(1)XML報表文件解析。JasperReports報表工具默認使用SAX版本解析器對XML報表文件進行解析,當然用戶也可以使用其他的解析包來完成

53、對XML報表文件的解析工作。(2)JasperDesign報表編譯。經過XML報表解析后,XML文件轉換成一個JasperDesign對象,此報表文件還需要經過編譯才能生成jasper文件。系統(tǒng)通過調用JRCompiler接口,將jasperDesign對象轉換成jasperReport對象,生成jasper文件。(3)JasperReports報表數據源填充。在報表編譯的基礎上,我們需要對jasper文件進行數據源的填充,以便根據數據的不同生成動態(tài)的報表。數據一般有多種來源,包括各種數據庫,本地或者遠程的數據文件等等。在數據填充的過程中,系統(tǒng)會調用JasperFillManager類,輸入j

54、asper文件,輸出jrprint文件。(4)JasperPrint報表輸出打印。最后,JasperPrint對象被輸出打印,JasperReports擁有比較豐富的輸出形式,它可以打印到各種顯示器上,也可以輸出成各種格式的文件,比如PDF、HTML、XML等。JasperReports的特點報表管理平臺采用的JasperReports工具具有以下特點:(1)JasperReports能夠生成多種格式的報表文件,包括EXCEL、HTML、XML、PDF等格式的報表。(2)JasperReports是開源的免費軟件,由java語言編寫,使用和維護成本相對其他報表工具來說比較低。(3)Jasper

55、Reports擁有靈活的報表排版,能夠以文本、圖形、表格等多種方式顯示數據,既可以提高工作效率,又擁有美化的報表界面。(4)JasperReports支持多種數據源,數據來源廣泛,更利于擴展。關于報表工具的相關綜述已經在前一章有過具體的描述,相對于其他報表工具而言,JasperReports報表引擎具備更加突出的優(yōu)勢,能夠滿足本系統(tǒng)功能齊全、報表復雜度高、支持格式多、維護成本低的特點。MVC框架技術綜述MVCMVC即Model-View-Controller10,也叫模型層、視圖層、控制層,相對于應用來說,如同輸入、處理、輸出流程。圖2.1是MVC設計模式的功能描述11。圖2.1 MVC設計模

56、式圖模型作為一個應用對象,具有封裝應用程序功能與狀態(tài)、通知視圖改變容等特點;視圖的作用是一方面發(fā)送用戶的請求給控制器并允許控制器選擇視圖,一方面獲取模型傳遞的信息,解釋模型的狀態(tài);控制器一方面可以定義用戶輸入的具體行為和請求,并通過用戶動作映射成模型,讓模型反應用戶的動作含義,另一方面可以反過來選擇視圖的相應程序 12。Struts2Struts2是基于WebWork的設計理念而創(chuàng)建的MVC框架,主要依靠攔截器來處理各種用戶的請求,使得控制器與Servlet API耦合降低,單元的測試性得到增強,也使得項目的開發(fā)難度降低,節(jié)約成本。而Struts2框架大致的處理流程如圖2.2所示13。圖2.2

57、 Struts2框架處理流程圖SpringMVCSpringMVC框架也是一個MVC框架,具備MVC框架的一般特性,它的設計是圍繞DispatcherServlet展開的,DispatcherServlet負責將請求派發(fā)到特定的handler。SpringMVC特點SpringMVC框架14擁有以下技術特點:(1)清晰的角色劃分:角色一般可以通過對象實現。角色大致有Servlet分發(fā)器、控制器、命令對象、驗證器、模型對象、表單對象、處理器映射(handler mapping)、視圖解析器(view resolver)等。(2)強大而直接的配置方式:基于JavaBean來配置,一般的框架和軟件都

58、能支持它,并且還支持跨多個context的引用。(3)可重用的業(yè)務代碼:當前的業(yè)務代碼對象可以被重用為其他的命令或者表單對象,并不需要去擴展或者重寫某個特定框架的基類。(4)可定制的綁定和驗證:可以將日期或者數字進行可定制的綁定,也可以驗證一些定制的錯誤,保存錯誤的值。而在其他的一些框架中,想要使用業(yè)務對象就必須依靠手動的解析和轉換。(5)靈活的model轉換:此框架中的Map的鍵/值對和其他各種視圖技術的集成會顯得更加輕松容易。(6)可定制的本地化和主題解析:無需其他的中間件就能與Velocity搭配使用,Spring標簽庫也可以隨時隨地提供給JSP加載和運用等。通過對Struts2框架和S

59、pringMVC框架的大概比較,我們發(fā)現兩者都是基于MVC的前段框架,Struts2相對于springMVC更重量級一點,SpringMVC結構更清晰,速度更快,基于本文系統(tǒng)的特點,SpringMVC框架擁有更大的性能優(yōu)勢,更能滿足我們報表系統(tǒng)的需求。表現層技術綜述JSP綜述JSP(Java Server Pages)15是一種動態(tài)網頁技術標準。它是在傳統(tǒng)網頁HTML中寫入Java代碼和JSP標記以形成JSP文件。它的應用是跨平臺的。JSP的特點JSP頁面是在java虛擬機上執(zhí)行的,當JSP頁面發(fā)送請求后,服務器將JSP頁面編譯成Servlet,然后執(zhí)行并且用HTML的格式返回結果給用戶。相比

60、較其他頁面技術,JSP的優(yōu)勢如下:(1)JSP技術能夠一次性完成編寫;(2)JSP技術支持在不同的系統(tǒng)環(huán)境下運行;(3)具備在多臺服務器上平均負載的能力,擁有較強的可伸縮性;(4)支持JSP技術的開發(fā)工具比較多,功能也比較強大。但是在MVC框架下,JSP部或許會被用來填寫Java代碼,極有可能造成MVC的結構不完整16。FreeMarker模板引擎綜述FreeMarker是一個用Java語言編寫的模板引擎,它會通過模板引擎來形成數據進行輸出。FreeMarker除了在表現層能夠展示信息外,它還可以輸出其他的文件格式,比如Java、XML等。它不依賴與Web容器而存在,也無法識別Servlet、

溫馨提示

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

評論

0/150

提交評論