苏春雷
摘 要 依据广西柳钢集团股份有限公司综合报表系统的开发过程,初步分析和探讨了企业报表系统的设计与实现,提供了一条企业报表系统的开发设计思路。
【关键词】报表系统 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集成的方案。
FR与.NET项目集成主要包含三方面内容,报表发布、页面集成、权限继承。
2.1.1 报表发布
与.net系统不同,FR报表工程是一个Servlet应用(Java应用程序),不能通过IIS解析,必须发布至能够解析Servlet的Web应用服务器如Tomcat,从而才能够在BS浏覽器中访问报表。
2.1.2 页面集成
报表往往不是单独在浏览器中访问的,而是嵌入在.net系统的页面中,通过点击某个节点或菜单来显示。将报表嵌入到用户页面主要有两种方式:直接通过html的链接标签打开;把报表作为.net系统页面如某个asp网页的一部分,嵌入在iframe中。
2.1.3 权限集成
嵌入到.net系统中的报表还会受到一些约束,这就需要给报表设置权限。设置了报表权限后,用户需要进行登录,验证通过后才能查看报表;.net系统本身也有登录界面,因此需要将.net登录与报表登录结合起来实现单点登录。
2.2 系统各模块设计
如图3所示,报表系统设计结构非常清晰,设计为两个大模块 ,六个小模块,各模块间相对独立 ,互不干预,采用了软件设计的高内聚,低耦合的设计思想。
2.2.1 报表显示模块
该模块是直接面向用户使用群体,是报表系统的前台界面,必须能实现快速开发,维护方便,用户查询效率快的特点。在该模块的设计中结合FR 实现双通道的数据查询方式:通道1、数据通过FR框架直接查询各个系统的数据。 通道2、报表系统通过DBLINK或者传输电文的方式抓取各外部系统的数据,报表系统经过数据处理后,保存处理的数据到本地的缓存数据表中,前台报表读取缓存数据表中处理完成的数据。在报表系统的显示模块设计中,灵活选择查询通道,查询数据量不大的情况下选择通道1,数据量大的情况下选择通道2。
(1)通道1 FR的数据抽取设计。利用FR,在FR报表设计器上定义好数据库连接,定义好数据集,制作需要抽取数据显示的报表,把数据集引用到报表中,而后配置报表部署和集成,最后前台客户端展示报表,这就是通路1的数据抽取概要设计。通过这系列的数据抽取设计,可以快速实现报表即时展现最新各系统的数据信息,快速满足生产单位实时性查询数据的要求。