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服务器成功:
FineReport报表使用的更多相关文章
- 用FineReport报表系统构建资金监管平台
一.应用背景 计算机的应用已经渗透到日常工作的许多方面,无论是其自身还是所发挥的作用,计算机都标志着一种高科技,使工作高效率和高水平.为了能更方便,更轻松,更好的管理,信息化建设正在日益发展壮大,更加 ...
- 加快FineReport报表设计的几个心得体会
加快FineReport报表设计的几个心得体会 一.从远程服务器大批量取数进行表样设计时,最好按“列顺序”取一个“空的SQL语句”,这样可提高设计速度.否则每次设计时模板均要从远程读取数据,速度相当慢 ...
- FineReport报表和水晶报表的比较
FineReport报表和水晶报表的比较 FineReport报表软件针对复杂格式的报表数据及Web报表的展现,通过多源分片.不规则分组.双向扩展来轻松拖拽做复杂格式的报表,制作报表从此摆脱了复杂的S ...
- 帆软FineReport报表由于使用HTML显示后无法控制行高
问题:帆软FineReport报表由于使用HTML显示后无法控制行高. 原因:首先每行的第一个单元格是以HTML显示的,然后,数据库查询的数据集中,sql语句中包含这个代码:'<pre>' ...
- FineReport报表系统实例方案之医院院长查询分析系统
医院院长查询系统 目前,大中型医院的信息处理正从传统手工方式飞速向电脑信息化建设方案转变,一个大中型医院担负着繁重的医疗和科研任务,以及繁杂的事务性工作,院长必须时刻与各科室保持密切的连续,以便随时了 ...
- finereport报表--动态格间运算 二
报表输出
- finereport报表--动态格间运算 一
一.运算符: ! 绝对值 A2[A2:!1] ; A2 标示从列A纵向第2单元格开始,!1 表示第1个位置的单元格; [A2:!1] 代表索引,表示从A列纵向开始往下,第1个单元格的位置的索引 ...
- 去除FineReport报表点击单元格时出现的黑框
选择模版->模版web属性 添加加载结束事件,具体代码如下 $("td").bind("click",function(){return false;}) ...
- 帆软FineReport报表使用小技巧
1.IF函数写法: =IF(E3=0 && F3=0 && G3=0,1,0)
随机推荐
- [译]GLUT教程 - 改变窗体大小
Lighthouse3d.com >> GLUT Tutorial >> Basics >> Resizing the Window 上一章的例子创建了两个窗体,命 ...
- 第一次接触solr的过程记录
1.以solr-4.6.0.tgz为例进行学习 2.第一步,看的是 tutorial.html(位于solr-4.6.0/docs目录),默认solr以jetty作为servlet容器 3.但是,如果 ...
- 【Python+selenium Wendriver API】之操作警告和弹出框
参考文章: <Python+Selenium笔记(九):操作警告和弹出框>
- 创建有提示的ui组件
using UnityEditor; using UnityEngine; using System.Collections; using Edelweiss.CloudSystem; namespa ...
- C#中Dictionary的作用及用法讲解
Dictionary<string, string>是一个泛型 他本身有集合的功能有时候可以把它看成数组 他的结构是这样的:Dictionary<[key], [value]> ...
- unity视频教程
英雄联盟教程 http://pan.baidu.com/s/1i3rkMS9 密码:bv6r https://pan.baidu.com/share/link?shareid=258985 ...
- HBase核心技术点
表的rowkey设计核心思想: 依据rowkey查询最快 对rowkey进行范围查询range 前缀匹配 预分区创建的三种方式 create 'ns1:t1', 'f1', SPLITS => ...
- java 基于tomcat的数据源案例
1.在context中定义数据源 <?xml version="1.0" encoding="UTF-8"?> <Context path=& ...
- 九度OJ 1260:珍珠项链 (字符串处理、DP)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:101 解决:27 题目描述: 假设有一条珍珠项链,有很多珍珠,r代表红色, b代表蓝色, w代表白色. 假设你在某一处剪开之后,你会沿着顺时 ...
- They're much closer in spirit to how our brains work than feedforward networks.
http://neuralnetworksanddeeplearning.com/chap1.html Up to now, we've been discussing neural networks ...