基于LabVIEW 的Word报表生成方法

2013-04-20 00:45曲海山
制导与引信 2013年1期
关键词:工具包调用书签

曲海山, 龚 明, 冯 云

(上海无线电设备研究所,上海200090)

0 引言

对于一个完整的测试系统,测试完毕后往往需要生成相应的测试数据报表以备日后查询和对比。但是,一般复杂的测试系统测试的数据量较大,需要记录的测试数据较多,数据报表相应就比较复杂。LabVIEW 具有丰富的生成报表子VI,通过不同的方法可以用来生成各种各样的报表以满足不同的需求。本文对利用LabVIEW 生成Word报表的三种不同方法做了较为详细的比较和阐述。

1 利用MS Office Report.vi生成Word报表

对于一些简单的报表,利用MS Office Report.vi生成[1],非常方便。在Word 文档中用书签为一个需要插入信息的位置命名,MS Office Report.vi可以找到Word 模板中所有书签的位置,从而在该位置中写入数据。例如,要制作如下格式的数据表格,同时在表格空白处填入测试信息。

表1 测试报告

首先需要创建Word模板:在Word文档中分别在需要写入数据的空白处插入书签,并为书签命名,另存为文档模板(*.dot)格式。结果如图1所示。

图1 插入书签

然后运行LabVIEW(需安装Report Generation Toolkit工具包),选择MS Office Report.vi。弹出Configure MS Office Report对话框,如图2所示。

图2 Configure MS Office Report对话框

在模板项选择Custom Report for Word,路径选择模板保存路径。选择完毕之后,在Report Contents中会自动加载在模板中插入的书签名称。在Report中可以选择打开、打印或者保存文档。单击OK,配置完成,运行程序,如图3所示。

图3 MS Office Report程序图

程序运行结果,如图4所示。

图4 MS Office Report程序结果

利用MS Office Report.vi生成Word 报表适合于简单报表,数据位置写入灵活,编程比较方便,但是MS Office Report.vi识别模板中的书签数量最大为17个,即当模板中的书签大于17个时,如图5所示。MS Office Report.vi只能识别前17个书签位置,换句话说,MS Office Report最多只能完成17个数据的写入,这就大大限制了MS Office Report.vi在复杂报表中的应用。

图5 当模板书签个数大于17时提示

2 利用ActiveX 自动化生成Word报表

LabVIEW 对ActiveX 提供了良好的支持,ActiveX 调用Word的一般流程为[2]:

a)打开自动化引用:使用Automation Open创建自动化引用句柄。

b)设置对象属性和调用方法:通过使用属性和方法访问Word 对象,完成表格操作。

c)关闭自动化引用:结束对Word的访问。

利用ActiveX 生成Word报表既可以打开空白文档生成Word报表完成数据写入,但是这种方法只针对简单报表方便可行,对于复杂报表,可以事先做好模板,然后通过控制鼠标位置往模板中输入信息。

利用ActiveX 生成如表2所示的测试报告,需要在所有测试值和测试结果对应的空格处写入数据。很明显,写入数据数量为20 个,大于17个,如果利用MS Office Report.vi来完成,有3个数据是无法写入的,所以采用ActiveX 来完成。

表2 测试报告2

首先,制作如表1所示的模板,注意在程序运行期间模板一定要打开,不能关闭。其次,利用ActiveX 调用Word,通过属性节点和调用节点完成对模板表格信息的输入。在这个过程中,主要是调用Selection方法,控制鼠标位置,完成信息的输入,利用Selection 方法可以完成字体的大小、颜色等格式的设置。

但是由于调用Selection方法控制的是鼠标位置,所以在模板中鼠标的起始位置很重要,起始位置不同,程序编写难易程度是不同的,本次程序如图6所示,鼠标起始位置为表格第2行第6列。

图6 ActiveX 调用Word生成Word报表程序

程序运行结果如图7所示。

图7 ActiveX 调用Word生成Word报表结果

从结果上看,利用ActiveX 自动化生成的Word报表,具有较好的效果,简单实用。但是,本次报表生成是写入两列数据,这两列数据是很规则的,利用for循环不断调整鼠标位置,来输入信息很容易实现。但是对于不规则的模板,不能利用for循环来做,那就需要大量调用Selection方法,以调整鼠标位置,就会相当繁琐。

3 用Word Specific生成Word报表

如果将表1和表2做成一张表,要生成这样一张表,利用MS Office Report.vi,写入数据数量过多。利用ActiveX,表格不规则,需要频繁调用Selection,比较繁琐。Report Generation Toolkit工具包里包含生成Word文档的Word Specific,有很多VI可以来设置Word表格的各种格式,生成漂亮的Word表格,十分方便实用[3]。所以可以利用Report Generation Toolkit工具包中的Word Specific来很方便的生成表1 和表2 的联合表格,如图8 所示,需要生成联合表格的模板表格。

图8 Word Specific程序图

从结果上看,利用Report Generation Toolkit工具包中的Word Specific方法,程序简单,表格漂亮。特别是针对复杂报表,该方法简单高效。

4 结论

图9 RGT 程序运行结果

本文介绍了三种利用LabVIEW 生成Word报表的方法。针对简单的报表,三种方法都很实用。针对复杂规则的数据报表,利用ActiveX方法和Word Specific方法都是可以方便实现的。针对复杂不规则的报表,利用ActiveX 方法无法通过for循环实现,需要时刻掌握鼠标位置,程序编写很繁琐。利用Report Generation Toolkit工具包 中的Word Specific就显得更简便。

[1] 林静,林振宇,郑福仁.LabVIEW 虚拟仪器程序设计从入门到精通[M].北京:人民邮电出版社,2010.

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

[3] 陈树学,刘萱.LabVIEW 宝典[M].北京:电子工业出版社,2011.

猜你喜欢
工具包调用书签
透明书签
慢性病健康工具包研究进展
十一月书签
核电项目物项调用管理的应用研究
十一月书签
系统虚拟化环境下客户机系统调用信息捕获与分析①
贰月书签
谷歌云与Digital Asset合作推出区块链工具包
运用MATLAB软件求解高中数学中的线性和非线性规划问题
建议为基层站点配备软硬件“工具包”