基于MFC技术的高阻箱检定证书自动生成

2013-04-24 00:36曹剑秋许方平
计量技术 2013年6期
关键词:调用串口证书

周 敏 曹剑秋 许方平

(镇江市计量所,镇江 212000)

0 引言

高阻箱检定系统软件早期版本是利用直接划线制表的方法来生成检定证书,在实际应用过程中,各使用单位的证书格式经常有变动,需要更改软件并重新安装,费时费力,效率低下。为克服这种缺点,经多次探索,我们采用MFC[1]调用Word证书模板对象的方法自动生成检定证书。当证书格式有变动时,只需要变动证书模板,软件不需要修改就能达到目的。

MFC(Microsoft Foundation Classes)是微软公司提供的,用于在C++环境下编写应用程序的一个框架和引擎,能够直接用它进行Word、Excel二次开发。用MFC和Word证书模板对象,可以在模板对象的“书签”、表格位置插入任意文字和符号,使程序更加实用、灵活。在高阻箱检定系统中,存储在Access数据库中的被检仪器信息(如委托方、委托方地址、器具名称、制造厂、型号/规格和器具编号等)和检定结果数据,通过MFC调用Access数据库插入Word证书模板对象中,并保存为需要的检定证书。

1 系统总体设计

高阻箱是由高压开关和精密电阻以一定的方式组合而成的,每个高压开关上的系列电阻的串联构成高阻箱的一段阻值范围,称为档位,对于某个具体的开关,其上的每个电阻值构成该档位的某个点位。因目前市场上的高阻箱生产厂家众多,具体型号和档位、点位参数各不相同,所以,系统首先对被检高阻箱型号设置档位、点位信息和送检单位信息;然后设置通信方式;最后就可以通过软件检定界面实时采集数据并存入数据库。

对采集到的数据,首先要根据检定规程[2]判断是否在允许的误差范围内,如果合格,则写入数据库,否则,做标记后写入数据库,并且在操作界面上提示。最后,系统从数据库中取出需要的数据,调用Word证书模板对象,根据用户的选择,生成原始记录、检定证书或校准证书。

系统实时检定界面如图1所示,系统总体框图如图2所示。

图1 实时检定界面

图2 系统总体框图

2 MFC调用数据库

当从高阻箱检定仪接收到实时数据后,软件首先判断数据是否在允许的误差范围内,然后作相应的标记存入数据库。MFC调用数据库的过程比较复杂,首先要导入相应的动态链接库,然后利用MFC生成的智能指针定义数据库指针和记录集指针,并在生成数据库实例后打开数据源、生成记录集实例,之后调用SQL语句[3],得到符合要求的记录集合,最后关闭数据库、释放资源。

2.1 导入动态链接库

MFC调用数据库有多种途径[4],我们采用ADO技术。在使用ADO技术时,需要导入一个ADO动态链接库msado15.dll,该动态链接库位于系统盘下的“Program FilesCommon FilesSystemado”目录下。所以需要打开工程文件,并展开“FileView”视图中的“Header Files”节点,然后双击“StdAfx.h”文件,添加如下代码:#import “c:Program FilesCommon FilesSystemadomsado15.dll” no_namespace rename(“EOF”,“adoEOF”)。

2.2 调用数据库流程

MFC调用数据库流程图如图3。

图3 MFC调用数据库流程

3 调用Word证书模板自动生成证书

在实际应用中,我们希望应用软件能根据实时采集到的数据生成各种需要的证书,软件使用者能方便的查看、修改和打印,在证书格式有改动时,能够只修改证书模板而不去修改软件就能实现,利用MFC调用Word证书模板对象生成检定证书的方法可以达到上述目的。

在MFC开始调用Word证书模板对象之前,我们需要导入目标库和制作Word证书模板。导入目标库的目的是为了利用Word的各种功能,制作Word证书模板是为软件动态生成各种证书作格式准备。

3.1 导入目标库

一个类型库是一个提供COM对象[5]功能信息的文件或文件的一部分,而且类型库包含了有关类的信息。类型库并不存储实际的对象,而只是存储有关这些对象的信息。类型库详细说明了一个自动化客户机[6]需要调用的方法和属性的信息。

每一个Microsoft Office应用程序都在一个dll文件中提供了多种类型库资源,这个dll文件叫做目标库(*.olb)。因此,在MFC调用Word证书模板对象前,需要导入msword.olb才能使用Word中的各种功能。

3.2 制作Word证书模板

首先要打开Microsoft Word新建一个空白文档,然后根据各种证书的具体要求设计相应的格式,并在需要填写数据且有长度限制的地方绘制表格,在没有长度限制的地方设置标签,最后以“.dot”为扩展名保存在相应的应用程序目录下。

3.3 MFC调用Word证书模板对象生成证书

首先利用微软公司提供的Visual Studio集成开发环境生成MFC应用程序框架并设置为Automation,使之成为自动化客户机,创建Word服务器并将符合条件的数据写入Word证书模板对象的表格和标签处,保存为相应的证书,最后关闭Word服务器并释放资源。

调用过程流程如图4所示:

图4 MFC调用Word流程图

4 软件使用中的几个问题

4.1 避免证书重复生成

为了避免查看证书时再重复生成证书的问题,可以首先查找该证书是否存在,如果存在,则直接调用并显示;如果不存在,则从数据库中查找符合条件的数据并生成证书。

4.2 串口通信用到的动态链接库

软件获取的数据是高阻箱检定仪通过串口实时传送过来的。基于MFC的软件一般是通过Microsoft Communications Control[7]控件获取串口实时数据的,这就需要在制作软件安装程序[8]时必须包含MSCOMM32.OCX控件,并设置为自注册属性,否则,会出现软件获取数据的检定界面不显示的错误。

5 结束语

通过软件自动采集数据并生成证书,提高了工作效率,同时证书格式采用Word模板对象的形式,提高了灵活性,目前有多家计量系统和电力系统的用户在实际使用这一版本的软件,获得了良好的效果和较好的评价。

[1] 侯俊杰.深入浅出MFC.湖北:华中科技大学出版社,2001

[2] JJG 1072—2011 《直流高压高值电阻器检定规程》.2011

[3] 王向云.SQL从入门到精通.北京:电子工业出版社,2009

[4] 刘刀桂,孟繁晶.Visual C++ 实践与提高-数据库篇.北京:中国铁道出版社,2001

[5] DaleRogerson.COM技术内幕-微软组件对象模型.北京:清华大学出版社,1999

[6] 余英,梁刚,等.Visual C++ 实践与提高-COM和COM+篇.北京:中国铁道出版社,2001

[7] 刘书智.Visual C++ 串口通信与工程实践.北京:中国铁道出版社,2011

[8] 张铭.精通InstallShield 6.北京:清华大学出版社,2001

猜你喜欢
调用串口证书
WJCI 收录证书
CSCD收录证书
收录证书
浅谈AB PLC串口跟RFID传感器的通讯应用
收录证书
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
基于系统调用的恶意软件检测技术研究
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信