基于LabView与SQL Server的检测报告生成系统的设计与实现∗

2018-05-29 11:50琚格格
舰船电子工程 2018年5期
关键词:测试项目数据源委托

刘 雄 王 军 琚格格 刘 红

(1.中国船舶重工集团公司第七二二研究所 武汉 430205)(2.中国船级社武汉分社 武汉 430022)

1 引言

随着电磁兼容检测任务逐年增多,目前每年需要出具多达400份试验检测报告。而出具一份内容完整详实、格式规范的报告需要花费一个人2~3天时间,因此每年需要在试验报告的编制上花费大量的人力,并且如果试验报告不能及时处理就会越积越多,最终影响客户信心;由于检测报告内容繁多,并且包含很多重复的信息数据,人工编制时难免忙中出错,试验报告中容易出现编辑错误;人工编制模式使得试验流程的各个阶段相互零散独立,未能实现试验室试验流程的信息化管理。基于以上分析,为解决人工编制试验报告效率低下、规避在试验报告中出现人工编辑错误、实现试验流程统一管理等问题,开发了一套试验流程管理系统,该系统能够实现委托单位信息、试验要求条件等信息的输入、保存和查询;根据委托单号自动生成相对应的试验委托单、试验测试细则、试验报告等;根据导入的测试数据的相关信息,统计分析试验室各试验人员的绩效统计分析,最终将试验流程的各个阶段统一起来,为试验室实现现代化的信息化管理打下基础。

2 系统总体设计

本系统使用到的关键技术包括LabView开发工具的使用、LabSQL软件工具包的使用、Microsoft ADO技术[3]、ODBC数据源的使用[4]、ActiveX控件的调用[5]等。具体如图1所示。

图1 系统总体设计框图

按照试验流程划分,本系统包括试验前部分和试验后部分,具体的试验检测过程由另外一套电磁兼容自动测试系统完成。其中实验前主要工作过程为:通过软件界面录入试验基本信息,然后调用委托单模版和试验细则模版,完成模版的自动编辑工作,最后输出电子档试验委托单和试验细则。试验完成后主要工作过程为:通过软件界面导入试验测试数据,调用试验报告模版完成试验检测报告的动态自动编辑工作,最后输出电子档试验报告。其中测试数据由另外一套电磁兼容软件自动测试系统导出,测试数据以委托单号为唯一标识,其导出文件以委托单号为总目录的文件目录格式,具体格式如下:委托单号测试项代号测试部位测试结果图片名称。

按功能模块划分,本系统包括仪器仪表管理模块、温湿度环境管理模块、试验人员管理模块、新建委托单模块、删除委托单模块、委托单编辑模块、委托单保存模块、委托单生成模块、试验细则生成模块、试验报告生成模块、绩效统计管理模块。具体见下图。

图2 系统功能设计框图

3 系统实现

3.1 数据库的设计

本系统涉及到的数据信息较多,所有数据信息以受试设备为中心,包括受试设备本身的基本信息、与受试设备供电相关的供电信息数据、陪试设备信息数据、连接线缆信息数据、委托单位信息数据、试验条件信息数据等。本系统数据库数据结构的设计同时考虑两方面内容,其一为试验流程先后带来的数据录入时间不一致所带来的数据分离,其二为同一委托单号下的数据记录是否唯一。由于受试设备与委托单号一一对应,同一受试设备所对应的所有数据可以依据同一委托单号进行连接。受试设备对应的部分数据信息包括受试设备信息、委托单位信息、试验条件等信息,由于一个委托单号下有且仅有一条记录,因此这些信息可以设计一个总的关系数据表,而对于供电信息、陪试设备信息、线缆信息由于某些受试设备可能对应多条数据记录,因此这些信息必须单独设计数据表,不能设计在总表中。另外对于试验完成后导入的数据信息,也不宜设计在总表中,需要单独设计数据关系表。

本系统涉及到的主要数据表包括:设备信息(委托单号,样品名称,型号,编号,研制单位,委托时间,委托单位,委托单位地址,代理人,代理人手机,付款人,付款人手机,邮编,传真,固定电话,密级,军种,安装平台,平台位置,设备特性,试验大纲名称,工作状态描述,敏感性判据,项目经理,分包,标准号,测试项目)、供电(委托单号,交直流,电压,电流,功率)、测试结论(委托单号,测试项目,检测要求,符合性,主要超标频点,测试部位数量)等。

3.2 数据库的连接访问

