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

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

举报
开通vip

VC实现水晶报表对数据源的动态绑定和历史数据显示查询VC实现水晶报表对数据源的动态绑定和历史数据显示查询 孙洪伟1 罗杰2 (1、武汉理工大学自动化学院,武汉市,430070;2、武汉理工大学信息工程学院,武汉市,430070) 摘要:为了对在线钢板的温度数据进行实时检测和存储,以VC++6.0作为平台,建立监控点和PC机之间的串口通信,运用ADO技术将数据写入Access数据库。在PC端显示时,采用SQL语句和水晶报表[1]自带的公式语句进行查询,将存储的数据以数据图标的形式进行回放。而传统的VC平台下对水晶报表的 使用大多是绑定单一的数据源,这对多数据库的应用...

VC实现水晶报表对数据源的动态绑定和历史数据显示查询
VC实现水晶报表对数据源的动态绑定和历史数据显示查询 孙洪伟1 罗杰2 (1、武汉理工大学自动化学院,武汉市,430070;2、武汉理工大学信息工程学院,武汉市,430070) 摘要:为了对在线钢板的温度数据进行实时检测和存储,以VC++6.0作为平台,建立监控点和PC机之间的串口通信,运用ADO技术将数据写入Access数据库。在PC端显示时,采用SQL语句和水晶报表[1]自带的公式语句进行查询,将存储的数据以数据图标的形式进行回放。而传统的VC平台下对水晶报表的 使用大多是绑定单一的数据源,这对多数据库的应用来说是不可行的。所以,本文基于在线钢板温度建工系统,阐述了如何在VC下实现对水晶报表的动态绑定数据源和历史数据的显示查询。 关键字:VC;水晶报表;数据库;动态绑定 中图分类号:TP29  文献标识码:A The vc carries out crystal statement's logarithms to bind to settle according to the dynamic state of source with history data to show a search SUN Hongwei1  LUO Jie2 (1、The School of Automation of Wuhan University of Technology;2、The School of Information Engineering of Wuhan University of Technology) Abstract: For the sake of to the examination for temperature data to carry on solid of on-line steel plate and saving, with the VC++6.0 as a terrace, the establishment supervision orders with the string of the of PC machine correspondence, the usage ADO technique writes in the data into Access database. When the PC carries to show, the adoption SQL language sentence and crystal statement carry on a search from the formula language sentence taking and carry on a saving data back to put with the data diagram object form .But the VC terrace bottom of tradition to the usage of crystal statement mostly is bind to settle single data source, this says being not viable to the application of many databases. So, this text set up work system according to the on-line steel plate temperature and elaborated how to carry out to the dynamic state of crystal statement and bind predestination according to the source and the history data's showing search under the VC. Key words: VC;crystal statement;Database; The dynamic state binds to settle 1 引言 在各种各样的监控系统中,PC机往往作为系统监测管理人员查看现场设备状态和数据的主要设备。对于历史数据的显示,在VC[3]平台下使用水晶报表,功能强大而且美观实用。 但是VC平台下传统的水晶报表的应用大多是针对单一数据源,仅仅只做到了对单一数据源的显示,这对于多数据库的应用来说是远远不够的。在这里,我们运用类似服务器-客户端的思想,在需要显示数据时,将对应的数据库“登陆”到水晶报表中,实现水晶报表[2]对数据库的动态绑定。本文中所述程序依托于钢板在线板温检测系统。 2 监控系统总体构成 PC机采集各监测点的数据,经过模数转换和公式处理,将数据传输到监控终端。整套系统的拓扑图如图1所示。 图1:检测系统拓扑图 Fig.1 Examine system to rush toward diagram 各个监测点之间通过485总线,采用菊花链的链接方式链接起来,通信 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 采用的是ProfiBus总线协议。而监测终端PC机与这套监测系统链接的方式是,通过485-232接口,接入整个监测系统中。PC机获得各个监测点上传的数据之后,经过相应的处理,以其实际表示的意义,即温度和湿度,在PC机端显示出来并存储到数据库中,并通过查询模块可以实现按时间和按条件查询。 3 数据写入数据库 VC++[4]为用户提供了多种数据库访问技术:ADO(Active Data Objects)应用层数据接口、ODBC(Open Data Base Connectivity)开放数据库互连技术、DAO(Data Access Objects)基于对象的数据库访问接口。在这里我们采用ADO。ADO是基于全新的OLEDB技术而设计的,是一种基于应用程序的数据访问接口,它是DAO/RDO的后继产物。 本文采用的是Microsoft Access 2000来进行数据库[5]和数据表的创建。将监测点采集的数据写入数据库的具体步骤如下: 创建数据库:由于每天的数据都需要单独保存在一个数据库中,所以在数据库创建之前需要生成数据库的保存路径,并对数据库是否存在进行判断。 生成数据库的保存路径:生成路径之后,根据路径生成数据库: 数据保存:本系统对于数据的显示、检测和保存都是实时进行的,所以对于数据的保存都是在在收到数据之后就进行保存: 4 水晶报表动态绑定数据库 目前,大多对于水晶报表在VC中的应用对数针对静态数据的,每张水晶报表都是绑定单一的数据库,当数据库改变时对应的水晶报表就不能显示了。由于本系统每天都生成一张数据库,所以数据库每天都在改变。针对这一情况,只能通过动态绑定来实现。水晶报表动态绑定数据源是这样来实现的:与水晶报表控件值绑定一张事先做好格式的空白报表模板,如图2所示,当需要显示数据时,在绑定需要的数据源。具体实现代码[6]如下: m_application. CreateInstance(__uuidof (Application)); m_report=m_application->OpenReport("Reportmodule.rpt");    //    报表模板 //绑定数据                m_report->Database->Tables->Item[1]->SetLogOnInfo("local",(_bstr_t)m_DBpath,"",""); 图2:水晶报表模板 Fig.2 Crystal statement template 图3:水晶报表显示结果 Fig.3 The crystal statement shows a result 4.1历史数据的显示 在数据库中保存了大量的数据之后,需要在水晶报表中将历史数据显示出来,并根据条件进行查询、打印等操作    在编辑框中输入查询的开始时间、结束时间, 再通过SQL语句和水晶报表的公式语句,即可实现数据报表的动态显示,真实再现当时的生产线的工作状况。如图4所示。也可以通过条件来实现查询功能,如图5所示。 图4:时间查询界面 Fig.4 Time searches interface 具体代码实现如下: //SQL查询条件 m_strSQLTime="select * from WGRealTimeDbTable where TimeDate between #"+m_strDatetime+" "+m_strBegtime+"# and #"+m_strDatetime+" "+m_strEndtime+"#"; //将SQL查询条件语句导入水晶报表进行查询 m_report->put_SQLQueryString(_bstr_t(m_strSQLTime)); m_crystalreport.Refresh(); m_crystalreport.ViewReport(); 图5:条件查询界面 Fig.5 The condition searches interface 具体实现代码如下: //水晶报表公式语句 m_strFormularField="{WGRealTimeDbTable."+m_Fieldname+"}>="+m_Minvalue+"and "+"{WGRealTimeDbTable."+m_Fieldname+"}<="+m_Maxvalue; //将公式语句导入水晶报表进行查询 m_crystalreport.Refresh(); m_crystalreport.ViewReport(); 4.2突出显示 突出显示主要是将不符合我们要求的数据高亮来提示操作人员来注意。这项功能主要是通过水晶报表自身所带功能来实现:根据设置的条件,将不在范围内的数据标为红色来提示操作人员,如下图所示。 图6:突出显示设置界面 Fig.6 Outstanding show a constitution of interface 5 结语 在VC6.0环境下,通过水晶报表,很好的实现了监控所得温度数据的历史数据的显示、查询等功能。数据的实时写入、存储采用了ADO(ACTIVEX DATA OBJECTS)应用层数据接口技术,而对于数据的查询检索采用SQL结构化查询语言和水晶报表自带的公式语句,存储内存消耗少,显示快捷、美观、方便操作,为系统提供了简洁、高效可靠的人机交互界面。历史数据的显示实现了整个系统检测过程的动态再现,利于监控人员对生产线工作状态的监控、判断和故障检查。整个的设计思想可以推广于现代工业的各种监控场合。 参考文献: [1] 张荣圣, 侯鹏志, 郭圣路Crystal Reports 2008水晶报表从入门到精通 电子工业出版社 2010       [2] Cate McCoy, Gord aric (美)水晶报表Crystal Reports 9从入门到精通 电子工业出版社 2003 [3] 伍俊良 .VC课程设计与系统开发 案例 全员育人导师制案例信息技术应用案例心得信息技术教学案例综合实践活动案例我余额宝案例 [M].北京:清华大学出版社,2002. [4] 孙鑫 余安萍 VC++深入详解 电子工业出版社 2009 [5] 施伯乐, 丁宝康, 杨卫东 数据库教程 电子工业出版社 2004 [6] 宋坤, 李伟明, 刘锐宁 Visual C++数据库系统开发案例精选 人民邮电出版社 2006 第一作者简介: 孙洪伟(1986——),男,山东青岛人,武汉理工大学硕士研究生,研究方向:电力电子与电力传动
本文档为【VC实现水晶报表对数据源的动态绑定和历史数据显示查询】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_221943
暂无简介~
格式:doc
大小:32KB
软件:Word
页数:0
分类:互联网
上传时间:2019-08-27
浏览量:18