基于JasperReport+iReport的SCADA系统Web报表设计与实现

INFORMATION  TECHNOLOGY    信息化建设摘要:报表是信息浏览、分析、打印的有力工具,是SCADA 系统的一个重要组成部分。基于Web开发的报
表具有高性能、开放性和扩展性等优点,在各行各业得到了广泛的应用。论文研究了Web 报表的系统结构、生
成机制及设计实现,介绍了JAVA开源报表引擎JasperReport 与IReport的相关技术。基于Web 报表的设计实现了动
数据报表与图形报表的生成、查询与在线打印,在SCADA 系统中得到了良好的应用。
关键词:JasperReport;iReport;SCADA系统;开源;Web报表
人类社会已进入信息化时代,数字信息资源在国民经济社会发展中扮演着举足轻重的角,各行业希望可以快捷地将数据库中所关心的数据以其它相关的信息直观展现,以便于决策分析,而报表的开发就可以实现这一需求。由于众多分布式B/S架构系统的应用,用户需要远程对大量的分布式数据进行综合统计分析,所以基于Web架构方式设计开发的报表系统是最为简洁和高效。考虑到SCADA系统报表业务量巨大,报表的设计如果按照传统的设计方式,不仅开发成本和运行成本高,而且开发周期长。而iReport的出现,将报表从设计到发布的过程变得更为简单[1]。本系统所采用的是基于浏览器方式的Web报表系统,它可以满足SCADA系统操作人员方便的查看各个场站的信息。
一、JasperReport与 iReport技术对比分析
JasperReports是一个功能强大的报表生成开发工具,它可以将丰富的内容输出到展示端或生成PDF、HTML、 XLS、CSV和XML文件,并提供在线报表打印。JasperReports基于Java编写,并可在各种Java应用中用来生成内容丰富的动态数据。它是以一种灵活而简便的方式为用户提供创建导向式的Web页面[2-5]。
JasperReports通过XML文件,来描述定义报表设计,以JDBC连接的方式来获取关系数据库数据内容。在填充报表数据之前,报表设计首先要进行编译,来装载设计描述XML文件。
通过编译后,报表设计描述XML文件被加载到报表设计某个对象中,并序列化存储在磁盘。已系列化的对象在应用程序以数据来填充特定的报表设计时将被使用。报表设计的编译目的是用来描述报表设计中的XML文件中所定义的Java表达式。为了检查Web报表设计的一致性,编译时需要做各种校验。校验的结果将被用来进行报表设计的数据填充,并通过不同的数据集来产生数据文档。
iReport是一款功能强大的可视化设计器,设计的结果是一个XML格式的文件,主要描述了报表的格式,比如报表中各个部分的字体、页边距、是否需要换页支持等等。最后iReport需要将这个XML文件编译成.jasper 格式的文件,这个是JasperReport 生成报表所需要的报表设计描述定义文件。
功能特点描述:
报表可视化设计:使用和设计简单,不需要手工的书写XML 定义文件。
支持多种数据源:JDBC/XML/Hibernate/JR Datasource。
可以支持的输出格式:PDF,HTML,RTF,XML,XLS,CVS。
支持图表输出:可以和jfreechart联合使用,直接以图表的形式展现统计结果。
基于Java的适合于报表及一般单证的打印,支持简单图形、条码、图片、外部图表、子报表等[6]。
二、SCADA报表系统
SCADA系统数据的显示可以多种多样,主要方式可以归类为图像和报表两大类,其中图形包括接线图、生产流程图、地理图、配置图、曲线图、饼状图、棒状图、直方图等,一般由图形组态与监控界面系统实现,可以直观形象地表现数据的变化与统计特性[7]。而报表则是由数据报表系统实现的,数据报表系统以报表的形式将SCADA数据库的数据展现给用户,SCADA系统数据包括模拟量、数字量、脉冲量等测量值以及事项等描述信息数据。报表通过类似Excel、CSV等统一规范格式显示任意时间、任意采集与监控点的数据记录,可对数据进行对比与统计分析等计算。
(一)报表系统结构
SCADA报表系统由报表模板制作模块、报表生成及打印模块三部分构成,可根据用户需求开发不同的报表模板,将运行数据填入到报表模板上,实现从数据库中取所描述定义的数据点信息,从历史数据库中自动获取数据信息写入单元格中,并通过报表生成系统接口,最终将丰富的动态报表展示给用户,并可提供将报表转换
基于JasperReport+iReport的SCADA 系统Web报表设计与实现
杨平平
115
INFORMATION  TECHNOLOGY    信息化建设
为HTML、CSV、PDF、XLS等格式,供用户通过Web方式进行访问浏览,具体如图1所示。
图1 报表系统模型
(二)报表系统结构与工作原理
报表系统结构基于WebWork开源框架的体系。WebWork框架体系结构是较为优秀的MVC框架之一,其特点Servlet作为控制器,具有强大的控制功能,通过l形成的配置文件的页面,导航结构非常清晰,跳转控制功能的响应速度也很迅速。WebWork框架的另一优势就是丰富灵活的视图表达描述能力,不仅能支持Velocity、FreeMarker和JSP等多种视图表达形式,而且能很好地支持JasperReports的报表输出,很大程度简化和提高了报表系统的开发速度[8]。从图2中流程图中可以看出,基于WebWork框架的开发环境,报表的生成流程可以分为:模块A数据的查询与封装,主要是在Spring框架的基础上集成了对象关系映射框架Hibernate 的O/R关系映射,通过JDBC方式数据库连接池将取得的关系型数据封装成JavaBean类型的对象实例,并将填充到JasperReports报表所对应的单元格;模块B通过应用iReport来设计报表的样式,根据业务需求来制定报表的设计格式,从而实现了视图和数据分离和并行开发,同时提高了开发效率。
图2 报表结构与生成流程图
三、SCADA系统Web报表设计的优越性
基于Web的SCADA报表系统与基于C/S的结构相比,具有如下的特点:
(一)基于Web浏览器的客户端数据浏览:通过使用IE等标准的浏览器,完成各种数据报表的人机交互功能,可以实现与本地浏览的同等效果[9]。
(二)强大的远程维护功能:当现场发生异常情况或需要及时系统修改时,技术人员可通过网络及时的做出相应的维护,让技术维护工作变得高效、及时,并降低了系统运营维护成本。
(三)扩展性与集成性好:采用B/S结构在软件部署上有更大的灵活性,系统的扩展性要远远高于C/S结构。
(四)Internet技术:基于B/S架构的系统应用,使得SCADA系统的应用更加便利与广泛。
(五)Web技术成熟:基于B/S架构的应用轻客户端,稳定性好。
四、SCADA报表系统的设计与实现
水土保持研究
通过在WebWork框架下应用JasperReports报表设计工具,可以提高报表开发的效率,无论图3中模块C的iReport要生成不同格式的报表数量有多少,通过Spring 的反转控制(IoC)机制与依赖注入机制一次性地生成配置文件,来实现在模块A中数据库进行驱动装载、数据库连接池的建立以及关系/对象的映射[10]。若需要开发不同内容的报表,仅需在模块B中将数据封装成不同的JavaBean数据模型,该开发流程基于MVC设计模式,因此可极大地提高报表的开发效率。
图3 WebWork框架下报表生成流程图
通过iReport可以进行报表格式的可视化设计式。JasperReports将一张报表分为若干个band,首先来确定各个band中放置的内容,然后iReport来设计报表。通常整个报表内容只出现一次的放在summary band和title中,报表每页只出现一次的放在pageHeader、pageFooter中,一般将表头放在pageHeader中,即便生成的输出文件不是xls格式,也可在报表的每页展示表头。报表数据的显示区域是Detail段,通过循环显示数据源的内容,截止到全部数据显示完成[11]。
116
INFORMATION  TECHNOLOGY    信息化建设
报表数据来源是设计报表需要重点考虑的因素。数据源可以在JasperReports中定义多种,并通过Connection 方式连接数据库查询可以直接查询到数据源,也可基于Collection或tableModel产生,ArrayList封装的JavaBean 数据对象通过系统使用JRBeanArrayDataSource来不断循环读取,这是由于POJO对象容易封装和Collection结构的数据比较规范[12]。
japanese movement
数据源确定后,就要把数据源的内容准确地展示在报表对应的字段上。为了从数据源中获取字段属性来填充报表的单元格,通过iReport可配置单元格的变量名称fields来设置。
五、结语
该报表系统具备良好的可靠性、健壮性、可扩展性,目前报表系统在报表样式的丰富性上还有很多需扩展的地方,例如用户自定义报表,较为复杂的交叉报表等,此时只能手工定义报表模板来实现,能满足SCADA系统用户的需求[13]。JasperReport和 iReport提供了丰富的接口,利用其开发的Web报表系统,可以和用户现有的Java程序无缝结合,具有良好的集成性。
参考文献
[1]谢星星,陈育春.贯通开源Web图形与报表技术全集[M].北京:电子工业出版社,2008.
[2]刘斌.精通Java Web整合开发[M].北京:电子工业出版社,2007.
[3]邹光宗.水晶报表Crystal Reports XI中文版标准教材[M].北京:电子工业出版社,2005.
[4]高洪岩.JasperReports+iReport报表开发详解[M].北京:清华大学出版社,2013.
[5]刘聪.Java报表开发技术深入解析[M].北京:中国铁道出版社,2010.
[6]罗果.企业级Java EE架构设计精深实践[M].北京:清华大学出版社,2016.
[7]徐玲.基于Java/XML的自定义Web报表模型研究[J].湖北:湖北科技学院学报,2018.苯甲酸雌二醇
[8]周鑫.油气田SCADA系统的报表研发与应用[J].重庆:自动化应用,2019.
[9]余建成.基于生产系统使用的Web自定义报表设计[J].湖北:计算机与数字工程,2016.
[10]史玉震.基于Java的报表管理平台设计与实现[D].西安:西安电子科技大学, 2016.
[11]张雪.基于Web的可视化报表组件研究与实现[D].西安:西安理工大学, 2018.
[12]闵乔.基于JasperReports的通用报表系统研究与实现[D].南京:南京师范大学, 2016.
[13]王晓鹏.基于物联网的燃气SCADA系统设计与实现[D]. 西安:西安电子科技大学, 2018.
(作者单位:南京通联信息科技有限公司)
(上接第114页)
生活中的优势,促进人们生活质量的提升。
(四)智慧水利
智慧水利主要是指运用自动化监测设备对水位、雨量、水质、水量等相关信息进行采集,运用网络对数据进行传输和汇集,在此情况下,能够促进灌区信息化的实现,保证城市应急排水管理有效性,推动城市水务向信息化方向发展,也能更好为防汛防旱工作服务,促进水利管理水平的提升,并且针对水利实现精细管理、动态管理、科学管理以及定量管理。人员定位系统
罗山车祸(五)智慧旅游
物联网技术的发展,能够有效运用于产业发展、旅游体验、行政管理等多个方面,促进信息资源和旅游资源的有效整合,并且使旅游资源得到深度开发,进而更好为企业、公众、政府服务,形成面向未来和大众的新旅游形态。在实际使用时,需将其与信息技术、通讯技术之间的融合作为依据,将游客产生的旅游体验作为切入点,实现旅游信息管理一体化 ,推动旅游行业在发展中的不断创新,推动产业优化升级的实现。
(六)智慧电网
icon智慧电网主要是建立在高速、集成双向通讯基础上,能够运用先进设备技术、测量和传感、决策支持相关系统、控制方法等,推动电网安全、可靠、高效、经济、使用安全等多种目标的实现,并自动对
外部攻击进行抵御,允许不同发电方式的接入,在此情况下,能够使电力系统获得更好发展。在智慧电网影响下,能够推动电力行业获得更
加广阔的社会发展空间。
四、结语
总之,随着科技的不断发展,会有更多技术运用在城市
建设中,当前建设智慧城市已成为城市主要发展方向。在对
智慧城市进行建设时,应加强对物联网的运用,发挥物联网
优势,有效调整、整合城市当中的资源,确保城市各个系统
和各个模块之间信息通讯和信息交流的有效实现。在此过程中,相关工作人员应注重自身能力的提升,深化对物联网的
认识和了解,推动智慧城市建设的顺利进行。
参考文献
[1]时长征.物联网——智慧城市必不可缺的通信技术[J].建筑工程
技术与设计,2019(33):3398.
[2]刘友泉,章旭敏,高俊海, 等.城市道路智慧照明物联网的关键
技术[J].照明工程学报,2019,30(4):13-16,47.
[3]侯彦军.云计算及物联网技术在智慧城市中的应用探讨[J].中国
新通信,2019,21(24):90.
[4]黄连帅,潘南红.物联网技术在智慧城市建设中的应用研究[J].
信息与电脑,2019,31(22):164-165.
[5]崔志刚.物联网技术助力智慧城市的发展[J].中国新通信,2019,21(18):106.
[6]王明远.物联网技术在智慧城市建设中的应用[J].数码世界,2019(10):10.
(作者单位:重庆市通信建设有限公司)
117

本文发布于:2024-09-21 04:29:33,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/206858.html

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

标签:报表   数据   系统   设计   实现   城市   信息
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议