您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页基于LabVIEW的报表生成_刘闯

基于LabVIEW的报表生成_刘闯

来源:华佗小知识
#102#5测控技术62010年第29卷第5期

基于LabVIEW的报表生成

刘 闯

(中船重工集团750试验场,云南昆明 650051)

摘要:针对LabVIEW在测试领域的报表生成,介绍了最常见的报表格式Word和Excel的报表生成方法。对于Word报表生成,利用ActiveX控件实现,对于Excel报表生成,则采用了LabVIEW报表生成子VI实现。两种报表生成方法简单实用,较好地解决了LabVIEW在测试领域中复杂报表的生成问题。关键词:LabVIEW;图形编程;报表生成;Word;Excel

中图分类号:TP274 文献标识码:A 文章编号:1000-8829(2010)05-0102-02

ReportGenerationBasedonLabVIEW

LIUChuang

(750TestSiteofChinaShipbuildingIndustryCorporation,Kunming650051,China)

Abstract:InthetestareafortheLabVIEWreportgeneration,thereportgenerationmethodofthemostcommon

reportformat-WordandExcelisdescribed.FortheWordreportgeneration,usedActiveXcontrolstoa-chieve,andfortheExcelreportgeneration,thenusedtheLabVIEWreportgenerationsub-VItoachieve.ThetworeportgenerationmethodsaresimpleandhavesolvedthecomplexreportgenerationquestionsofLabVIEWinthetestarea.Keywords:LabVIEW;graphicprogramming;reportgeneration;Word;Excel LabVIEW是一种业界领先的工业标准图形化编程工具,主要用于开发测试、测量与控制系统。它是专门为工程师和科学家而设计的直观图形化编程语言。它将软件和各种不同的策略仪器硬件及计算机集成在一起,建立虚拟仪器系统,以形成用户自定义的解决方案。因此,LabVIEW语言得到越来越广泛的应用。对于一个完整的测试系统,经常需要生成相应的报表以记录测试结果。LabVIEW程序框图有丰富的报表生成子VI,对一些简单的报表而言,可以比较容易实现。但对于较为复杂的Office报表,它们基本为力。针对这个问题,本文中对Word和Excel报表生成所采用的两种不同的方法作了较为详细的阐述。需要注意的是,文中提到的这两种报表生成的方法分别应用于两种不同的场合。触类旁通,举一反三,对所有的Word、Excel报表生成均有很大的借鉴作用。

必须按照它们的实际意义记录下来。最好的方式就是

采用表格,在测试过程中,只需要把测试结果写到相应位置。在Word中制作表格有两种方法:一是在测试过程中,动态生成,这种方法的缺点是显得复杂,另外对于一些不规则的表格不易实现;二是在测试前,制作报表模板,在每次测试时,根据模板生成报表,这种方法简单,且可以随意实现预期的表格形式。

对于Word报表生成,笔者利用ActiveX控件实[1]

现,而没有采用LabVIEW的报表生成子VI。Ac-tiveX控件功能相当强大,利用属性节点和方法节点,可以实现一切对Word和Excel的操作。对Word的所有操作,必须先打开Word的自动化引用,进一步获取各种引用,进行相应的操作。下面按顺序介绍整个实现过程。

创建报表:首先打开Word的自动化引用,获取Documents属性,调用Add方法,选择报表模板;再调用增加文档的SaveAs方法,选择保存路径;最后调用Close方法,关闭文档。创建完毕后必须关掉打开的各个引用。在创建报表过程中,如果不希望文档被打开,获取增加文档的ActiveWindow属性,进一步设置Win-dow的Visible属性为假。

打开Word文档与打开Word引用:两者的实现过

1 Word报表生成

对于一项测试任务,会产生众多零散的测试结果,

收稿日期:2009-11-10

作者简介:刘闯(1982)),男,重庆忠县人,硕士研究生,助理工程师,主要从事控制及嵌入式技术研究。

基于LabVIEW的报表生成

程基本相同,即打开Word的自动化引用,获取Docu-ments属性,调用Open方法。不同之处在于,前者设置Word和文档的Visible属性为真,无任何输出;后者设置Word和文档的Visible属性为假,并输出引用。

在记录测试结果时,采用测试完一项便记录一项的方法。因此,测试时先打开Word引用,在记录结果时直接引用该Word引用,测试结束时关闭该引用。对表格的操作即是在相应单元格里写入数据。打开Word引用后,获取Tables属性,调用Tables的Item方法,设置表格索引(需要注意的是,Word的表格索引从1开始);调用表格的Cell方法,设置单元格的行列值,继而调用Cell的Select方法,即选取由行列值决定的单元格;获取Word应用的Selection属性,设置单元格字体以及对齐方式;把要写入的数据(字符串格式)复制到剪切板,再调用Selection的Paste方法,把剪切板的数据粘帖到单元格,也即完成了对表格单元格的数据写入。在这个过程中一样要关闭打开的相应引用。

还有一种写入零散数据的方法就是在Word文档中相应的位置设置书签,然后根据书签把数据写入

#103#

Word。这种方法的优点是易于定位,可以把数据写在任意需要的地方;缺点是如果数据太多,则前期设置书签是一件相当费时的工作,且与表格法相比,它不易删除以前的数据,也就是说只能写一次数据。因此,对于少量数据以及非表格类数据,本方法不失为一种好办法。其过程是:打开Word文档的引用后,获取Book-marks属性,再调用其Item方法,在Index处设置书签名;再获取Item的Range属性,然后调用Range的In-sertAfter方法,在Text处设置要写入的数据。

2 Excel报表生成

Excel本身就是一个巨大的二维表格,非常适合记录大量有规律的数据。本文中采用的方法是利用LabVIEW的报表生成子VI,分两步动态实现Excel报表生成:

第1步是初始化报表,包括写入标题、说明、表格每项数据的意义等;

第2步就是把处理完的数据一次写入Excel。其实现过程如图1所示。

图1 初始化Excel报表

首先,调用NewRepor.tv,i设置报表类型为Exce;l再调用ExcelEasyTitle.v,i设置标题的内容、位置以及字体,其中位置以表格的行列值表示(从0开始)。再调用ExcelSetCellAlignmen.tvi和ExcelSetPageNumbering.v,i设置单元格对齐方式以及表格页码位置。其次,调用ExcelEasyTable.v,i输入单元格数据的含义和单位,并设置其字体和位置。由于这里输入的是一维数组,而ExcelEasyTable.vi接受的是二维数组,因此需要用创建数组BuildArray.vi把一维数组转化为二维数组。最后,调用ExcelSetCellDimension.v,i根据数据格式需要的宽度设置单元格的宽度,使数据都能显示出来。至此,Excel的初始化结束。上述过程完毕后调用ExcelEasyTable.v,i把数据直接写入指定位置。

3 结束语

以上介绍了Word和Excel报表的生成方法及如何写入数据。由于图表和图片的实现原理大同小异,在此不再赘述。总的来说,使用LabVIEW语言,实现报表生成是比较方便的,特别是把一些功能封装为子VI后,对报表的操作就显得更为简单实用。参考文献:

[1] 陈锡辉,张银鸿,等.LabVIEW8.20程序设计从入门到

精通[M].北京:清华大学出版社,2007.

[2] 申焱华,王汝杰,雷振山,等.LabVIEW入门与提高范例

教程[M].北京:中国铁道出版社,2006.

t

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务