企业报表系统的设计与实现
作者:***
来源:《电子技术与软件工程》2017年第20期
        摘 要 依据广西柳钢集团股份有限公司综合报表系统的开发过程,初步分析和探讨了企业报表系统的设计与实现,提供了一条企业报表系统的开发设计思路。
        【关键词】报表系统 Finereprt 三层架构 MVC 数据库 数据传输
        广西柳钢集团股份有限公司(以下简称柳钢)实施了MES(Manufacturing Execution System)即制造企业生产过程执行系统后,鉴于系统的报表数据分散在各子系统上,用户查询起来感觉麻烦不方便,而且还要安装各种软件控件才能登陆系统查看。因此,公司需要建设一个公司范围内的报表系统来全面展示MES系统上的数据信息给业务用户查看。设计要求为能快速开发以及系统建成后的稳定运行并且要有较高的用户使用体验。根据要求,考虑采用B/S模式展示报表数据,用户只需要打开浏览器输入报表系统网址就可以查询各类生产数据,省去了在用户电脑上配置各种控件、安装各种软件才能查看的不足之处。针对上述问题以及考虑的
实现方式,设计了融合finereport(以下简称FR)平台的报表系统,力求使业务人员更加高效的管理和使用数据,做到与业务系统的完美融合。
        1 生产报表系统设计方法
        1.1 生产数据管理
        柳钢综合报表系统主要包含三部分数据:现场数据、用户录入数据、外部系统传输过来的数据。如图1所示,第一种方式,现场数据、录入数据、外部系统数据通过数据采集程序收集起来,然后传输给定时转存程序、数据运算处理程序,而外部系统的数据则由电文接收处理程序直接接收处理。处理程序把数据处理好后统一放入数据库对应的存储表中,报表系统对数据库表进行统一读取数据并展示给用户查看。这种数据管理方法是为了应对复杂并且数据查询量大的报表而采用的。第二种方式,数据直接传给FR框架,实现数据现算现取现查,数据量不大的查询则采用第二种方式进行。通过采用这两种数据查询方式,可以快速满足用户对报表系统查询速度的要求。
        1.2 报表系统的设计方法
        采用传统的B/S三层架构,用户表示层、业务逻辑层、数据服务层作为基本设计思路。用户表示层负责把数据展示给用户查看,用户可以对有修改录入操作需求的部分报表数据进行修改录入等操作。而业务数据层则负责对采集上来的数据进行逻辑处理从而形成用户需要的数据信息。数据服务层则是各个采集系统的底层数据库,包括各种各样的数据表,视图等。通过三层架构的设计,可以大大提高系统各模块间的高内聚,低耦合,从而充分发挥系统的性能和极大扩展系统的可维护性。如图2所示。
        在编码的模式上采用MVC框架下的编码模式,MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
        2 生产报表系统的设计
        2.1 企业级集成设计
        FR软件是由JAVA系统编写的,集数据展示和数据录入功能于一身的企业级Web报表工具,其自身也支持多种插件的开发扩展,同时也提供了多种数据集成方案。
        采用C# 编写报表系统主程序,把FR集成到 报表系统主程序中。目前FR的企业级集成方案有三种,分别是:
        (1)与.NET的集成;
        (2)与JBPM工作流的集成;
        (3)CAS单点登录。
        根据公司具体情况,选择与.NET集成的方案。
mvc和三层架构的理解        FR与.NET项目集成主要包含三方面内容,报表发布、页面集成、权限继承。
        2.1.1 报表发布
        与系统不同,FR报表工程是一个Servlet应用(Java应用程序),不能通过IIS解析,
