边干边学LabVIEW报表生成资料下载.pdf
《边干边学LabVIEW报表生成资料下载.pdf》由会员分享,可在线阅读,更多相关《边干边学LabVIEW报表生成资料下载.pdf(24页珍藏版)》请在冰点文库上搜索。
想学习如何生成Office报表的工程师;
想学习如何从Excel中读取测试条件的工程师;
不想阅读office报告生成工具包英文帮助文档的工程师。
2第第2章章初初识识LabVIEWOffice报告生成工具包报告生成工具包LabVIEWOffice报告生成工具包升级到1.1.2版本后就变得非常可爱了,因为它提供了一个基于交互式配置的ExpressVIMSOfficeReport,如图2.1所示。
本章就从这个ExpressVI开始,与大家一起进入LabVIEWOffice报告生成的世界。
图2.1MSofficeReport毛主席说过,要在“战略上藐视敌人,在战术上重视敌人”,对于刚接触LabVIEWoffice报告生成工具包的工程师来说,由于陌生陌生而而产生一点畏难情绪是产生一点畏难情绪是非常正常的,就像台儿庄战役以前感觉日本鬼子很难打一样其实打过了就觉得不难打了。
LabVIEWoffice报告生成工具包也是一样,用过了就觉得很好用了。
总的来说,要用好LabVIEWoffice报告生成工具包需要做好两件事“Where”和”What”,即告诉LabVIEWoffice报告生成工具包,在Office文档的哪个位置,放上什么内容即可。
2.1请告诉我内容放在哪里?
请告诉我内容放在哪里?
Excel版版请大家打开Excel,在Excel的左上角有一个namebox,如图2.2所示。
Namebox相当于给单元格起了一个名字,方便开发人员记忆和在程序中使用。
比如,我们给A2单元格起个名字叫”OperatorName”,那么在LabVIEW里面告诉MSofficereport.vi,“刘邦”的位置是”OperatorName”,则MSofficereport.vi就会把“刘邦”写入A2单元格了。
使用Namebox还有一个好处是,当你想把更改“刘邦”的写入位置时,只需要把对应的单元格命名为”OperatorName”即可,而不需要更改LabVIEW程序。
3图2.2Excel里面的Namebox为了使我们的第一个报告看起来“专业”一点,我们在A1单元格中输入报表的名字“美国国家仪器测试报告”,然后把A3单元格命名为”OperatorName”,如图2.3所示。
Excel的Namebox输入还有点儿小小的顺序性技巧:
1.单击选中Excel单元格2.在Namebox里面输入名字并敲回车点击Namebox右边的下拉箭头(如图2.4所示),会发现名字已经在Namebox里面了。
Namebox里面的命名规则请查阅“Google”。
图2.3把A3命名为”OperatorName”接着把A4单元格命名为”Time”,把A5单元格命名为”Value”,如图2.4所示。
4图2.4单元格的别名完成上述步骤后,请把该文件以Excel97-2003模板的形式保存,如图2.5所示。
图2.5保存成Excel97-2003模板成功完成上述步骤之后,恭喜大家,已经完成了整个报告生成工作量的90%,以后大家会体会到,基于基于LabVIEW的报告生成,大量的工作是在设计报告模板上的报告生成,大量的工作是在设计报告模板上。
请打开LabVIEW,并在程序框图中放入MSOfficeReport.vi,这时会弹出配置对话框,如图2.6所示,然后在第一项中选择”CustomReportforExcel”。
5图2.6MSOfficeReport.vi配置对话框接着在Pathtotemplate里面选中刚才保存的模板,如图2.7所示,大家可以发现,MSofficereport.vi会自动找到命过名的单元格。
点击OK按钮,完成配置。
到这里,“Where”就完成了,即完成了告诉LabVIEW在哪里在哪里放置你想插入的内容。
6图2.7选择报告模板在LabVIEW程序框图中,我们为”OperatorName”输入“刘邦”;
为”Time”输入当前日期;
为“Value”输入一个随机数,如图2.8所示。
MSofficeReport.vi可以接受各种类型的输入,大大方便了我们编程。
图2.8报告生成程序运行程序,结果如图2.9所示,可见MSofficeReport.vi已经把数据插入了我们指定的7地方,第一次尝试,圆满成功!
图2.9运行结果对于简单的报告应用,大家学到这里就可以了。
想做出格式精美专业的报告,请继续阅读第三章,这时候,除了“Where”和“What”外,还需要告诉LabVIEW,“How”,即以什么格式把内容插到指定位置去。
2.2请告诉我内容放在哪里?
Word版版与Excel中的Namebox作用相同,Word中用Bookmark来为一个位置命名,如图2.10所示。
MSofficereport.vi可以找到Word模板中有Bookmark的位置。
图2.10WordBookmark与上节相同,我们开始做一个简单的Word模板,第一行键入“美国国家仪器测试报告”,第二行键入“操作员姓名”,这时,光标停留在“操作员姓名”,我们为这个位置添加一个Bookmark,如图2.11所示。
8图2.11插入Bookmark同Excel,为Word创建“测试时间”,“测试值”的Bookmark,如图2.12所示:
图2.12Word报告模板9制作好Word模板后,请保存为Word97-2003template格式,如图2.13所示。
图2.13保存为Word97-2003template格式当Word模板做好后,我们可以像上节中那样,使用MSOfficeReport.vi向模板插入内容。
在MSOfficeReport.vi的配置窗口中,可以看到我们创建的Bookmark,如图2.15所示。
同样,我们可以为MSOfficeReport.vi输入参数,如图2.14所示。
图2.14LabVIEW报告生成程序运行程序,可以看到生成的报告如图2.16所示。
第二次尝试,再次成功!
通过上面的实战,我们可以看到,LabVIEWOffice报告生成工具包的精髓就是“Where”和“What”,Excel中通过Namebox来定位,Word中通过Bookmark来定位。
准备好内容,并告诉MSOfficeReport.vi位置在哪里,MSOfficeReport.vi就会把内容精准的插到您指定的位置中去了。
在下节中,我们将再识Office报告生成工具包,我们会使用Office报告生成工具包中的普通VI来创建更加漂亮的文档。
10图2.15从MSOfficeReport配置窗口看到的Bookmark图2.16自动生成的报告11第第3章章再识再识LabVIEWOffice报告生成工具包报告生成工具包俗话说“做事做细”,当我们能利用MSOfficeReport.vi成功生成报告之后,接下来的想法肯定是如何把这个报告做的更漂亮。
本章主要与大家分享如何编辑单元格/字体的格式,下一章会与大家分享如何插入图片,表格通过编辑单元格/字体的格式和插入图片和表格,可以使报告变得更加漂亮,更加专业。
MSOfficeReport.vi这个ExpressVI中没有格式设置选项,所以格式的编辑都将用普通VI实现。
本章使用的开发环境是LabVIEW8.6,MSOfficereportgenerationtoolkit1.1.3。
3.1使用普通使用普通VI生成报告生成报告在使用普通VI前,先看看MSOfficereportgenerationtoolkit函数面板的构成,如图3.1所示。
PartI是一些基础性的报表生成VI,最常用的是“新建报表”如同打开文件一样,“保存报表至”保存报表,如同保存文件一样,和“处置报表”释放资源,如同关闭文件一样。
图3.1MSOfficereportgenerationtoolkit函数面板的构成PartII是与Word和Excel操作相关的VI,向Word/Excel插入文本,图片,表格以及编辑格式等都在这里。
PartIII是插入VI说明信息以及设置打印格式的VI。
了解这些VI的功能后,我们可以使用“新建报表”,“ExcelEasyText.vi”,“保存报表至”和“处置报表”来实现先前MSOfficeReport.vi实现的功能,如图3.2所示。
12图3.2生成简单的Excel报告LabVIEW8.6中文版有一个非常好的特性中文帮助文档,这就非常方便中国工程师学习。
图3.3是“新建报表”VI的帮助文档截图。
通过中文帮助文档,我们可以很容易理解上面的程序的意思。
我们通过NewReport.vi告诉程序按照ReportTemplate.xlt模板生成一个新的Excel格式的报告,通过ExcelEasyText.vi告诉程序在OperatorName的位置插入内容刘邦,通过SaveReporttoFile.vi告诉程序把生成的报告保存在C:
Test.xls,最后释放所有占用的资源。
图3.3新建报表帮助文档到此为止,我们具备了用普通VI来生成报告的能力。
感兴趣的读者请利用普通VI把Time和Value也插入到报告中去。
在工程实践过程中,我发现绝大部分用户都倾向于使用Excel来制作产品测试报告,理由有:
Excel里面有丰富的数学和图表工具;
Excel方便做统计;
Excel形式的报表符合自动化测试结果的表达习惯为减少冗余的文字,本文从现在开始仅以Excel报表为范例来讲述各种报告生成技术,Word形式的报告生成技术与Excel大致相同,大家可以参考第二章的模式,自行研究,当做学完本文之后的作业。
3.2设置设置字体字体设置Excel单元格的字体,最常用也是最容易的方法是调用报告生成工具包中,Excel13Format子集下面的ExcelSetCellFont.vi,如图3.4所示。
图3.4ExcelSetCellFont.vi在ExcelSetCellFont.vi的即时帮助窗口(图3.5)中可以看到,ExcelSetCellFont.vi用法很简单,只需要告诉ExcelSetCellFont.vi以什么样的字体(font)格式化哪个单元格(name/start)即可,用法与ExcelEasyText.vi很相似。
图3.5ExcelSetCellFont.vi我们在图3.2的程序的ExcelEasyText.vi前面加入ExcelSetCellFont.vi,即可以控制该单元格的字体了,如图3.6所示。
图3.6设置单元格字体范例3.2.1ExcelEasyText.vi中的字体设置中的字体设置每一个刚接触报告生成工具包的工程师都会问同一个问题“为什么ExcelEasyText.vi14中有font参数输入(如所示),还要另外使用ExcelSetCellFont.vi设置字体?
为什么不能直接给ExcelEasyText.vi的font参数直接赋值来实现字体设置?
”图3.7ExcelEasyText.vi中的font参数这是因为ExcelEasyText.vi中的font参数不能影响从模板创建的Excel文档中的单元格,只能对新建的Excel文档起作用,如图3.8所示。
图3.8使用font参数设置字体格式3.3设置单元格设置单元格对齐对齐设置完字体后,下一个编辑操作就是单元格对齐,同上,借助报告生成工具包中SetExcelFormat选板下的ExcelSetCellAlignment.vi即可完成,如图3.9所示。
图3.9ExcelSetCellAlignment.vi15在使用ExcelSetCellAlignment.vi前,应该先把内容插入单元格,然后再对齐,即ExcelSetCellAlignment.vi应该在ExcelEasyText.vi后面使用,如图3.10所示。
图3.10设置单元格对齐3.4设置单元格边框和背景色设置单元格边框和背景色按图索骥,在报告生成工具包中SetExcelFormat选板下,我们可以找到设置单元格边框和背景色的VI,ExcelSetCellColorandBorder.vi,如图3.11所示。
图3.11ExcelSetCellColorandBorder.vi使用ExcelSetCellColorandBorder.vi与ExcelSetCellAlignment.vi类似,如图3.12所示。
图3.12设置单元格背景3.5精通精通LabVIEW报告生成工具包报告生成工具包通过上面的练习,我们对报告生成工具包的陌生感应该大大降低了,另外,我们也发现,报告生成工具包的使用并不难,它也遵从“打开打开-操作操作-关闭关闭”的文件编程模式。
我们还发现,在LabVIEW这样一个“所编即所得”的友好的开发环境中,很容易掌握一个全新的功能只需要借助帮助文档多尝试。
这也印证了一个LabVIEW大牛的话“学好LabVIEW仅仅需要大胆去尝试”。
16俗话说“观众器者为良将,观千方者为良医”,精通LabVIEW报告生成工具包的不二法门则是看完LabVIEW报告生成工具包自带的范例程序,如图3.13所示。
图3.13LabVIEW报告生成工具包经典范例另外一个值得学习的范例程序就是由NI公司方慧敏女士写的范例程序。
图3.14报告生成经典范例17第第4章章完整的报告生成实例完整的报告生成实例前三章着眼于报告生成基本技术的讲解,正如武师讲解分解动作一样;
本章将给出一个完整的报告生成实例,正如武师演练一个完整的武术套路。
在继续学习之前,请大家先打开ReportExample.pdf,感受一下本实例生成的报告的实际效果。
4.1项目需求项目需求1,自动从Excel文档中读取测试条件和测试规格。
测试条件以及测试规格都用Excel制定好了,如图4.1所示,开发人员不愿意手动把众多测试条件及测试规格数据输入自动化测试程序,所以要求自动化测试程序能自动从Excel文档中读取测试条件和测试规格。
图4.1繁多的测试条件和测试规格2,自动完整测试。
这是自动化测试程序的基本要求。
3,自动完成具有专业且完整的Word报表。
初学报表生成的工程师,常常会忽略表格的排版和格式,所以看起来不够专业。
一份专业的Word表报,应该有封面、目录;
且各章节清楚,排版专业。
这三项具体的要求,如图4.2所示。
读取测试条件读取测试条件自动化测试自动化测试自动生成报表自动生成报表图4.2客户的三个要求184.2从从Excel文档中读取测试条件和测试规格文档中读取测试条件和测试规格将测试规格文档中,把测试条件和测试规格Copy到一个新的Excel文件中(如图4.3所示),并命名为TestCondition.xlsCopy+Paste的动作可比一个一个地输入测试条件数据省力多了图4.3制作Testcondition.xls文件如图4.3所示,本范例的测试条件有9组(311),本范例要将这9组测试条件读出来,自动完成9次测试。
在LabVIEWOffice报告生成工具包,提供一个ExcelGetData.vi,专用于从Excel文件中获取数据,如图4.4所示。
图4.4ExcelGetData.vi使用ExcelGetData.vi就可以很容易的从Excel中获取测试条件数据,如图4.5所示,详细范例代码参见GetTestCond.vi。
19图4.5GetTestCond.vi4.3自自动完成测试动完成测试多组测试条件已表达成了2维数组,所以很容易通过For循环来自动完成多组测试,并获得测试结果。
由于自动化测试并不是本文讲解的重点,所以,本文用随机数来代替自动化测试的结果,如图4.6所示。
图4.6AutoTest.vi4.4自动生成报表自动生成报表获得测试结果后,就可以生成报表了。
生成报表的第一步是制作报表模板,然后是把测试结果插入模板的指定位置。
4.4.1制作报表模板制作报表模板报表最好使用公司现有的模板,若没有,可以借鉴本文提供的报告模板NIReport.dot,如图4.7所示:
图4.7NIReport.dot将NIReport.dot拷贝到Word的Template文件夹中,然后根据该模板新建一个空白文档,如图4.8所示。
20图4.8根据NIReport.dot新建一个文档新建完毕后,用测试项名作为标题名,格式选为标题1(Heading1),然后紧接着添加一个书签(Bookmark),如图4.9所示。
图4.9添加标题和书签最后更新目录页,并将文件保存为PowerTestReportTemp.dot,即完成了报表模块制作任务,如图4.10所示。
21图4.10更新目录页4.4.2插入数据、表格和图片插入数据、表格和图片一份专业的报表离不开数据、表格和图片,在ReportGen.vi里面,详细给出了数据、表格和图片的代码实现细节,如图4.11所示。
碍于篇幅,本文就不在这里像前三章一样对每一个VI进行解释了,请大家结合帮助文档和实际运行效果加以理解。
图4.11ReportGen.vi4.4.3运行范例程序运行范例程序本范例主要由五个函数构成,如图4.12所示。
图4.12范例程序构架22打开ATEMain.vi可以看到如图4.13所示程序界面,直接运行,可以感受自动报告生成的过程。
图4.13ATEMain.vi23第第5章章后记后记“IhearandIforget;
IseeandIremember;
IdoandIunderstand.”眼见为实,耳听为虚,任何事都要亲自付以行动才能真真正正的理解。
在LabVIEW这样一个非常适合工程师和科学家的平台上,多尝试,多实践是工程能力增长的不二法门。