一直以来,报表功能的开发都是应用系统开发的重点难点。近年来,一些基于Excel 的报表工具的涌现使得报表开发变得越来越简便,极大地减轻了系统开发人员的负担。本文将介绍一款优秀的报表工具———java报表软件FineReport 的基本使用及其与系统工程的集成方法。 一、FineReport 介绍 FineReport java报表软件是一款纯Java 编写的企业级Web 报表软件工具。它能够全面支持主流的B/S 架构以及传统的C/S 架构,部署方式简单而灵活。java报表软件FineReport提供了易用且高效率的报表设计方案,采用主流的数据双向扩展、真正无编码形式设计报表;具备强大的报表展示功能,并且提供完善的报表权限管理、报表调度管理;具有完备的报表填报功能,支持多级汇总填报。 利用这一报表工具,用户即可把企业的业务模型、数据分析变成实际可操作的信息系统。利用报表展现、填报、汇总、统计分析、打印输出等功能搭建出轻量级企业报表平台。特别是采用主流的数据双向扩展、多源分片、纯拖拽等方式来进行报表设计,让报表设计人员 无需掌握复杂的代码编写技能,也可以随时根据需要设计出符合业务逻辑的报表,满足报表使用者的需求,无形中也降低了企业的运营成本。 java报表软件FineReport 由设计模板的设计器和解析模板的服务器组成。 (一)设计器 java报表FineReport 设计器的界面(如图1 所示)简单易用,熟悉Microsoft Excel 的用户不需任何额外学习成本。一般用户也能在阅读java报表软件FineReport 提供的帮助文档后快速掌握设计器的使用。
http://www.finereport.com/forumimages/fr-designerinterface.jpg (二)服务器 java报表软件FineReport 服务器主要用来读取和解析设计器制作好的模板,并将模板转换成html 页面,方便用户通过IE, Firefox 等浏览器查看、修改和打印数据。同时java报表软件FineReport 服务器内置了强大的缓存机制和集群机制,支持超大数据量的运算和大数量用户的并发处理,并创新性地采用flash 技术,完美支持零客户端精确打印。 二、FineReport 报表设计流程 使用java报表软件FineReport 设计器进行报表设计大致可分成如下几个步骤。 (一)配置数据源 在报表设计之前,首先要添加报表所展示的数据来源,数据源并不一定是数据库,也可以是程序数据源、文本数据源等。 (二)新建报表 在新建报表时,可以选择使用报表设计向导,也可以新建空白的自由报表,向导生成的是标准的分组表或者交叉表,生成后的报表可以自由修改。报表主设计界面是一个类似Excel 的表格。 (三)添加数据源 数据源的添加可以在新建报表之前,也可以在新建报表之后。数据源列表会显示在左侧的数据源面板当中,用户可以直接选中并拖拽数据列到单元格中。 (四)设置数据记录摆放的方向 通常一个数据列会返回多条记录,也就是一个单元格绑定了一个数据列,但这个数据列中有多行数据。所以要定义这些数据是从上到下进行列表,还是从左到右进行列表。一般来说,需要汇总的数据,可以对其进行不扩展的设置。这是因为汇总的单元格通常是作为其他单元格的附属格子来放置的。 (五)设置数据的类型 当单元格扩展时,无论数据是纵向放置还是横向放置,都可以从数据显示的角度进行分组,即将数据列中所有相同内容的记录进行合并;也可以进行数据列表,即将数据列中的所有数据记录扩展出来,无论数据记录是否重复。 (六)设置单元格之间的关系 除了可以绑定数据列,java报表软件FineReport 的单元格在绑定数据之后,格子之间并非平行的关系,而是附属关系,这种附属关系可以是默认的,也可以人为指定。 当一个格子默认不附属于任何格子或者我们指定它不属于任何格子时,这个格子就是顶级的格子,或者可以叫做首格。首格的扩展与其他的格子没有关系,而且这个首格后面的格子将默认作为这个首格的附属格。这时候就是所有将格子分成几块相互没有关系的格子组,达到报表分片的效果。 三、FineReport 报表与Tomcat 服务器的集成 由于java报表软件FineReport 提供的报表服务器其实就是一个Servlet,所以通过简单的配置,就可以将java报表软件FineReport 设计的报表集成到Tomcat 服务器中。 假设已存在一个名为Test 的工程和一个设计好的报表report1.cpt,下面介绍如何将report1.cpt这个报表集成到Test工程中。 (一)复制文件 将%FineReport_HOME%\WebReport\WEB-INF 路径下面的classes,lib,reportlets,resources 四个文件复制到%Tomcat_HOME %\webapps\Test\WEB-INF 下。如果Test 工程中已存在class,lib 文件夹,则将%FineReport_HOME%\WebReport\WEB-INF路径下面的classes,lib 文件夹的文件拷贝到%Tomcat_HOME%\webapps\Test\WEB-INF 下的class,lib文件夹中。 (二)整合web.xml 文件 1. 在% Tomcat_HOME% \webapps\Test\WEB -INF目录下的web.xml 中找到的信息(如图2 所示)。
http://www.finereport.com/forumimages/fr-tomcatweb xml.jpg 2. 在%FineReport_HOME%/WebReport/WEB -INF下的web.xml 中找到的信息(如图3 所示)。
http://www.finereport.com/forumimages/fr-frweb xml.jpg 3. 将%FineReport_HOME%/WebReport/WEB -INF下的web.xml 中找到的内容复制到%Tomcat5.5%\webapps\Test\WEB-INF 目录下的web.xml 中,放在<servlet-mapping> 标志之前,</servlet>标志之后。 (三)浏览报表 重新启动Tomcat,启动浏览器,在地址栏输入http://localhost:8080/Test/ReportServer reportlet=/com/test/report1.cpt,在浏览器中可以看到以下界面(如图4 所示)。
http://www.finereport.com/forumimages/fr-initialdatareport.jpg 四、总结 从以上介绍可以看出,使用java报表软件FineReport进行报表开发的过程简单、快捷,同时java报表软件FineReport 提供与大多数主流服务器兼容的集成方法,确保系统工程的整体性。由于篇幅有限,java报表软件FineReoport 的功能未能完全介绍,有待广大读者在实际使用过程中进一步发掘。
|