必须发布至能够解析Servlet的Web应用服务器如Tomcat,从而才能够在BS浏览器中访问报表。
        2.1.2 页面集成
        报表往往不是单独在浏览器中访问的,而是嵌入在系统的页面中,通过点击某个节点或菜单来显示。将报表嵌入到用户页面主要有两种方式:直接通过html的链接标签打开;把报表作为系统页面如某个asp网页的一部分,嵌入在iframe中。
        2.1.3 权限集成
        嵌入到系统中的报表还会受到一些约束,这就需要给报表设置权限。设置了报表权限后,用户需要进行登录,验证通过后才能查看报表;系统本身也有登录界面,因此需要将登录与报表登录结合起来实现单点登录。
        2.2 系统各模块设计
        如图3所示,报表系统设计结构非常清晰,设计为两个大模块 ,六个小模块,各模块间相对独立 ,互不干预,采用了软件设计的高内聚,低耦合的设计思想。
        2.2.1 报表显示模块
        该模块是直接面向用户使用体,是报表系统的前台界面,必须能实现快速开发,维护方便,用户查询效率快的特点。在该模块的设计中结合FR 实现双通道的数据查询方式:通道1、数据通过FR框架直接查询各个系统的数据。 通道2、报表系统通过DBLINK或者传输电文的方式抓取各外部系统的数据,报表系统经过数据处理后,保存处理的数据到本地的缓存数据表中,前台报表读取缓存数据表中处理完成的数据。在报表系统的显示模块设计中,灵活选择查询通道,查询数据量不大的情况下选择通道1,数据量大的情况下选择通道2。
        (1)通道1 FR的数据抽取设计。利用FR,在FR报表设计器上定义好数据库连接,定义好数据集,制作需要抽取数据显示的报表,把数据集引用到报表中,而后配置报表部署和集成,最后前台客户端展示报表,这就是通路1的数据抽取概要设计。通过这系列的数据抽取设计,可以快速实现报表即时展现最新各系统的数据信息,快速满足生产单位实时性查询数据的要求。
        (2)通道2 数据缓存表数据抽取设计。
        1.数据缓存表设计。对于数据量大的查询,用户一般对实时查询要求不高,这就可以采用数据缓存表数据抽取的通道。所谓数据缓存表就是在报表系统的后台数据库中,针对报表需要展示的内容,预先设计一个可以保存报表数据的数据库表。在系统空闲的时候,通过定时程序把数据计算好保存进该表中。用户查询的时候,报表系统不是实时查询生产系统的数据库,而是直接查询缓存表。由于报表系统的报表需求不断变化,经常出现非常复杂的查询需求,甚至是一个表需要显示完整个公司的数据内容,这样就对缓存表的数据库结构设计提出了非常高的要求,即要能快速查询也要方便后续管理维护。
        针对多变的需求,为了快速开发报表系统,采用“最小化”的设计原则,即基础数据单独保存在一个通用缓存表中,其他需要计算的数据则保存在与之对应的缓存表中。缓存表的设计原则为:满足当前需求、分离主体与附属、适当的冗余 、应对可能出现的新需求、应对大数据量。
        2.数据传输方式设计。设计好数据缓存表后,需要确定数据如何传输进数据缓存表中。采用两种方式进行数据传输设计:a.存储过程结合DBLINK方式;b.数据电文方式 。dblink(Database Link)数据库链接顾名思义就是数据库的链接,就像电话线一样,是一个通道,
当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。通过数据库存储过程中写入dblink连接代码,设定存储过程执行时间,在存储过程中写好数据查询逻辑,可以在空闲的时间把远程数据的数据整理存进报表系统的本地缓存表中,从而给用户提供处理好的查询数据。基础数据则采用数据电文的方式每天定时存进报表系统的数据基表中。
        数据电文传输数据是基于一个消息中间件的方式来进行数据的接收和发送,在发送端设计一个发送缓存表,该表主要是进行发送的数据的格式整理。在接收端设计一个接收缓存表,该表主要是进行数据接收的格式整理。而后分别在发送端和接收端编制发送和接收数据整理程序,把整理好的数据放进接收端的数据中间表中,接收端应用则到数据中间表中取出整理好的数据完成数据最终传输。概略图如图4所示。
        2.2.2 系统管理模块
        用户管理模块结合菜单管理模块、角管理模块设计。具体设计思路为:用户管理采用用户对应角,菜单页面挂靠角的方式。也即系统把每一个访问页面设计成通过一个路径
去访问,通过路径可以访问到对应的页面。通过菜单管理模块来管理这些路径也就相当于管理页面。而后通过角管理模块来给每个角添加页面路径。这样就可以给每个类型的角配置好访问页面的权限。最后把具体的角按照需求,通过用户管理模块分配给具体的用户,从而实现整个系统的权限管理。
        对于日志管理则是采用传统的数据库代码记录的方式。对于报表录入模块,在系统使用过程中,有时需要直接录入数据再对录入的数据进行数据整理后展示出来。但是对于直接录入大量数据,这样的操作太繁琐,因此设计除直接录入之外的另一种数据录入方式:报表模板导入。直接编辑好带数据的报表Excel 电子表格,通过报表录入模块导入,然后根据具体查询日期在展示端展示出来。
        3 结束语
        本文粗略探讨柳钢综合报表系统的开发方法和思路。该系统采用传统的三层架构模式结合MVC框架并嵌入FR的方式进行设计和开发。在底层数据库设计细节上采用了独立的数据缓存表方式对数据进行预加载。在数据传输通信上采用了中间件的方式接收外部系统传输进来的数据。应用该系统的设计开发思路,可以快速构建一个简易的企业报表查询系统,满足
企业信息化成果展示的需求。
        参考文献
        [1]陈慧玲,帅立国,姜昌金.基于HTTP协议的客户端发系统的研究[J].计算机技术与发展,2007,17(03):37-43.
        [2]王效武,刘英.互联网信息发布系统设计[J].通信技术,2013,45(06):128-130.
        [3]龙毅宏,唐志红,王亚龙等.面向HTTP身份鉴别协议的单点登录透明集成技术研究[J].计算机应用研究,2013,30(09):2813- 2818.

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