产品中心

核心优势

FineReport是一款集数据展示(报表)和数据录入(表单)功能于一身,用于快速构建企业信息系统的Java报表软件。

有了FineReport报表,在软件开发过程中,可以革命性的加快开发速度,提高软件的稳定性;在软件交付后,能够大大的降低维护难度,提高最终用户的满意度,开发出的软件可以做到随需应变。

您可以点击以下列表快速查看FineReport报表的核心优势。

  • 类Excel报表设计器
  • 无缝导入导出Excel
  • 报表多源分片
  • 自定义规则分组
  • 报表行列对称
  • 报表层次坐标
  • 报表填报
  • 远程报表设计器
  • Flash客户端报表打印


  • 类Excel报表设计器

    FineReport在总结传统条带报表(word类型编辑器)和格子控件的优缺点之后,创造性提出用Excel类型界面编辑报表,彻底解决了中国复杂报表编辑效率问题,同时减少国内使用Excel做报表用户的学习成本,开创一代报表编辑模式。

    • 类 Excel 的报表设计界面
      类excel报表设计器

      类excel报表设计器

    • 报表编辑区域支持无限行和无限列。用户在编辑报表时候,不会因为行数和列数不够而需要手动添加行和添加列。
    • 报表支持多sheet设计。sheet编辑界面,添加和删除sheet方法和Excel相似。保证多sheet的Excel文件完全导入到一个报表文件中。同时,内容相关并且在一个sheet中文件完全导出为对应sheet的Excel文件。
    • 单元格命名完全和Excel相似。列用A、B、C………表示,行用1,2,3,4,5,6,7…..来表示。单元格用A1,B1,A2一一来标识。
    • 单元格中数据的字体、大小、颜色、边框、前景色、背景色等等,整行、整列、整表修改编辑风格以及格式刷等属性和Excel完全对应。
    • 公式调整类似Excel,当A1单元格中内容为=SUM(A2,A3),如在第一行前面插入一行,则公式内容调整=SUM(A3,A4)。
    • 表达式完全包含Excel公式写法,支持SUM(A1,A2)、SUM(A1+A2)和SUM(A1:A2)等。
    • 报表中图表元素支持悬浮,实现和表格的任意相对定位,最大程度解决用户报表随意带来的挑战。


    无缝导入导出Excel

    FineReport无失真导入Excel。当客户有已经通过Excel画好的Excel表样之后,可以用FineReport导入Excel文件,然后将需要动态展现数据的单元格绑定数据列,设定处理逻辑,快速完成报表制作,大量节约报表制作者绘制表样时间。而且大部分中国报表都是通过Excel描述表样,此特性用武空间更大。

    excel源文件

    excel源文件

    导入Excel表样,并且绑定数据列。

    导入excel源文件

    导入excel源文件

    导入Excel:

    传统条带状的报表工具,导出Excel文件,虽然内容没有丢失,但是行列拥挤在一起很难对Excel进行再编辑。FineReport的Excel处理模型彻底解决这一问题。

    finereport表样

    finereport表样

    导出后的Excel文件

    导出excel文件

    导出excel文件


    报表多源分片

    中国特色报表经常需要在一个报表中展现存在于几个数据库表中的数据。传统西方报表工具采用创建统一视图、写存储过程和用程序准备数据或者子报表来解决问题。

    作为第一类解决方案,创建统一试图、写存储过程和用程序准备数据。主要用于处理水平方向上的报表分片。但此方案存在SQL编写会过于复杂,多个join和union造成处理效率低下。

    第二类解决方案——子报表,主要用于解决竖直方向分片问题。但是在子报表存在如下问题:1)子报表各自为政,每次对主表和子表格式一调整,需要调整所有相关报表,报表间的对齐非常难解决。2)在数据上,主子表之间和子表相互之间都无法沟通数据,只能将主表的数据作为参数传递给子表,子表无法带回信息,也无法向其它子表提供信息。这时,整表的混合运算将非常困难,必须单独计算,无法采用某些子表的中间运算结果,不仅书写复杂,运算效率也降低。如下图中:传统报表中,总金额很难根据子报表中数据统计而来。

    FineReport的多源分片思想彻底解决了以上问题。一张报表能从多个数据库中提取数据或从一个数据库中多张数据库表中提取数据。报表制作效率提高五倍以上。同时,还能实现传统报表工具基本没有办法实现复杂分片报表。

    多源分片报表

    多源分片报表


    自定义规则分组

    任何报表工具的默认分组原则是,根据数据库中记录把值相同的作为一个分组。

    分组报表

    分组报表

    但像上面的报表,数据库中存储的数据是1、2、3、4、5、6……但是需要按照,小于20岁、20到25岁,25岁到30岁、30岁到35岁、大于三十五岁作为一组。这种分组规则只要穷举就可以完成。对于没有办法穷举,可以采用公式来定义规则进行分组。FineReport解决方案完全集中在一个界面中,在不需要记录公式和规则。

    自定义分组报表

    自定义分组报表


    报表行列对称

    传统报表工具在竖直方向处理能力强于水平方面的。存在两个严重缺陷:1)数据只能从上到下扩展,很难解决对于列动态和静态结合的非标准的交叉报表2)表头重复只能做到上表头重复,不能重复做表头。

    FineReport采用采用行列对称原理,弥补了传统报表的不错,做到水平方向处理和竖直方向一样强大。对于列动态和静态结合的非标准的交叉报,FineReport和竖直方向一样处理,让这些在传统报表中需要编程来实现的复杂交叉报表用用设计器就轻松搞定。

    报表行列对称属性

    报表行列对称属性

    如果需要让报表的左表头能重复,可以在设计器中页面设置处设置:

    报表行列对称属性设置方法

    报表行列对称属性设置方法


    报表层次坐标

    传统报表工具一般只提供同行内的格间运算和针对某组(或全体)的集合运算,对于如下几种情况存在不足:

    • 跨行运算,如可以引用上一行数据,典型应用就是做累计比和环比。
    • 跨组运算,如果同期比等跨组则无能为力。
    • 对于集合运算只提供个别固定的函数,如取第一名、算累计值等,无法组合出通用集合运算,如取第二名、算累计的乘积等。某些带条件的运算更是无法处理,如统计同组数据总比当前数大的个数,也就是数据排名。FineReport报表采用层次坐标,可以对扩展后的每个单元格进行精确定位,扩展后定位规则分为两种:
      1. 绝对层次坐标。单元格扩展后的命名规则如下:
        • Lk为某个单元格Cellx的左父格,lk 为左父格扩展后的次序,即扩展后的第几个单元格,如果不指定lk 或者lk 为0,则表示为当前表达式所在单元格所属的当前左父Lk;依此类推,上父格的原理也是相同的;
        • 如果没有左父格,只有上父格的话,分号不能省略,即写成Cellx [;Tk :tk, Tk-1 :tk-1,……T1 :t1];
        • 如果没有上父格,只有左父格的话,分号可以省略,即写成Cellx [Lk:lk, Lk-1:lk-1,……L1:l1 ];
        • Lk的次序是从远到近的,也就是从离当前格最远的父格开始的,也可以理解为从最高级别的分组格开始。
      2. 相对层次坐标。单元格扩展后的命名规则如下:
        • Lk为Cellx的左父格,lk为单元格的偏移量,即当前表达式所在单元格的左父格Lk的上lk格或下lk格,如果不指定lk,则表示为当前所在的左父格Lk,Cellx为目标单元格,一般为Lk,Lk-1,……,L1的附属单元格,即子格;
        • 如果没有左父格,只有上父格的话,分号不能省略,即写成Cellx [;Tk :±tk, Tk-1 :±tk-1,……T1 :±t1];
        • 如果没有上父格,只有左父格的话,分号可以省略,即写成Cellx [Lk:±lk, Lk-1:±lk-1,……L1:±l1 ];
        • Lk的次序是从远到近的,也就是从离当前格最远的父格开始的,也可以理解为从最高级别的分组格开始。

      这样就能轻松做出来如下报表:

      报表层次坐标属性

      报表层次坐标属性


      报表填报

      传统报表工具只能做将数据库数据读取到全端,解决数据展现问题,可以总结为数据读。FineReport不仅实现了数据读,而且实现了数据写,做到数据双向流动。

      报表填报关键有如下几点:

      • 将能体现业务规则的数据表与报表单元格之间匹配起来。在设计报表表样时候不用考虑数据库结构;设计数据库结构时候不用考虑将来填报表设计。
      • 报表前端展现样式丰富。实现完整格数据校验,保证数据有效性;在修改某个单元格能做到自动计算。
      • 填报和展现数据无关,填报表和展现表的数据流动路线完全分开,可以将A数据库表中数据展现在前端,然后回填报B数据库表。

      通过以上技术,FineReport可以轻松实现三张典型的填报表:

      1. 明细填报表:做到对数据的增删改查。
        明细填报表

        明细填报表

      2. 员工信息表:报表上所有数据对应数据库的一条记录,但表格画起来很麻烦。另外可以检验各个表单厂商对编辑器的支持。
        员工信息表

        员工信息表

      3. 多源填报表:一张填报表填入的数据,同时保存到多张物理表中,并且要求多张表之间保持数据库。
        多源填报表

        多源填报表

        填报表应用最常见应用是和工作流结合,FineReport提供大量交互接口。具有西安协同,JBPM等工作流成功案例。


      远程报表设计器

      市场上所有报表工具设计器只有两层结构,安装之后报表引擎和报表设计界面都在客户端,如果预览报表,所有数据取数和报表计算工作都在客户端进行,而且在项目后期对报表产品进行维护时候,需要手工发布到到服务器。

      FineReport设计器具有传统报表服务器两层结构,而且具有如下三层结构:

      远程报表设计器

      远程报表设计器

      另外FineReport三层设计器结构结合权限,报表模板锁定,报表解锁。能实现多人协同制作报表。


      Flash客户端打印

      作为web报表工具,如果直接调用javascript中Print方法来实现打印,完全没有办法解决报表精确打印的问题。于是先后出现ActiveX,Applet,PDF,Excel等报表打印方案,这些方案都存在不支持跨浏览器打印,需要在客户端安装软件等不足,应该总结为伪web打印方案。

      FineReport独创web打印方式,第一次完美解决了困扰软件行业10多年的基于浏览器的打印问题。