本发明涉及报表技术领域,特别是涉及一种基于finereport工具的报表系统。
背景技术:
finereport报表软件是一款纯java编写的企业级web报表软件工具。它能够全面支持主流的b/s架构以及传统的c/s架构,部署方式简单而灵活。在软件开发过程中,可以加快开发速度,提高软件的稳定性;在软件交付后,可以大大降低维护难度,提高最终用户的满意度。开发出的软件可以做到随需应变。finereport提供了易用且高效率的报表设计方案,采用主流的数据双向扩展、真正无编码形式设计报表;具备强大的报表展示功能,并且提供完善的报表权限管理、报表调度管理;具有完备的报表填报功能,支持多级汇总填报。利用这一报表工具,用户即可把企业的业务模型、数据分析变成实际可操作的信息系统。
目前,报表在企业信息管理中起着非常重要的作用。报表用来作为企业管理的基本措施和途径,是企业、单位、团体、组织的基本业务需求,可以帮助企业、单位、团体、组织等访问数据,并将数据按照需要的格式,以可靠、安全的方式呈现出来。通过报表,可以很快捷方便的了解企业、单位、团体、组织的运营状况,支持高层的快速决策,为企业、单位、团体、组织的发展提供指导。但是目前采用finereport工具件形成的报表系统不具有数据展示和数据录入功能,用户使用便利性较低。
技术实现要素:
本发明的目的是提供一种基于finereport工具的报表系统,以实现数据展示和数据录入功能。
为解决上述技术问题,本发明提供一种基于finereport工具的报表系统,该系统包括:
报表设计器、报表服务器、数据源模块和报表模板库系统;
报表设计器用于依据报表模板库系统,利用数据源模块中的数据制作出页面模板,并将页面模板保存到报表服务器下的目录中;
报表服务器用于当用户通过浏览器访问页面模板时,将用户所访问的页面模板解析成客户端的html页面并返回给浏览器,以供用户查看或者录入数据。
优选的,所述报表服务器为在web环境下解析报表的servlet形式的服务器。
优选的,所述报表服务器包括:报表解析模块、缓存管理模块和性能管理模块。
优选的,所述报表解析模块用于读取和解析报表设计器制作好的页面模板,将页面模板转换为html页面。
优选的,所述数据源模块包含数据源,文本数据集和程序数据集。
优选的,所述报表模版库系统用于提供报表模板。
优选的,所述报表模板库系统包括:接口连接模块、报表转换模块、视觉效果模块、模板存储模块、模板显示模块。
优选的,所述报表模板库系统还包括模板查找模块和模板删除模块。
本发明所提供的一种基于finereport工具的报表系统,包括报表设计器、报表服务器、数据源模块和报表模板库系统;报表设计器用于依据报表模板库系统,利用数据源模块中的数据制作出页面模板,并将页面模板保存到报表服务器下的目录中;报表服务器用于当用户通过浏览器访问页面模板时,将用户所访问的页面模板解析成客户端的html页面并返回给浏览器,以供用户查看或者录入数据。可见,当用户通过浏览器远程访问某个页面模板,报表服务器会将用户指定的页面模板自动解析成客户端的html页面给浏览器,以供用户查看或者录入数据,这样用户就可以在浏览器中查看或录入数据,该报表系统实现数据展示和数据录入功能,最大化满足使用者最终需求,提升使用便利性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明所提供的一种基于finereport工具的报表系统的结构示意图;
图2为报表系统原理示意图;
图3为报表模板库系统功能示意图;
图4为表报系统功能示意图。
具体实施方式
本发明的核心是提供一种基于finereport工具的报表系统,以实现数据展示和数据录入功能。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明所提供的一种基于finereport工具的报表系统的结构示意图,该系统包括:
报表设计器101、报表服务器102、数据源模块103和报表模板库系统104;
报表设计器101用于依据报表模板库系统,利用数据源模块中的数据制作出页面模板,并将页面模板保存到报表服务器下的目录中;
报表服务器102用于当用户通过浏览器访问页面模板时,将用户所访问的页面模板解析成客户端的html页面并返回给浏览器,以供用户查看或者录入数据。
可见,该系统中,当用户通过浏览器远程访问某个页面模板,报表服务器会将用户指定的页面模板自动解析成客户端的html页面给浏览器,以供用户查看或者录入数据,这样用户就可以在浏览器中查看或录入数据,该报表系统实现数据展示和数据录入功能,最大化满足使用者最终需求,提升使用便利性。
基于上述系统,具体的,报表服务器为在web环境下解析报表的servlet形式的服务器。
其中,报表设计器为finereport工具提供的报表设计器。报表服务器为finereport服务器。
进一步的,报表服务器包括:报表解析模块、缓存管理模块和性能管理模块。
其中,报表解析模块用于读取和解析报表设计器制作好的页面模板,将页面模板转换为html页面。
进一步的,数据源模块包含数据源,文本数据集和程序数据集。
其中,报表模版库系统用于提供报表模板。
进一步的,报表模板库系统包括:接口连接模块、报表转换模块、视觉效果模块、模板存储模块、模板显示模块。
进一步的,报表模板库系统还包括模板查找模块和模板删除模块。
本系统由设计模板的设计器、解析模板的服务器、提供模板的模板库系统以及提供数据的数据源模块四部分组成,即包括报表设计器、报表服务器、数据源模块和报表模板库系统。
本系统中,依据报表模板库系统,通过finereport工具提供的模板设计器,拖拽数据源中的数据制作出实现数据展示(报表)和数据录入(表单)功能的页面模板,然后将这些模板保存至finereport服务器指定的目录下面。当最终用户通过浏览器远程访问某个页面模板,finereport服务器会将用户指定的页面模板自动解析成零客户端的html页面给浏览器,这样用户就可以在浏览器中查看或录入数据,最大化满足使用者最终需求。
其中,报表设计器可以进行表样、数据、展现和打印等报表设计文件中各种元素的设计,是报表设计和报表应用开发、调试以及部署的一体化平台。
报表服务器是指用在web环境中解析报表的servlet形式的服务器,包括报表解析模块、缓存管理模块和性能管理模块三部分。报表解析模块主要用来读取和解析设计器制作好的模板,并将模板转换成html页面,方便用户通过浏览器查看、修改和打印数据。缓存管理模块具有强大的缓存机制,用来提高报表运算效率。性能管理模块具有支持分布式集群、超大数据量运算以及大数量用户并发处理的功能,保证了数据的正确性和安全性。
其中,数据源模块包括数据源,文本数据集和程序数据集三部分。主要用来为报表设计器和报表服务器提供所需要的各种数据。
报表模板库模块可以直接提供报表模板,也可以对库中模板生成的报表进行修改,以达到自己的要求。同时,还可以将设计好的报表保存为模板,以备将来重复使用。具体包括接口连接模块、报表转换模块、视觉效果模块、模板存储模块、模板显示模块及其它功能模块。
其中,接口连接模块用来连接报表模板库与报表设计工具。报表转换模块是报表模板库的核心模块,用来对设计器中打开的报表进行转换。视觉效果模块产生的视觉效果包括界面设计中涉及的图片切换和鼠标移动效果。模板存储模块用以把报表模板库中所有数据及文件存储在xml文件中。模板显示模块用来显示模板相关信息。其它功能模块包括查找模板和删除模板功能。
本系统是一种具有数据展示(报表)和数据录入(表单)功能的、用来辅助软件开发的、基于finereport工具软件的报表系统。本系统具有优点:报表设计器界面简单易用,高效便捷;采用拖拽式设计,极大地提高了制作模板的效率;创新性的运用多人远程协助设计模板,增强了模板的锁定、解锁功能和权限控制,有力地保证了多人协作的高效和同步;具有强大的数据展示(报表)功能和多样化的数据呈现方式;在强大数据展现功能基础上,实现了表单内容和数据表的自由关联,使报表数据双向流动成为可能,解决了最终用户定制表单的问题;基于浏览器的零客户打印和创新的数据缓存容器,通过共享连接池,充分利用数据库连接,大大提高了数据库读取速度。
如图2所示,左侧下面是报表设计器,采用定制个性化设计器,设计器的菜单、工具栏,包括页面结构等均可以根据不同类型的用户进行个性化定制,充分满足用户个性化的需求。同时支持无失真导入excel文件,并在已有的excel文件的基础上绑定数据、进行编辑等。可以节约大量的时间,提高制作模板的效率。基于精巧的数据绑定功能,用户只需通过简单的鼠标拖放(拖拽式),即可制作模板。用户无需掌握复杂的代码编写能力,降低了学习难度。图2中,左侧上面为数据源模块,体现了finereport工具提供数据的多样性。另外,finereport可以同时连接到多个数据源,finereport内置的数据表关联功能,能轻松实现异构数据源的之间的表关联。
图2中,中间上面是报表服务器,finereport服务器创新的数据缓存容器,把从数据库读取的数据、设计的模板以及运算后的模板等将会占用很多内存的数据放到该容器内,使得finereport服务器支持无限并发和超大数据的显示。同时搭建多个finereport服务器的集群来一起处理客户端的请求。再使用连接池用以提高应用程序的性能及可伸缩性。采用多种集成使用方式进行报表的解析,计算。中间下面为报表模板库系统模块,本系统模板库中的模板,并不是分类的抽象,而是来源于行业实际运用、符合用户需求的典型报表。图2中,右侧为各种客户端,采用多源及多级汇总填报。
如图3所示,报表模板库系统的功能包括:连接接口、报表转换、视觉效果、模板存储、模板显示及其他功能。报销表模板库系统包括接口连接模块、报表转换模块、视觉效果模块、模板存储模块、模板显示模块和其它功能模块。在报表模板库中复用了报表设计工具的代码,使在报表模板库中也可以实现创建报表、打开报表的功能。在转换模块的具体转换中,首先要获取各个参数,如白色像素、灰色像素、报表图像各边距值及计算新坐标等。图片缩略需要使用在报表设计器中获取的各种参数值乘以缩略系数得出新坐标,这个新坐标才是图片缩略后图像的坐标。最后使用新坐标画出新的图像。
其中,视觉效果模块包括图片切换和鼠标移动效果两部分。图片切换指页面树形菜单中图片随着子结点的展开而进行的切换。鼠标移动效果是当鼠标移向分类模板、点击分类模板时,模板上显现的不同视觉效果。存储的模板数据包括树形菜单数据、分类模板数据、图片数据、预览模板数据、缩略模板数据、最近打开的文件以及模板数据。软件启动首页上呈现的是用户最近打开的报表文件和模板文件,这需要对配置文件进行配置并实时更新。分类模板将模板库中的模板分类显示,用户可以选择其中任何一个模板,并可以在预览模板中预览其放大图。
如图4所示,本系统具有零编码数据录入的表单和强大的数据展示(报表)功能。采用html、pdf、excel、word、text以及flash多样式呈现。无论数据库内原始数据是以何种样式的表结构存储,最终用户要求数据以何种表格样式显示,finereport独创的多数据源关联查询、公式动态扩展计算等强大的功能,在无需改变表结构、无需改变用户的要求的基础上,完全按照用户的需求制作出模板。通过高效灵活的设计器,可以自由定制符合自己业务逻辑的表单,同时承担起表单的后期维护。同时自由组合增删改查的数据库操作和数据校验。并且填写完一个单元格内容并且符合校验规则之后,表单会自动更新相关单元格内容或者计算出还未填入内容单元格的结果,减少录入工作量。表单单元格的内容不仅可以录入同一个数据库中多张物理表,还可以录入不同数据库中多张物理表。
其中,finereport可以连接到各种数据源,包括数据库、文件、excel文件、文本以及企业应用程序等。其中,通过jdbc/jndi、finereport可以连接到oracle、db2、sqlserver、mysql和sybase等所有主流的数据库,轻松实现异构数据源的之间的表关联。
详细的,基于本系统,具体报表设计实施步骤如下:
1、配置数据源;
在报表设计之前,首先要添加报表所展示的数据来源,数据源并不一定是数据库,也可以是程序数据源、文本数据源等;
2、新建报表;
在新建报表时,可以选择使用报表设计向导,也可以新建空白的自由报表,向导生成的是标准的分组表或者交叉表,生成后的报表可以自由修改。报表主设计界面是一个类似excel的表格;
3、添加数据源;
数据源的添加可以在新建报表之前,也可以在新建报表之后,数据源列表会显示在界面左侧的数据源面板当中,用户可以直接选中并拖拽数据列到单元格中,
4、设置数据记录摆放的方向;
通常一个数据列会返回多条记录,也就是一个单元格绑定了一个数据列,但这个数据列中有多行数据。所以要定义这些数据是从上到下进行列表,还是从左到右进行列表。一般来说,需要汇总的数据,可以对其进行不扩展的设置,这是因为汇总的单元格通常是作为其他单元格的附属格子来放置的;
5、设置数据的类型;
当单元格扩展时,无论数据是纵向放置还是横向放置,都可以从数据显示的角度进行分组,即将数据列中所有相同内容的记录进行合并;也可以进行数据列表,即将数据列中的所有数据记录扩展出来,无论数据记录是否重复;
6、设置单元格之间的关系。
除了可以绑定数据列,finereport的单元格在绑定数据之后,格子之间并非平行的关系,而是附属关系,这种附属关系可以是默认的,也可以人为指定。当一个格子默认不附属于任何格子或者指定它不属于任何格子时,这个格子就是顶级的格子,或者可以叫做首格。首格的扩展与其他的格子没有关系,而且这个首格后面的格子将默认作为这个首格的附属格。这时候就是所有将格子分成几块相互没有关系的格子组,达到报表分片的效果。
以上对本发明所提供的一种基于finereport工具的报表系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。