软件系统需要反复存储、读取大量的数据信息,Labview本身虽不具备数据库访问功能,但却提供了丰富的外部程序接口,本系统利用第三方开发的免费工具包LabSQL访问数据库,该工具包利用 Microsoft ADO(Ac⁃tiveX Data Object)技 术通 过 ODBC(open data⁃base connectivity)数据源与数据库进行连接,其连接过程如图 3[6]。

图3 应用程序与数据源连接框图

如图3所示,ODBC是数据库与应用程序之间的一个公共接口,应用程序通过访问ODBC而不是直接访问具体数据库来与数据库通信。一个基于ODBC的应用程序对数据库的操作不依赖任何形式的数据库系统,所用的数据库操作都由对应数据库系统的ODBC驱动程序完成。ODBC的最大优点是能以统一的方式处理所有的数据库。

LabSQL工具包[7]将复杂的底层ADO及SQL 操作封装成一系列的LabView子程序,使用简单方便。采用该方式既可以节省用于购买NI公司的附加工具包中数据库接口工具包LabView SQL Tool⁃kit所需高额花费,又不需要对Microsoft ADO以及SQL语言有较深的了解,这样可以进一步加快系统开发的进度。

安装LabSQL后需要对LabSQL进行配置,在Windows操作系统的控制面板上,双击“数据源(ODBC)”,在出现的面板中单击“系统DSN”选项中“添加”按钮,然后在弹出的界面上选择已经安装的“SQL Server Native Client 10.0”驱动程序,最后点击“完成”按钮,输入数据源的名称,就完成了对数据源名称(DSN)的建立,应用程序就可以通过数据源访问数据库了。

3.3 数据库的操作

数据库连接成功以后就可以在LabView环境下通过LabSQL对数据库进行直接操作了。LabS⁃QL对数据库的基本操作流程是先创建一个连接、打开此连接、执行SQL语句,关闭该连接、最后将该连接销释放掉[8],具体见图4。

图4 数据库基本操作流程

图4中过程执行的最频繁,该过程中执行最频繁的SQL语句包括向数据库中记录表中插入记录和从数据库记录表中读取相关信息。向数据库记录表中插入记录软件代码实现如下:

该子程序的输入参数为输入簇,该簇包含一个表头名和一个字符串数组,其中表头名为字符串格式,内容为需要记录表名称和需要插入的字段,格式要求需要按SQL语言语法规范。数组为需要向数据库记录表中插入的信息,插入的信息需要与记录表中列名对应。

图5 数据库插入记录

从数据库记录表中读取记录表内容同样是使用过程,其输入参数相对简单,为满足SQL语言语法规范用于查询数据格式的字符串,如查询设备信息标中所有记录信息,则过程函数的输入参数为“use lx select*from设备信息 where委托单号=xxx”,其中lx为本系统设置的DNS数据源名称,xxx为需要查询的委托单号。

3.4 Word模板的设计

由于电磁兼容测试涉及的标准众多,每个标准中包含的测试项目也较多,因此每个测试项目对应的测试细则和检测报告的内容也不尽相同,这就导致每个测试项目对应的文档模版文件也不相同。对于相关模板的设计有两种方式,其一是所有项目同一类型的文档设计一个模板,如所有测试细则设计为一个模板,所有实验报告的测试项目首页设计为一个模板,所有测试项目的数据页设计为一个模板,但该模板必须兼顾所有的标准和测试项目,其二是对每一个标准的每一个测试项目设计一个模板,做到分别量身定做。

以上两种方式各有优缺点,方式一必须兼顾各个测试项目,模板设计复杂,最关键的由于需要兼顾各个实验项,模板中只能包含各个试验项目的共性参数,在模板被调用时系统需要耗费大量的资源处理模板中信息的插入,最后导致各个文档生成过程中几乎需要完全生成所有的信息,整个过程耗时较长。其优势在于同一类型的文档只需要设计一个,可减少模板重复设计工作;而方式二由于可以做到最大化的量身定做,模板在被调用时,系统的负担较轻,文档自动生成过程中只需要向模板中插入少量的关键信息就可以完成文档的生成工作,系统负担小,整个文档生成过程耗时较短。其缺点在于每个试验项目都需要编制一个模板,前期工作量较大。结合前期试验过程,考虑到方式一调用方式复杂,实现难度较大,而且整个实现过程耗时较长,而方式二,虽然模板众多,但利用现有的模板进行局部调整,也可以快速实现,而且系统调用简单、实现过程较快。

3.5 Word模板的访问控制

