JEECG整合finereport快速搭建与开发
JEECG整合finereport快速搭建與開發(fā)
FineReport介紹
???????? FineReport報表軟件具有完備的報表填報功能,支持多級匯總填報。利用這一報表工具,用戶即可把企業(yè)的業(yè)務(wù)模型,數(shù)據(jù)分析變成實際可操作的信息系統(tǒng)。利用報表展現(xiàn)、填報、匯總、統(tǒng)計分析、打印輸出等功能搭建出輕量級企業(yè)報表平臺。特別是采用主流的數(shù)據(jù)雙向擴展,多源分片,純拖拽等方式來進行報表設(shè)計,讓報表設(shè)計人員無需掌握復(fù)雜的代碼編寫技能,從而業(yè)務(wù)人員也可以隨時根據(jù)需要設(shè)計符合業(yè)務(wù)邏輯的報表,滿足報表使用者的最終需求。無形中也降低了企業(yè)的運營成本.
更多介紹詳見:
FineReport官網(wǎng):http://www.finereport.com/
百度百科: http://baike.baidu.com/link?url=wyMAqDlInujEePMP7JP1DfApZQSE-X5lMMB47ZXdaYa0VR5qtuYyDwigJBjseKLGkRoccyr8hY2Nq9AnHYecEq
?
JEECG整合FineReport考慮:
???????? JEECG目前僅支持JavaScript組件生成報表,缺少對第三方報表工具的支持,不利于報表的快速開發(fā)以及對報表的復(fù)雜需求的的滿足。
?
JEECG整個FineReport步驟:
?
1、? 從fineReport官方獲取安裝程序以及l(fā)icense文件。
2、? 安裝fineReport程序以及導(dǎo)入license文件。
3、? 搭建JEECG開發(fā)環(huán)境,參照《JEECG開發(fā)指南v3.4.2.pdf》
4、? 搭建完成之后,我們著手準備將FineReport整合到JEECG項目中。
5、? 復(fù)制所需目錄(備注:以下拷貝最好是在報表開發(fā)調(diào)試完成后,完成以下步驟)
5.1、全部復(fù)制
為了簡便,可以直接將%FineReport_HOME%\WebReport\WEB-INF目錄下面的classes,lib,reportlets,resources四個目錄復(fù)制到%Tomcat_HOME% \webapps\jsp-examples\WEB-INF下。
注意:%FineReport_HOME%\WebReport\WEB-INF\classes文件夾下面可能會放置一些網(wǎng)絡(luò)報表的class文件,在和您的工程集成時并無沖突。有關(guān)網(wǎng)絡(luò)報表的介紹,可以在二次開發(fā)文檔中找到。
5.2部分復(fù)制
也可以選擇性的只復(fù)制必要性文件至已有工程中。
- 必須復(fù)制的文件
fr-server-*.jar:包含了報表服務(wù)的所有功能,必須拷貝至WEB-INF\lib下;
fr-third-*.jar:包含了報表服務(wù)引用的第三方插件,必須拷貝至WEB-INF\lib下;
reportlets:該文件夾為FineReport服務(wù)器規(guī)定的,不能修改,且必須為小寫,其下可以建立子目錄,所有報表模板cpt文件必須保存在reportlets文件夾下,且reportlets文件必須放在WEB-INF\下;
resources:該文件夾也是FineReport服務(wù)器規(guī)定的,不能修改,且必須為小寫,下面包含了報表服務(wù)器的配置信息,拷貝至WEB-INF下面。
以上文件或文件夾是必須拷貝到已有應(yīng)用目錄下的。
- 選擇性復(fù)制的文件
classes:該文件夾是應(yīng)用服務(wù)器規(guī)定的,主要作用是存放.class文件。若對FineReport進行了二次開發(fā),如自定義函數(shù)、程序數(shù)據(jù)源、程序網(wǎng)絡(luò)報表等,也需要將編譯后的class類文件拷貝到該文件夾下;
數(shù)據(jù)庫驅(qū)動包:若報表中使用了JDBC連接了數(shù)據(jù)庫,需要將對應(yīng)的數(shù)據(jù)庫驅(qū)動包如Oracle數(shù)據(jù)庫的驅(qū)動ojdbc14.jar拷貝到WEB-INF\lib下,其他數(shù)據(jù)庫驅(qū)動同樣;
5.3. 修改web.xml文件
在已有工程的web.xml中添加相應(yīng)的servlet與servlet-mapping子元素。
將%FineReport_HOME%/WebReport/WEB-INF下的web.xml中如下的部分復(fù)制到%Web_home%/webapps/Web工程名/WEB-INF下的web.xml中,在最后一個servlet之后插入:
<servlet>??
????<servlet-name>ReportServer</servlet-name>??
????<servlet-class>com.fr.web.ReportServlet</servlet-class> ??
????<load-on-startup>0</load-on-startup> ??
</servlet>??
<servlet-mapping>??
????<servlet-name>ReportServer</servlet-name>??
????<url-pattern>/ReportServer</url-pattern>??
</servlet-mapping>??
?
6、? 修改FineReport的 datasource.xml 的數(shù)據(jù)庫連接
<ConnectionMap>
<Connection name="jeecg-dk"class="com.fr.data.impl.JDBCDatabaseConnection">
<DatabaseAttr/>
<JDBCDatabaseAttr url="jdbc:mysql://localhost/jeecg-dk"
????????????? ? driver="com.mysql.jdbc.Driver"
????????????? ? user="root"
????????????? ? password="___006100210065007b"
????????????? ? encryptPassword="true">
<DBCPAttr/>
</JDBCDatabaseAttr>
</Connection>
</ConnectionMap>
Connection name 為報表工程中的數(shù)據(jù)源連接路名稱。示例中給出的是jeecg-dk.
?
配置完成之后,我們就將FineReport的報表工程整合到我們的項目當中了。
剩下的就是需要解決JEECG工程如何調(diào)用這些報表。
7、? 在JEECG中配置瀏覽FineReport報表的菜單。在/jeecg/system/service/impl/RepairServiceImpl.java中添加如下代碼:
??????? TSFunction reportdemo = new TSFunction();
??????? reportdemo.setFunctionName("報表操作名稱");
??????? reportdemo.setFunctionUrl("ReportServer?reportlet=報表名稱.cpt&isIframe");
??????? reportdemo.setFunctionLevel((short)1);
??????? reportdemo.setFunctionOrder("17");
??????? reportdemo.setTSFunction(state);
??????? reportdemo.setTSIcon(pic);
??????? commonDao.saveOrUpdate(reportdemo);
8、 發(fā)布應(yīng)用,啟動tomcat.
9、 進入系統(tǒng)
?
10、????? 根據(jù)第7步設(shè)定的菜單按鈕,如下圖:
11、????? 點擊按鈕查詢出報表。如圖:
?
總結(jié)
以上是生活随笔為你收集整理的JEECG整合finereport快速搭建与开发的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开发指南专题七:JEECG微云快速开发平
- 下一篇: 【ZT】详细设计文档规范