基于web应用的报表设计与实现
摘要:随着企业信息化进程的不断发展,Web系统应用在各领域中正积极发挥着越来越重要的作用,Web报表也已成为日常管理工作中的重要组成部分。如今现有国内外市场的Web报表设计器虽然能设计出动态和精美直观展示数据的报表,但是较少能设计出具有修改数据源数据功能的报表,降低了报表与数据源之间数据的交互性,且报表仅能从查数据方面对数据源数据作单一应用,对数据存取的灵活度降低导致报表在实际的工作应用过程中十分局限。本文以Ureport数据处理引擎为基础设计出具有与数据源数据交互性强的报表系统,除了可以获取数据进行展示外,还可以根据用户提交的报表数据对数据源中指定的数据进行动态和智能的修改,包括数据的增加、删除和更新,提高了报表在日常工作中的适用性的同时也提升了工作效率。
关键字:web报表,Ureport,数据交互,智能填报
Report design and implementation based on web application
Jin Wang
(The 43rd Research Institute of CETC, Hefei 230088, China)
Abstract: With the continuous development of enterprise informatization, Web system applications are playing an increasingly important role in various fields, and Web reports have become an important part of daily management. Nowadays, although the existing Web report designers in the domestic and foreign markets can design reports that display data dynamically and visually, few can design reports that have the function of modifying data source data, which reduces the data interaction between reports and data sources. In addition, reports can only make a single application of data source data from the perspective of data query, and the reduced flexibility of data access leads to the report being very limited in the actual work application process. This paper designs a report system with strong interactivity with data source data based on the Ureport data processing engine. In addition to obtaining data for display, it can also dynamically and intelligently modify the data specified in the data source according to the report data submitted by users, including the addition, deletion and update of data, which improves the applicability of the report in daily work and also improves the work efficiency.
Keywords: Web report, Ureport, Data interaction, Intelligent filling
一、绪论
信息系统已成为社会各行业必不可少的重要组成元素之一,为政府、企业、学校等各种机构单位提供信息管理、服务、分析、决策等功能,报表是其中一种重要表现形式之一,因此在很多应用系统中,报表都是其重要的一个功能模块[1]
随着数字信息化产业的发展,近些年国内也出现了一些企业级的报表工具。例如FineReport,由帆软公司自主研发的企业级Web报表软件,采用的是类Excel的设计模式,其主要功能是通过报表对数据进行分析,实现了HTML5图表、联动、多种数据钻取、数据分析方式[3]。FineReport自身功能强大,能够解决大多数的企业报表需求,缺点是过于注重细节,有的功能显得有些累赘[4]。润乾报表是一款基于纯Java开发的企业级报表软件,无需安装控件即可实现基于B/S端的报表方式,并且具有统计报表制作及数据填报功能,服务器端提供了丰富的应用函数调用和标记[5]。由于润乾报表部分功能需要用户自行填写表达式和SQL语句,因此增加了软件的学习成本和使用难度。
二、Ureport引擎简介
Ureport是以Spring为基础框架的纯粹Java语言并且基于单元格迭代模型的报表引擎, 提供了分别基于浏览器的网页版和基于Eclipse的插件版的两种报表设计器,其中的网页版设计器Ureport2是在原Ureport1的基础之上新增的全新报表设计器,重构了原有的全部代码,其整体结构如图1所示。通过选择不同类型中的任意一种设计器,用户均可以在不用编程的情况下完成大多数的报表模板的设计工作。当选择最新版本的Ureport2设计器时,用户打开浏览器即可设计和制作出各种复杂的报表。
图1 Ureport结构图
  Ureport在运行时无需依赖于其他的展现中间件,既可以部署为独立服务,也可以将其作为一个功能模块放在项目中使用。基于Ureport的可拓展性强和灵活度高的特征,在此基础之上进行数据的动态和智能填报的功能优化将变得更加方便与适合。
三、基于Ureport引擎的报表设计
在Ureport引擎基础之上设计出一款具有智能填报功能的web报表,其结构图如图2所示。
图2 web报表逻辑图
3.1数据填报页面功能sql语句实现的四种功能
在报表设计器的数据填报功能中,数据填报功能是在原有Ureport对单元格属性设置的基础之上,新增填报控件功能的控件设置选项。如图3所示。在对报表模板进行设计时,用户可以在选中的单元格上配置填报的内容控件,包括文本控件、下拉选择控件和时间控件等,报表设计完成并对报表进行填报预览时,文本控件可以让用户在选中的单元格中直接输入文本、下拉选择控件可以让用户在下拉选项中选择数据并填充到单元格中,时间控件可以让用户在日历面板中选择年月日和在时间面板中选择时分秒,并将完整时间填充到单元格中。用户除了可以在报表设计时对单元格设置填报的内容控件,还可以设置填报的按钮控件,主要包括“新增一行”和“删除一行”两种按钮控件,在对报表进行填报预览时,“新增一行”可以在报表中新增一条空白行,空白行的内容可由用户进行填写;“删除一行”可以对按钮所在行的内容进行删除。
图3单元格的填报控件设置
在报表设计器中完成设置单元格的填报控件后,还需对该报表模板的数据填报属性中数据源进行绑定,绑定内容包括数据库、模式名(部分数据库)、数据表以及报表单元格与数据表中字段的对应关系,绑定的目的是在用户进行数据填报时可以将提交的数据与指定的目标数据库中数据表的数据进行交互。
在报表预览的数据填报功能中,除了在报表设计器中设置的填报控件外,在Web页面顶部的功能菜单栏中新增数据提交按钮,该按钮可以将报表中用户对数据的处理结果提交到后台,其中处理过程包括删除和新增数据,数据提交功能可以实现一键智能提交。
图4 报表填报预览的功能页面
3.2数据填报的数据传输格式
在用户提交填报预览模式下的报表中的数据后,前端会生成一条对数据的操作记录并传输
至后台,该记录中主要包括已删除和新增的两类数据,其中新增数据既包括通过“新增一行”按钮进行添加的数据,也包括对已有数据的修改。数据传输格式示例如下图所示。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。