zoukankan      html  css  js  c++  java
  • 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调用程序。
    制作好的报表文件存放在WebReportWEB-INF
    eportlets路径下。
    通过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%WebReportWEB-INF目录下面的classes,lib,plugins,reportlets,resources五个目录复制到%Tomcat_HOME% webappsjsp-examplesWEB-INF下。
    注意:%FineReport_HOME%WebReportWEB-INFclasses文件夹下面可能会放置一些网络报表的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-INFlib下;
    fr-third-8.0.jar:包含了报表服务引用的第三方插件,必须拷贝至WEB-INFlib下;
    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-INFlib下;
    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-INFlib下,其他数据库驱动同样;
    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服务器成功:
  • 相关阅读:
    Spring 整合过滤器
    Spring Boot 整合 AOP
    Linux IO模式及 select、poll、epoll详解
    java 集合之ArrayList、Vector、LinkedList、CopyOnWriteArrayList
    java 集合之HashMap、Hashtable、LinkedHashMap、TreeMap
    java modCount和fail-fast
    java ArrayList迭代过程中删除
    JVM metaspace元空间
    反转链表
    合并两个排序的链表
  • 原文地址:https://www.cnblogs.com/gynbk/p/6561514.html
Copyright © 2011-2022 走看看