在Word中凡是手工可以完成的操作,包括对文字的编辑、图片和表格的处理都可以通过软件控制的方式由应用程序实现。LabView开发环境下对Word模板的访问控制是通过ActiveX方式[9]调用Word实现的,ActiveX编程是一种基于面向对象的编程方法,其操作主要包括三种:属性的设置、方法的调用和事件的处理。微软公司的Word应用软件被看成一个Application对象,该对象中包含了Word软件的各个组成部分,包括文档对象、命令工具对象、帮助助手对象等,而本设计中使用到文档对象中的表格、图片、段落等对象[10]。LabView函数面板中“互联接口”部分中部分中包含ActiveX方式所有控件[11],具体如图6。

图6 ActiveX控件

本系统中通过ActiveX方式对Word应用软件中Word文档连接控制部分的软件代码如图7[5]:

图7 Word应用程序调用

图7中代码打开了Word应用程序并调用了Word文档属性节点,后面软件代码根据需要通过调用Word文档属性和文档操作方法对需要操作的文档进行需要的操作。

3.6 Word模板的动态编辑

完成以上内容后需要对Word模板进行编辑,完成相关文档的输出。常规的做法是在Word模板中需要插入信息的位置预先插入电子书签,软件系统连接Word应用程序建立连接后,首先将光标移动到插入书签的位置,然后在该位置插入需要插入的信息[12]。由于受试设备各不一样,依据检测标准也不固定、具体的测试项目也不尽相同,因此最终生成的Word文档框架也不一定固定,因此仅采用在电子书签位置插入信息的方式不能完全满足系统要求。本系统采用在电子书签位置插入信息和对Word文档表格对象动态调整相结合的动态编辑方式实现Word模板中信息的输入编辑,根据受试设备实际测试要求,动态调整表格的行列数,再根据表格对象的行列属性实现对应信息数据的编辑。

4 结语

该软件系统目前已经具备基本的试验流程管理功能,包括试验开始前相关信息的录入、试验委托单的生成、试验细则的生成、试验完成后试验数据的导入、试验报告的生成等,但对于试验过程主体却还未涉及,即该试验流程管理系统不具备电磁兼容自动测试能力,后期将依据GJB151系列标准、HJB34-2007、GD22-2015等标准在该软件系统中加入自动测试功能,实现试验流程管理和试验自动测试于一体的软件系统。

参考文献

[1]杨乐平,李海涛.Labview高级程序设计[M].北京:清华大学出版社:2004.

[2]明日科技.SQL Server从入门到精通[M].北京:清华大学出版社:2015.

[3]付志超,陈馨,张聪等.LabVIEW中基于ActiveX的报表生成技术研究[J].舰电技术,2010,30(4):60-63.

[4]马绍良,李凤保,谢阅.用ODBC实现SQL Server 2000在VB中的应用[J].计算机应用,2003,23(1):115-118.

[5]唐波,潘红兵,赵以顺等.在LabVIEW环境下基于ADO技术和SQL语言的数据库系统实现[J].仪器仪表学报,2007,28(4):227-229.

[6]周欢,莫军,李代生,梁文静.基于LabSQL的LabVIEW数据库访问功能研究[J].2009中国仪器仪表与测控技术大会论文集,2009,30(6):322-323.

[7]田彬.试析基于LabSQL的LabVIEW数据库访问技术[J].电子科学技术,2017,4(2):42-45.

[8]尹技虎,王峰.基于LabSQL的LabVIEW数据库访问技术[J].仪表技术,2011(4):55-56.

[9]曹玉保,周兆庆,吴凯.Labview基于ActiveX技术的word测试报表研究[J].中国集成电路,2016(205):71-72.

[10]赵波,陈道升.在LabVIEW中调用ActiveX自动填写原始记录的方法[J].测试技术研究与应用,2011:70-72.

[11]古萍,王亮,冯磊等.基于LabSQL环境的ActiveX编程实例[J].科技创新与应用,2016(19):23-25.

[12]李磊,杨峰,何耀等.基于Labview的检测报告自动生成方法研究[J].自动化仪表,2012,33(1):65-69.

猜你喜欢
测试项目数据源委托
委托公证的不正当利用及对策分析
神秘人约在几点碰面?
智能家电关键零部件
个股盘中突然暴涨暴跌原因分析
一种面向传感云的数据源质量评估框架
图表中的交互 数据钻取还能这么用
基于微信的在线测试系统的设计与实现
绩效评价在委托管理酒店中的应用
基于Excel的照片查询系统开发与应用
纤检机构管理信息系统标准项目库存在的问题及改进建议