FineReport報表使用


FineReport報表是帆軟公司推出的可以嵌入java的免費報表。
FineReport有2部分組成,一有c/s端的報表工具制作cpt結尾的報表文件;二是 java調用報表的web程序。
這里主要說web程序的使用。
Struts2與Servlet共存問題:
理論上二者是無法共存的,因為Struts2的攔截器StrutsPrepareAndExecuteFilter如果配置為
<filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
在訪問Servlet時會攔截到,誤認為Servlet是一個Action。
處理方法:
1、配置Struts的<filter-mapping>訪問路徑,這Servlet還正常配置。
<filter-mapping>  
<filter-name>struts2</filter-name>  
<url-pattern>*.action</url-pattern> 
</filter-mapping> 
<filter-mapping>  
<filter-name>struts2</filter-name>  
<url-pattern>*.jsp</url-pattern> 
</filter-mapping> 
<filter-mapping>  
<filter-name>struts2</filter-name>  
<url-pattern>/user/*</url-pattern> 
</filter-mapping>
2、在Struts2的配置文件中添加如下代碼。
<constant name="struts.action.extension" value="action"></constant>
1、直接部署到web service中,通過鏈接調用報表。
安裝完FineReport報表后,在安裝路徑文件夾下有WebReport文件夾,這個文件夾就是FineReport的java調用程序。
制作好的報表文件存放在WebReport\WEB-INF\reportlets路徑下。
通過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>
訪問路徑:http://localhost:8075/WebReport/ReportServer?reportlet=WorkBook13.cpt
2、嵌入到程序中
1. 描述
由報表應用目錄結構章節可知,若希望將報表部署到已有的工程中時,需要按照下圖所示的目錄結構,將報表相關的文件拷貝到相應目錄:
 
2. 復制目錄編輯
2.1 全部復制
為了簡便,可以直接將%FineReport_HOME%\WebReport\WEB-INF目錄下面的classes,lib,plugins,reportlets,resources五個目錄復制到%Tomcat_HOME% \webapps\jsp-examples\WEB-INF下。
注意:%FineReport_HOME%\WebReport\WEB-INF\classes文件夾下面可能會放置一些網絡報表的class文件,在和您的工程集成時並無沖突。有關網絡報表的介紹,可以在二次開發文檔中找到。
2.2 部分復制
也可以選擇性的只復制必要性文件至已有工程中。
1)必須復制的文件
fr-chart-8.0.jar、fr-core-8.0.jar、fr-performance-8.0.jar、fr-platform-8.0.jar、fr-report-8.0.jar:包含了報表服務的所有功能,必須拷貝至WEB-INF\lib下;
fr-third-8.0.jar:包含了報表服務引用的第三方插件,必須拷貝至WEB-INF\lib下;
plugin-com.fr.plugin.mdnl-0.jar、plugin-com.fr.plugin.mdnl-1.jar、plugin-com.fr.plugin.mdnl-2.jar、plugin-com.fr.plugin.oldui-1.jar、plugin-com.fr.plugin.sap-0.jar、plugin-com.fr.plugin.sap-3.jar等plugin開頭的jar:包含了報表插件管理里安裝的所有插件,必須拷貝至WEB-INF\lib下;
plugins:該文件夾包含了報表管理里安裝的所有插件的jar包和配置信息,拷貝至WEB-INF下面。
reportlets:該文件夾為FineReport服務器規定的,不能修改,且必須為小寫,其下可以建立子目錄,所有報表模板cpt文件必須保存在reportlets文件夾下,且reportlets文件必須放在WEB-INF下面;
resources:該文件夾也是FineReport服務器規定的,不能修改,且必須為小寫,下面包含了報表服務器的配置信息,拷貝至WEB-INF下面。
以上文件或文件夾是必須拷貝到已有應用目錄下的。
2)選擇性復制的文件
classes:該文件夾是應用服務器規定的,主要作用是存放.class文件。若對FineReport進行了二次開發,如自定義函數、程序數據源、程序網絡報表等,也需要將編譯后的class類文件拷貝到該文件夾下;
數據庫驅動包:若報表中使用了JDBC連接了數據庫,需要將對應的數據庫驅動包如Oracle數據庫的驅動ojdbc14.jar拷貝到WEB-INF\lib下,其他數據庫驅動同樣;
3. 修改web.xml文件編輯
在已有工程的web.xml中添加相應的servlet與servlet-mapping子元素。
將%FineReport_HOME%/WebReport/WEB-INF下的web.xml中如下的部分復制到%Web_home%/webapps/Web工程名/WEB-INF下的web.xml中,在最后一個servlet之后插入:
1.    <servlet>  
2.        <servlet-name>ReportServer</servlet-name>  
3.        <servlet-class>com.fr.web.ReportServlet</servlet-class>  
4.        <load-on-startup>0</load-on-startup>  
5.    </servlet>  
6.    <servlet-mapping>  
7.        <servlet-name>ReportServer</servlet-name>  
8.        <url-pattern>/ReportServer</url-pattern>  
9.    </servlet-mapping>  
 
如上代碼復制放到如下目錄下面的配置文件里面結果如下:
 
注:web.xml中對於元素出現的順序敏感。servlet必須出現在servlet-mapping標志之前。所有將所有servlet集合放置在servlet-mapping之前以便於管理與程序調用。
4. 檢測是否部署成功編輯
可以通過瀏覽報表確定是否部署成功。
重新啟動Tomcat, 啟動瀏覽器,在地址欄輸入
http:/ip:服務器端口號/項目所在目錄/ReportServer,能成功進入下圖所示頁面,則表明FineReport應用集成web應用並部署Tomcat服務器成功:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM