在自动化测试领域,生成的 Office 报表(Word,Excel)几乎是每个专业的自动化测试程序的标配。不具备自动报表生成的自动化测试程序通常被视作"入门级"程序。先前,生成专业的 office 报表几乎被少数几个 VB 或 VC 高手"垄断",因为你除了要熟悉VB 或 VC 外,还要熟悉 Windows 下的 ActiveX 机制以及 Word 和 Excel 导出的属性和方法。
NI Office 报告生成工具包的出现打破了上述的技术壁垒,使得任何一个非计算机专业毕业且并不精通 Windows ActiveX 机制的工程师都能做出一仹能与 VB、VC 高手媲美的专业的 Office 报表。向大家介绍这个工具包,是希望帮助大家把宝贵的时间从繁琐的技术细节中解脱出来,投入到核心价值的创造中去。另外,NI Office 报告生成工具包并不是以dll 的形式给出,而是以源代码的形式给出——只要你愿意,你可以在完整的商业源代码的基础上随时研究 office 报告生成的所有细节。LabVIEW Office 报告生成工具包提供了一个基于交互式配置的 Express VI——MS Office Report, 如 图 2.1 所示。本章就从这个 Express VI 开始,与大家一起迚入 LabVIEW Office 报告生成的世界。
对于刚接触 LabVIEW office 报告生成工具包的工程师来说,由于陌生而产生一点畏难情绪是非常正常的。但是通过对这篇文章的阅读和练习,会发现LabVIEW office 报告生成工具包用起来非常简单。
总的来说,要用好 LabVIEW office 报告生成工具包需要做好两件事——"Where"和"What",即告诉LabVIEW office 报告生成工具包,在 Office 文档的哪个位置,放上什么内容即可。
请告诉我内容放在哪里?——Excel 版
请大家打开 Excel,在 Excel 的左上角有一个 name box,如图 2.2 所示。Name box 相当于给单元格起了一个名字,方便开发人员记忆和在程序中使用。比如,我们给 A2 单元格起个名字叫"Operator Name",那么在 LabVIEW 里面告诉 MS office report.vi,"刘邦"的位置是" Operator Name",则 MS office report.vi 就会把"刘邦"写入 A2 单元格了。使用 Namebox 还有一个好处是,当你想把更改"刘邦"的写入位置时,只需要把对应的单元格命名为" Operator Name"即可,而不需要更改 LabVIEW 程序。
为了使我们的第一个报告看起来"专业"一点,我们在 A1 单元格中输入报表的名字"美国国家仪器测试报告",然后把 A3 单元格命名为"OperatorName",如图 2.3 所示。Excel 的 Name box 输入还有点儿小小的顺序性技巧:
1. 单击选中 Excel 单元格
2. 在 Name box 里面输入名字并敲回车点击 Name box 右边的下拉箭头(如图 2.4 所示),会发现名字已经在 Name box 里面了。Namebox 里面的命名觃则请见"百度"。
接着把 A4 单元格命名为"Time",把 A5 单元格命名为"Value",如图 2.4 所示。
完成上述步骤后,请把该文件以 Excel97-2003 模板(Excel模板*.xltx)的形式保存,如图 2.5 所示。
成功完成上述步骤之后,恭喜大家,已经完成了整个报告生成工作量的 90%,以后大家会体会到,基于 LabVIEW 的报告生成,大量的工作是在设计报告模板上。
请打开 LabVIEW,并在程序框图中放入 MS Office Report.vi,这时会弹出配置对话框,如图 2.6 所示,然后在第一项中选择"Custom Report for Excel"。
接着在 Path to template 里面选中刚才保存的模板,如图 2.7 所示,大家可以发现,MS officereport.vi 会自动找到命过名的单元格。点击 OK 按钮,完成配置。到这里,"Where"就完成了,即完成了告诉 LabVIEW 在哪里放置你想插入的内容。
在 LabVIEW 程序框图中,我们为"OperatorName"输入"刘邦";为"Time"输入当前日期;为"Value"输入一个随机数,如图 2.8 所示。MS office Report.vi 可以接受各种类型的输入,大大方便了我们编程。
运行程序,结果如图 2.9 所示,可见 MS office Report.vi 已经把数据插入了我们指定的地方,第一次尝试,圆满成功!
对于简单的报告应用,大家学到这里就可以了。想做出格式精美专业的报告,请继续阅读第三章,这时候,除了"Where"和"What"外,还需要告诉 LabVIEW,"How",即以什么格式把内容插到指定位置去。
请告诉我内容放在哪里?——Word 版
与 Excel 中的 Namebox 作用相同,Word 中用 Bookmark 来为一个位置命名,如图 2.10 所示。MS office report.vi 可以找到 Word 模板中有 Bookmark 的位置。
与上节相同,我们开始做一个简单的 Word 模板,第一行键入"美国国家仪器测试报告",第二行键入"操作员姓名",这时,光标停留在"操作员姓名",我们为这个位置添加一个 Bookmark,如图 2.11 所示。
同 Excel,为 Word 创建"测试时间","测试值"的 Bookmark,如图 2.12 所示:
制作好 Word 模板后,请保存为 Word97-2003 template(Excel模板*.dotx) 格式,如图 2.13 所示。
当 Word 模板做好后,我们可以像上节中那样,使用 MS Office Report.vi 向模板插入内容。在 MS Office Report.vi 的配置窗口中,可以看到我们创建的 Bookmark,如图 2.15 所示。
同样,我们可以为 MS Office Report.vi 输入参数,如图 2.14 所示。
运行程序,可以看到生成的报告如图 2.16 所示。第二次尝试,再次成功!
通过上面的实战,我们可以看到,LabVIEW Office 报告生成工具包的精髓就是"Where"和"What",Excel 中通过 Namebox 来定位,Word 中通过 Bookmark 来定位。准备好内容,并告诉MS Office Report.vi 位置在哪里,MS Office Report.vi 就会把内容精准的插到您指定的位置中去了。
在下节中,我们将再识 Office 报告生成工具包,我们会使用 Office 报告生成工具包中的普通 VI 来创建更加漂亮的文档。
俗话说"做事做细",当我们能利用 MS Office Report.vi 成功生成报告之后,接下来的想法肯定是如何把这个报告做的更漂亮。
本章主要与大家分享如何编辑单元格/字体的格式,下一章会与大家分享如何插入图片,表格…通过编辑单元格/字体的格式和插入图片和表格,可以使报告变得更加漂亮,更加专业。MS Office Report.vi 这个 Express VI 中没有格式设置选项,所以格式的编辑都将用普通 VI 实现。
使用普通 VI 生成报告
在使用普通 VI 前,先看看 MS Office report generation toolkit 函数面板的构成,如图 3.1 所示。
Part I 是一些基础性的报表生成 VI,最常用的是"新建报表"——如同打开文件一样,"保存报表至…"——保存报表,如同保存文件一样,和"处置报表"——释放资源,如同关闭文件一样。
Part II 是与 Word 和 Excel 操作相关的 VI,向 Word/Excel 插入文本,图片,表格以及编辑格式等都在这里。
Part III 是插入 VI 说明信息以及设置打印格式的 VI。
了解这些 VI 的功能后,我们可以使用"新建报表","Excel Easy Text.vi","保存报表至…"和"处置报表"来实现先前 MS Office Report.vi 实现的功能,如图 3.2 所示。
LabVIEW中文版有一个非常好的特性——帮助文档都是中文,这就非常方便刜学者学习。
图 3.3 是"新建报表"VI 的帮助文档截图。通过中文帮助文档,我们可以很容易理解上面的程序的意思。我们通过 New Report.vi 告诉程序按照 Report Template.xlt 模板生成一个新的Excel 格式的报告,通过 Excel Easy Text.vi 告诉程序在 OperatorName 的位置插入内容刘邦,通过 Save Report to File.vi 告诉程序把生成的报告保存在 C:\Test.xls,最后释放所有占用的资源。
到此为止,我们具备了用普通 VI 来生成报告的能力。感兴趣的读者请利用普通 VI 把 Time 和 Value也插入到报告中去。
在工程实践过程中,我发现绝大部分用户都倾向于使用 Excel 来制作产品测试报告,理由有:Excel 里面有丰富的数学和图表工具;Excel 方便做统计;Excel 形式的报表符合自动化测试结果的表达习惯…
为减少冗余的文字,本文从现在开始仅以 Excel 报表为范例来讲述各种报告生成技术,Word 形式的报告生成技术与 Excel 大致相同,大家可以参考第二章的模式,自行研究。
设置字体
设置 Excel 单元格的字体,最常用也是最容易的方法是调用报告生成工具包中,Excel Format 子集下面的 Excel Set Cell Font.vi,如图 3.4 所示。
在 Excel Set Cell Font.vi 的即时帮助窗口(图 3.5)中可以看到,Excel Set Cell Font.vi 用法很简单,只需要告诉 Excel Set Cell Font.vi 以什么样的字体(font)格式化哪个单元格(name/start)即可,用法与 Excel Easy Text.vi 很相似。
我们在图 3.2 的程序的 Excel Easy Text.vi 前面加入 Excel Set Cell Font.vi,即可以控制该单元格的字体了,如图 3.6 所示。
Excel Easy Text.vi 中的字体设置
每一个刚接触报告生成工具包的工程师都会问同一个问题"为什么 Excel Easy Text.vi 中有 font 参数输入(如所示),还要另外使用 Excel Set Cell Font.vi 设置字体?为什么不能直接给 Excel EasyText.vi 的 font 参数直接赋值来实现字体设置?"
这是因为 Excel Easy Text.vi 中的 font 参数不能影响从模板创建的 Excel 文档中的单元格,只能对新建的 Excel 文档起作用,如图 3.8 所示。
设置单元格对齐
设置完字体后,下一个编辑操作就是单元格对齐,同上,借助报告生成工具包中 Set Excel Format选板下的 Excel Set Cell Alignment.vi 即可完成,如图 3.9 所示。
在使用 Excel Set Cell Alignment.vi 前,应该先把内容插入单元格,然后在对齐,即 Excel Set Cell Alignment.vi 应该在 Excel Easy Text.vi 后面使用,如图 3.10 所示。
设置单元格边框和背景色
按图索引,在报告生成工具包中 Set Excel Format 选板下,我们可以找到设置单元格边框和背景色的 VI,Excel Set Cell Color and Border.vi,如图 3.11 所示。
使用 Excel Set Cell Color and Border.vi 与 Excel Set Cell Alignment.vi 类似,如图 3.12 所示。
精通 LabVIEW 报告生成工具包
通过上面的练习,我们对报告生成工具包的陌生感应该大大降低了,另外,我们也发现,报告生成工具包的使用并不难,它也遵从"打开->操作->关闭"的文件编程模式。
我们还发现,在 LabVIEW 这样一个"所编即所得"的友好的开发环境中,很容易掌握一个全新的功能——只需要借助帮助文档多尝试。这也印证了一个 LabVIEW 大牛的话"学好 LabVIEW 仅仅需要大胆去尝试"。
俗话说"观众器者为良将,观千方者为良医",精通 LabVIEW 报告生成工具包的不二法门则是看完LabVIEW 报告生成工具包自带的范例程序,如图 3.13 所示。
最后希望大家一起分享一起讨论。
本文暂时没有评论,来添加一个吧(●'◡'●)