基于LabWindows/CVI环境下Word报表的操作方法
2017-01-05吉洁阳
刘 娜, 吉洁阳
(西安航天动力测控技术研究所,西安 710025)
基于LabWindows/CVI环境下Word报表的操作方法
刘 娜, 吉洁阳
(西安航天动力测控技术研究所,西安 710025)
在基于LabWindows/CVI开发的自动测控系统中,往往会产生大量测试数据需要记录,由于手动记录数据效率低并且存在出错风险,故提出研究CVI环境下操作Word报表的方法.一方面,在自动测控系统中产生的大量测试数据需要进行多种格式Word报表记录,方便后续的数据处理,提出了直接生成Word报表的方法;另一方面在自动测控系统中产生的大量测试数据需要记录在相同格式Word报表中,方便后续的文件归档和打印工作,提出了将测试数据直接写入Word报表模板的方法.将两种方法的互补应用于自动测控系统中,显著提高了系统的工作效率和自动化程度.
LabWindows/CVI;Word报表;自动测控系统
Labwindows/CVI是National Instruments公司推出的交互式C语言开发平台.现阶段,基于Labwindows/CVI环境开发检测系统、自动测试环境、数据采集系统、过程监控系统等应用软件已非常普遍.MicrosoftWord具有强大的文字处理能力、灵活多变的排版方式、便于打印等优点.为了高效率、智能化的记录自动测控系统中产生的大量数据,将测试数据进行Word报表记录、存储、打印是非常必要的.本文研究了CVI环境下直接生成Word报表的方法和在CVI环境下将测试数据写入Word模板报表的方法.
1 直接生成报表法
图1 直接生成报表法流程图
直接生成报表法是打开空白的Word文档,所有文字及报表都是通过程序进行编写,最后将编写的文档进行实时存储的方法.该方法例程的流程如图1所示.首先打开Word应用程序获得应用程序句柄appHandle,在appHandle中新建一个文档并获得文档句柄docHandle,获得docHandle句柄后就可以在文档中进行添加文字和添加表格.在添加文字之前可以设置文字属性来设置文字的字体、大小、位置等属性.添加表格后可以获得表格句柄tablesHandle,即可以通过tablesHandle来设置表格属性和添加文字.需要注意的是CVI中添加的表格的边框默认是无线条的,所以必须要设置表格内边框和外边框的线条属性.如果表格中的文字长度不一样,可以设置表格中单元的列宽,最后在表格的每个单元格中写入文字.即可完成生成报表.最后将文档进行保存并关闭.
该例程是使用CVI封装的Word Report(Wordreport.fp)和Microsoft Word9.0(Word 2000.fp)两个驱动文件实现的.主要代码设计如下:
WordRpt_ApplicationNew(-1,&appHandle); ∥打开Word应用程序
WordRpt_DocumentNew(appHandle,&docHandle); ∥新建Word文档
∥设置标题文字属性
WordRpt_SetTextAttribute(docHandle,WR_ATTR_FONT_NAME,"宋体");
WordRpt_SetTextAttribute(docHandle,WR_ATTR_FONT_SIZE,18.0);
WordRpt_SetTextAttribute(docHandle,WR_ATTR_FONT_BOLD,WRConst_TRUE);
WordRpt_SetTextAttribute(docHandle,WR_ATTR_TEXT_ALIGN,WRConst_AlignCenter));
WordRpt_AppendLine(docHandle,"_______性能测试记录表");
WordRpt_AddTable(docHandle,12,5,&tablesHandle); ∥插入12行5列的表格
∥给表报内外边框添加线条
Word_GetProperty(tablesHandle,NULL,Word_TableColumns,
CAVT_OBJHANDLE,&columnsHandle);
Word_GetProperty(columnsHandle,NULL,Word_SelectionBorders,
CAVT_OBJHANDLE,&borderHandle);
for(int index=-1;index>-13;index--)
{
Word_BordersItem(borderHandle,NULL,index,&borderHandle);
Word_SetProperty(borderHandle,NULL,Word_BordersInsideLineStyle,CAVT_LONG,WordConst_wdLineStyleSingle);
Word_SetProperty(borderHandle,NULL,Word_BordersOutsideLineStyle,CAVT_LONG,WordConst_wdLineStyleSingle);
}
∥设置单元格各列宽度
WordRpt_SetColumnWidth(tablesHandle,1,0.5);
WordRpt_SetColumnWidth(tablesHandle,2,3.4);
WordRpt_SetColumnWidth(tablesHandle,3,0.5);
WordRpt_SetColumnWidth(tablesHandle,4,0.7);
WordRpt_SetColumnWidth(tablesHandle,5,0.8);
∥写入文字
∥在第一列第一行的单元格中写入“序号”
WordRpt_WriteToCell(tablesHandle,1,1,"序号");
∥在第一列第二行的单元格中写入“测试项目”
WordRpt_WriteToCell(tablesHandle,1,2,"测试项目");
……
WordRpt_DocumentSaveAs(docHandle,pathname); ∥保存Word文档
WordRpt_DocumentClose(docHandle,WRConst_DoNotSaveChanges);∥关闭Word文档
∥关闭Word应用程序
WordRpt_ApplicationQuit(appHandle,WRConst_DoNotSaveChanges);
通过上述代码运行生成报表效果图如图2中所示.该方法可以根据需要将大量的测试数据灵活多变的生成多样式的Word报表.
图2 直接生成报表法效果图
2 模板写入数据法
如果基于CVI开发的自动测控系统软件仅需要重复的将测试数据保存相同格式的Word文档中.直接采用模板写入数据法就比较简便.该方法是先在Word文档中设计好报表的样式,使用Word自带的书签功能将报表中需要写入数据的地方进行标记,最后将该文档保存为模板.在测控软件编程中只需要找到书签标记的地方写入数据即可.本例程中主要是向报表“测量值”一栏中填入电阻测试值,其他项目格式保持不变.主要代码实现如下:
WordRpt_ApplicationNew(-1,&appHandle); ∥打开Word应用程序
∥打开建好的Word报表模板
WordRpt_DocumentOpen(appHandle,"F:/test/test.dot",&docHandle);
WordRpt_GoToBookmark(docHandle,"item1");∥查找item1书签
WordRpt_AppendText(docHandle,"21.5");∥在item1书签中添加文字"21.5"
……
WordRpt_DocumentSaveAs(docHandle,pathname);∥保存Word文档
WordRpt_DocumentClose(docHandle,WRConst_DoNotSaveChanges);∥关闭Word文档
∥关闭Word应用程序
WordRpt_ApplicationQuit(appHandle,WRConst_DoNotSaveChanges);
根据上述代码可以直接实现在Word中报表写入数据文字,该方法的优点是可以利用Word的排版功能在文档中先保存好行列间距比较复杂的报表.效果图如图3所示.
图3 模板中写入数据法效果图
3 结语
本文针对Word报表格式,研究了两种在CVI中实现Word报表操作的具体方法和最终效果.通过自动生成Word报表,提高了工作效率,解决了手动填写测试数据带来的出错风险,将数据报表以Word文档形式按照测试时间存储在电脑中更便于管理,通过Word形式存储的文件可随时打印.
[1] 周研,刘志刚,宋剑,等.Labwindows/CVI环境下调用Word文档的实现方法[J].机电产品开发与创新,2007(1):131-132.
[2] 李炜怿,成洋,韩征,等.使用动态链接库技术实现Labwindows/CVI中的Word报表生成功能[J].电子测试技术,2008(4):113-115.
[3] 王建新,隋美丽.Labwindows/CVI虚拟仪器测试技术及工程应用[M].北京:化学工业出版社,2011.
[4] 陈红红,汪洋.Labwindows/CVI环境下实现Word复杂报表[J].计算机与现代化,2011(6):156-157.
[责任编辑 仲 圆]
Operation Method of Word ReportBased on LabWindows/CVI Environment
LIU Na, JI Jie-yang
( Xi’an Aerospace Power Measurement and Control Technology Research Institute, Xi’an 710025, China )
In the automatic measurement and control system based on LabWindows/CVI, a lot of test data are often required to be recorded. Due to the low efficiency of manual record data and the risk of error, it is proposed to study the operation method of Word report form under CVI environment. On the one hand, a large number of test data generated in the automatic measurement and control system need to be carried out in a variety of formats for Word report form records, in order to facilitate subsequent data processing, a method for directly generating Word report form is proposed. On the other hand, a large number of test data generated in the automatic measurement and control system need to be recorded in the same format for Word report form, in order to facilitate the follow-up document archiving and printing work, a method for directly writing test data to the Word report form template is proposed. The two methods are complementary applied to the automatic measurement and control system, which significantly improves the efficiency and automation of the system.
LabWindows/CVI; Word report form; automatic measurement and control system
1008-5564(2016)06-0026-04
2016-05-20
刘 娜(1984—),女,陕西西安人,西安航天动力测控技术研究所工程师,主要从事自动控制技术研究.
TP311.11
A