【VC++开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了VC++开源代码-VC实现水晶报表对数据源的动态绑定和历史数据显示查询 - 宣传企划的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
VC 实现水晶报表对数据源的动态绑定和历史数据显示查询 孙洪伟 1 罗杰 2 1、武汉理工大学自动化学院,武汉市,430070;2、武汉理工大学信息工程学院,武汉市,430070摘要:为了对在线钢板的温度数据进行实时检测和存储,以
VC6.0 作为平台,建立监控点和 PC 机之间的串口通信,运用 ADO技术将数据写入 Access 数据库。
在 PC 端显示时,采用 SQL 语句和水晶报表1自带的公式语句进行查询,将存储的数据以数据图标的形式进行回放。
而传统的
VC 平台下对水晶报表的 使用大多是绑定单一的数据源,这对多数据库的应用来说是不可行的。
所以,本文基于在线钢板温度建工系统,阐述了如何在
VC 下实现对水晶报表的动态绑定数据源和历史数据的显示查询。
关键字:
VC;水晶报表;数据库;动态绑定中图分类号:TP29 文献标识码:AThe
vc carries out crystal statements 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
VC6.0as a terrace the establishment supervision orders with the string of the of PC machine correspondence the usage ADO technique writes inthe data into Access database. When the PC carries to show the adoption SQL language sentence and crystal statement carry on a searchfrom the formula language sentence taking and carry on a saving data back to put with the data diagram object form .But the
VC terracebottom of tradition to the usage of crystal statement mostly is bind to settle single data source this says being not viable to the application ofmany databases. So this text set up work system according to the on-line steel plate temperature and elaborated how to carry out to thedynamic state of crystal statement and bind predestination according to the source and the history datas showing search under the
VC. Key
words:
VC;crystal statementDatabase The dynamic state binds to settle1 引言 在各种各样的监控系统中,PC 机往往作为系统监测管理人员查看现场设备状态和数据的主要设备。
对于历史数据的显示,在
VC3平台下使用水晶报表,功能强大而且美观实用。
但是
VC 平台下传统的水晶报表的应用大多是针对单一数据源,仅仅只做到了对单一数据源的显示,这对于多数据库的应用来说是远远不够的。
在这里,我们运用类似服务器-客户端的思想,在需要显示数据时,将对应的数据库“
登陆”到水晶报表中,实现水晶报表2对数据库的动态绑定。
本文中所述程序依托于钢板在线板温检测系统。
2 监控系统总体构成 PC 机采集各监测点的数据,经过模数转换和公式处理,将数据传输到监控终端。
整套
系统的拓扑图如图 1所示。
图 1:检测系统拓扑图 Fig.1 Examine system to rush toward diagram 各个监测点之间通过 485 总线,采用菊花链的链接方式链接起来,
通信协议采用的是 ProfiBus 总线协议。
而监测终端 PC 机与这套监测系统链接的方式是,通过 485-232 接口,接入整个监测系统中。
PC 机获得各个监测点上传的数据之后,经过相应的处理,以其实际表示的意义,即温度和湿度,在 PC 机端显示出来并存储到数据库中,并通过查询模块可以实现按时间和按条件查询。
3 数据写入数据库
VC4为用户提供了多种数据库访问技术:ADOActive Data Objects应用层数据接口、ODBCOpen DataBase Connectivity开放数据库互连技术、DAOData Access Objects基于对象的数据库访问接口。
在这里我们采用ADO。
ADO 是基于全新的 OLEDB 技术而
设计的,是一种基于应用
程序的数据访问接口,它是 DAO/RDO 的后继产物。
本文采用的是 Microsoft Access 2000 来进行数据库 5和数据表的创建。
将监测点采集的数据写入数据库的具体步骤如下: 创建数据库:由于每天的数据都需要单独保存在一个数据库中,所以在数据库创建之前需要生成数据库的保存路径,并对数据库是否存在进行判断。
生成数据库的保存路径:生成路径之后,根据路径生成数据库: 数据保存:本系统对于数据的显示、检测和保存都是实时进行的,所以对于数据的保存都是在在收到数据之 后就进行保存:4 水晶报表动态绑定数据库 目前,大多对于水晶报表在
VC 中的应用对数针对静态数据的,每张水晶报表都是绑定单一的数据库,当数据库改变时对应的水晶报表就不能显示了。
由于本系统每天都生成一张数据库,所以数据库每天都在改变。
针对这一情况,只能通过动态绑定来实现。
水晶报表动态绑定数据源是这样来实现的:与水晶报表控件值绑定一张事先做好格式的空白报表模板,如图 2 所示,当需要显示数据时,在绑定需要的数据源。
具体实现
代码 6如下: m_application. CreateInstance__uuidof Application m_reportm_application-OpenReportReportmodule.rpt // 报表模板 //绑定数据 m_report-Database-Tables-Item1-SetLogOnInfolocal_bstr_tm_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_strSQLTimeselect from WGRealTimeDbTable where TimeDate between m_strDatetime m_strBegtime and m_strDatetime m_strEndtime //将 SQL 查询条件语句导入水晶报表进行查询 m_report-put_SQLQueryString_bstr_tm_strSQLTime m_crystalreport.Refresh m_crystalreport.ViewReport 图 5:条件查询界面 Fig.5 The condition searches interface 具体实现
代码如下: //水晶报表公式语句 m_strFormularFieldWGRealTimeDbTable.m_Fieldnamem_Minvalueand WGRealTimeDbTable.m_Fieldname