APP下载

VC实现水晶报表对数据源的动态绑定和历史数据显示查询

2012-07-13孙洪伟

电子设计工程 2012年8期
关键词:历史数据PC机数据源

孙洪伟,罗 杰

(1.武汉理工大学 自动化学院,湖北 武汉 430070;2.武汉理工大学 信息工程学院,湖北 武汉 430070)

在各种各样的监控系统中,PC机往往作为系统监测管理人员查看现场设备状态和数据的主要设备。对于历史数据的显示,在VC[3]平台下使用水晶报表,功能强大而且美观实用。

但是VC平台下传统的水晶报表的应用大多是针对单一数据源,仅仅只做到了对单一数据源的显示,这对于多数据库的应用来说是远远不够的。在这里,我们运用类似服务器-客户端的思想,在需要显示数据时,将对应的数据库“登陆”到水晶报表中,实现水晶报表[2]对数据库的动态绑定。本文中所述程序依托于钢板在线板温检测系统。

1 监控系统总体构成

PC机采集各监测点的数据,经过模数转换和公式处理,将数据传输到监控终端。整套系统的拓扑图如图1所示。

图1 检测系统拓扑图Fig.1 Examine system to rush toward diagram

各个监测点之间通过485总线,采用菊花链的链接方式链接起来,通信协议采用的是ProfiBus总线协议。而监测终端PC机与这套监测系统链接的方式是,通过485-232接口,接入整个监测系统中。PC机获得各个监测点上传的数据之后,经过相应的处理,以其实际表示的意义,即温度和湿度,在PC机端显示出来并存储到数据库中,并通过查询模块可以实现按时间和按条件查询。

2 数据写入数据库

VC++[4]为用户提供了多种数据库访问技术:ADO(Active Data Objects)应用层数据接口、ODBC(Open Data Base Connectivity)开放数据库互连技术、DAO(Data Access Objects)基于对象的数据库访问接口。在这里我们采用ADO。ADO是基于全新的OLEDB技术而设计的,是一种基于应用程序的数据访问接口,它是DAO/RDO的后继产物。

文中采用的是Microsoft Access 2000来进行数据库[5]和数据表的创建。将监测点采集的数据写入数据库的具体步骤如下:

创建数据库:由于每天的数据都需要单独保存在一个数据库中,所以在数据库创建之前需要生成数据库的保存路径,并对数据库是否存在进行判断。

生成数据库的保存路径:生成路径之后,根据路径生成数据库:

数据保存:本系统对于数据的显示、检测和保存都是实时进行的,所以对于数据的保存都是在在收到数据之后就进行保存:

3 水晶报表动态绑定数据库

目前,大多对于水晶报表在VC中的应用对数针对静态数据的,每张水晶报表都是绑定单一的数据库,当数据库改变时对应的水晶报表就不能显示了。由于本系统每天都生成一张数据库,所以数据库每天都在改变。针对这一情况,只能通过动态绑定来实现。水晶报表动态绑定数据源是这样来实现的:与水晶报表控件值绑定一张事先做好格式的空白报表模板,如图2所示,当需要显示数据时,在绑定需要的数据源。具体实现代码[6]如下:

图2 水晶报表模板Fig.2 Crystal statement template

图3 水晶报表显示结果Fig.3 Crystal statement shows a result

3.1 历史数据的显示

在数据库中保存了大量的数据之后,需要在水晶报表中将历史数据显示出来,并根据条件进行查询、打印等操作。

在编辑框中输入查询的开始时间、结束时间,再通过SQL语句和水晶报表的公式语句,即可实现数据报表的动态显示,真实再现当时的生产线的工作状况。如图4所示。也可以通过条件来实现查询功能,如图5所示。

具体代码实现如下:

图4 时间查询界面Fig.4 Time searches interface

图5 条件查询界面Fig.5 Condition searches interface

3.2 突出显示

突出显示主要是将不符合我们要求的数据高亮来提示操作人员来注意。这项功能主要是通过水晶报表自身所带功能来实现:根据设置的条件,将不在范围内的数据标为红色来提示操作人员,如图6所示。

4 结束语

在VC6.0环境下,通过水晶报表,很好的实现了监控所得温度数据的历史数据的显示、查询等功能。数据的实时写入、存储采用了ADO(ACTIVEX DATA OBJECTS)应用层数据接口技术,而对于数据的查询检索采用SQL结构化查询语言和水晶报表自带的公式语句,存储内存消耗少,显示快捷、美观、方便操作,为系统提供了简洁、高效可靠的人机交互界面。历史数据的显示实现了整个系统检测过程的动态再现,利于监控人员对生产线工作状态的监控、判断和故障检查。整个的设计思想可以推广于现代工业的各种监控场合。

图6 突出显示设置界面Fig.6 Outstanding show a constitution of interface

[1]张荣圣,侯鹏志,郭圣路.Crystal Reports 2008水晶报表从入门到精通[M].北京:电子工业出版社,2010.

[2]McCoy C,aric C.(美)水晶报表Crystal Reports 9从入门到精通[M].北京:电子工业出版社,2003.

[3]伍俊良.VC课程设计与系统开发案例[M].北京:清华大学出版社,2002.

[4]孙鑫,余安萍.VC++深入详解[M].北京:电子工业出版社,2009.

[5]施伯乐,丁宝康,杨卫东.数据库教程[M].北京:电子工业出版社,2004.

[6]宋坤,李伟明,刘锐宁.Visual C++数据库系统开发案例精选[M].北京:人民邮电出版社,2006.

[7]何志勇,赵瑞国,袁军社.传感器数据库管理系统设计[J].火箭推进,2010(6):62-67.

HE Zhi-yong,ZHAO Rui-guo,YUAN Jun-she.Design of database management system for transducer[J].Journal of Rocket Propulsion,2010(6):62-67.

猜你喜欢

历史数据PC机数据源
基于设备PF性能曲线和设备历史数据实现CBM的一个应用模型探讨
基于故障历史数据和BP神经网络的接地选线方案研究
Web 大数据系统数据源选择*
基于三菱FXPLC的感应淬火机床与PC机的串行通信实现
基于Hadoop技术实现银行历史数据线上化研究
用好细节材料 提高课堂实效
基于不同网络数据源的期刊评价研究
VC.NET下实现dsPIC单片机与PC机的通信
排除OLT设备登录故障
基于真值发现的冲突数据源质量评价算法