1、 i 目 录 第 1 章 序言 1 第 2 章 初识 LabVIEW Office 报告生成工具包 2 2.1 请告诉 我内 容放 在哪 里?Excel 版 2 2.2 请告诉 我内 容放 在哪 里?Wor d 版 7 第 3 章 再识 LabVIEW Office 报告生成工具包 11 3.1 使用普 通 VI 生成报 告 11 3.2 设置字 体 12 3.2.1 Excel Easy Text.vi 中的字 体设置 . 13 3.3 设置单 元格对齐 14 3.4 设置单 元格 边框 和背 景色 15 3.5 精通 LabVIEW 报告 生成 工具包 15 第 4 章 完整的报告生成实例
2、 17 4.1 项目需 求 17 4.2 从 Excel 文 档中 读取 测试 条件和 测试 规格 . 18 4.3 自动完 成测 试 19 4.4 自动生 成报 表 19 4.4.1 制作报 表模 板 . 19 4.4.2 插入数 据、 表格 和图 片 . 21 4.4.3 运行范 例程 序 . 21 第 5 章 后记 23 1 第1 章 序言 在自动 化测 试领 域, 生成 的 Office 报表(Word,Excel) 几乎是 每个 专业 的自 动化 测试程 序 的标配 。 不 具备 自动 报表 生成的 自动 化测 试程 序通 常被视 作 “ 入门 级” 程序, 就像汽 车里 面 的“奔
3、 奔” 或者 “QQ ” 。先前, 生成 专业 的 office 报表几 乎被 少数 几个 VB 或 VC 高手“ 垄 断” , 因为 你除 了要 熟悉 VB 或 VC 外 ,还要 熟悉 Windows 下的 ActiveX 机制 以及 Wor d 和 Excel 导出的 属性 和方 法。 NI Office 报告生 成工 具包 的出现 打破 了上 述的 技术 壁垒 , 使得任 何一 个非 计算机专 业毕 业且并不精通Windows ActiveX 机制的工程师都能做 出一份能与VB 、VC 高手 媲美的专业 的 Office 报表 。 我向 大家 介绍 这个工 具包 , 并不 是想 要 “剥
4、 夺” 大家学 习ActiveX 的机会 , 成为 某些偏 执程 序员 所宣 称的 “LabVIEW 依赖者” 。 相反 , 我内心 所考 虑却 是希 望尽我所 能, 帮 助大家 把 宝贵的时间从繁琐的技 术细 节中 解脱 出来 , 投入到 核心 价值 的创 造中去 。 另外, NI Office 报告 生成 工具 包 并不 是以dll的形式 给出 ,而 是以源代 码的 形式 给出 只要你 愿意 , 你可以 在完 整的 商业 源代 码的基 础上 随时 研究office 报告 生成 的所 有细 节。 本篇文 章的 读者 是: 勤奋且 愿意 在业 余时 间专 研新技 术的 工程 师; 正在使 用
5、LabVIEW 编 写自 动化测 试代 码的 工程 师; 想学习 如何 生成 Office 报 表的工 程师 ; 想学习 如何 从 Excel 中读 取测试 条件 的工 程师 ; 不想阅 读 office 报 告生 成 工具包 英文 帮助 文档 的工 程师。 2 第2 章 初 识 LabVIEW Office 报告生成工具 包 LabVIEW Office 报告生成 工具包 升级 到 1.1.2 版本 后就变得 非常 可爱 了, 因为它提供 了 一个基 于交 互式 配置 的 Express VIMS Office Report, 如 图 2.1 所示。本章就从这个 Express VI 开始
6、,与 大家 一起进 入 LabVIEW Office 报告生 成的 世界 。 图 2.1 MS office Report 毛主席 说过 , 要 在 “ 战略 上 藐视敌 人, 在战 术上 重视 敌人” , 对 于刚 接触 LabVIEW office 报告生 成工 具包 的工 程师 来说, 由于 陌生而产生一 点畏难情绪是非常正 常的 , 就像 台儿 庄战 役以前 感觉 日本 鬼子 很难 打一样 其实 打过 了就 觉得不 难打 了。 LabVIEW office 报告生成 工具包 也是 一样 ,用 过了 就觉得 很好 用了 。 总的来说,要用好 LabVIEW office 报告生成工具包需
7、要做好两件事“Where” 和”What”,即告 诉 LabVIEW office 报告生 成工 具包 ,在 Office 文档 的哪 个位 置,放 上什 么 内容即 可。 2.1 请 告诉 我内容 放在 哪里? Excel 版 请大家 打开 Excel , 在 Excel 的左上 角有 一个 name box,如 图 2.2 所示。Name box 相当 于给单 元格 起了 一个 名字 , 方便 开发 人员 记忆和在 程序中 使用 。 比如, 我们 给 A2 单元格 起 个名字 叫”Operator Name” ,那么 在 LabVIEW 里面告 诉 MS office report.vi
8、, “刘 邦”的 位置 是” Operator Name” , 则 MS office report.vi 就会把 “ 刘邦” 写入 A2 单元 格了 。 使用 Namebox 还有一个好处是,当你想把更改“刘邦”的写入位置时,只需要把对应的单元格命名为” Operator Name”即可 ,而 不需要更 改 LabVIEW 程序。 3 图 2.2 Excel 里面的 Name box 为了使 我们 的第 一个 报告 看起来 “专 业” 一 点, 我们在 A1 单元 格中 输 入报 表 的名字 “美 国国家 仪器 测试 报告 ” ,然后把 A3 单元 格 命名为”OperatorName”,如
9、图 2.3 所示。Excel 的 Name box 输入 还有 点儿小 小的顺序性 技巧 : 1. 单击选 中 Excel 单元 格 2. 在 Name box 里面输 入名 字并敲回 车 点击Name box 右边 的下拉 箭头( 如 图 2.4 所示),会发现名 字已 经在Name box 里面了 。 Name box里面的 命名 规则 请 查阅 “Google”。 图 2.3 把 A3 命名为”OperatorName” 接着 把 A4 单元格 命名 为”Time” ,把 A5 单元格 命名 为”Value ”,如 图 2.4 所示。 4 图 2.4 单元格的别名 完成上 述步 骤后 ,
10、请 把该 文件 以 Excel97-2003 模板的形 式保存 ,如 图 2.5 所示。 图 2.5 保存 成 Excel97-2003 模板 成功完成上述步骤 之后,恭喜大家,已经完 成了整个报告生成工作量 的 90% ,以后 大 家会体 会到 , 基于 LabVIEW 的报告生成,大量 的 工作是在设计报告模 板上 。 请打 开 LabVIEW ,并 在程 序框图 中放 入 MS Office Report.vi ,这时会 弹出 配置 对话框 , 如图 2.6 所示 , 然后 在第 一项中 选择”Custom Report for Excel” 。 5 图 2.6 MS Office Re
11、port.vi 配 置对话框 接着 在 Path to template 里面选中 刚才 保存 的模 板, 如图 2.7 所 示, 大家 可以 发现,MS office report.vi 会自动找到 命过名 的单 元格 。点击 OK 按钮,完成 配置 。 到这里 , “Where ” 就完成 了 ,即 完成 了 告诉 LabVIEW 在哪里 放 置你 想插 入的 内容。 6 图 2.7 选择报告模板 在 LabVIEW 程序 框图 中 , 我们为”OperatorName”输入 “刘邦 ” ; 为”Time” 输入 当前日 期; 为“Value ” 输入 一个 随机 数, 如图 2.8 所示
12、。MS office Report.vi 可以 接受 各种 类型的 输入 , 大大方 便了 我们 编程 。 图 2.8 报告生成程序 运行程 序, 结果 如图 2.9 所示, 可见 MS office Report.vi 已经把数据 插入 了我 们指定 的 7 地方, 第一 次尝 试, 圆满 成功! 图 2.9 运行结果 对于简 单的 报告 应用 , 大家学到 这里 就可 以了 。 想做出格 式精 美专 业的 报告 , 请继续 阅 读第三章,这时候 ,除了 “Where”和“What ”外 ,还需要告诉 LabVIEW,“ How”,即 以 什么格 式把 内容 插到 指定 位置去 。 2.2
13、请 告诉 我内容 放在 哪里? Word 版 与 Excel 中的 Namebox 作用相同 ,Wor d 中用 Bookmark 来为一个位 置命 名,如 图 2.10 所示。MS office report.vi 可以找 到 Wor d 模板中 有 Bookmark 的位 置。 图 2.10 Word Bookmark 与上节 相同 , 我们 开始 做一 个简单 的 Wor d 模板, 第一行键入 “美国 国家 仪器 测试 报告” , 第二行键入“ 操作员姓 名” ,这时,光标 停留在“ 操作 员姓名” ,我 们为这个 位置 添加一个 Bookmark,如 图 2.11 所示 。 8 图
14、2.11 插入 Bookmark 同 Excel,为 Wor d 创建 “测试时 间” , “测 试值 ”的 Bookmark,如 图 2.12 所示 : 图 2.12 Word 报告模板 9 制作 好 Wor d 模板 后, 请保存 为 Word97-2003 template 格式 ,如 图 2.13 所示。 图 2.13 保存为 Word97-2003 template 格式 当 Wor d 模板 做好 后, 我们可以 像上 节中 那样 ,使 用 MS Office Report.vi 向模板插 入内 容。 在 MS Office Report.vi 的配置 窗口 中, 可以 看到 我们
15、创 建 的 Bookmark,如 图 2.15 所示。 同样, 我们 可以 为 MS Office Report.vi 输入参数 ,如 图 2.14 所示。 图 2.14 LabVIEW 报 告生成程 序 运行程 序, 可以 看到 生成 的报告 如 图 2.16 所示。 第二次尝 试, 再次 成功 ! 通过上 面的 实战 , 我们 可以 看到 , LabVIEW Office 报 告生成 工具 包的 精髓 就是 “Where ” 和“What”, Excel 中通过 Namebox 来定位 ,Wor d 中通过 Bookmark 来定位 。准备好 内容 , 并告 诉 MS Office Rep
16、ort.vi 位置在 哪里 ,MS Office Report.vi 就会把 内容 精准 的插到 您指 定 的位置 中去 了。 在下节 中, 我们 将再 识 Office 报告生成 工具 包, 我 们会使 用 Office 报告 生成 工具包 中 的普 通 VI 来创 建更 加漂 亮的文档 。 10 图 2.15 从 MS Office Report 配置窗口看到的 Bookmark 图 2.16 自动生成的报告 11 第3 章 再识 LabVIEW Office 报告生成工具 包 俗话说 “做 事做 细” ,当 我 们能利 用 MS Office Report.vi 成功生成报 告之 后,
17、接 下来的 想法肯 定是 如何 把这 个报 告做的 更漂 亮。 本章主 要与 大家 分享 如何 编辑单 元格/ 字体 的格 式, 下一章 会与 大家 分享 如何 插入图 片, 表格通 过编辑单元格/ 字体的格式 和插入图片和表格,可以 使报告变得更加漂亮,更 加专 业。MS Office Report.vi 这个 Express VI 中没有 格式 设置选 项, 所以 格式 的编 辑都将 用普 通 VI 实现。 本章 使用 的开 发环境 是 LabVIEW8.6,MS Office report generation toolkit 1.1.3。 3.1 使用普 通 VI 生成报 告 在使用
18、普通 VI 前, 先看 看 MS Office report generation toolkit 函数 面板 的构 成, 如 图 3.1 所示。 Part I 是一些 基础 性的 报 表生成 VI ,最常 用的 是“ 新建报 表” 如同 打开 文件一 样, “保存 报表 至” 保 存报表 , 如同 保存 文件 一 样, 和 “ 处置 报表” 释放资 源, 如 同 关闭文 件一 样。 图 3.1 MS Office report generation toolkit 函数面板的构成 Part II 是与 Wor d 和 Excel 操作相 关的 VI,向 Word/Excel 插入 文本 ,
19、图片 , 表格以及 编 辑格式 等都 在这 里。 Part III 是插入 VI 说明 信息 以及设 置打 印格 式的 VI 。 了解这 些 VI 的功能 后, 我 们可以 使用 “新 建报 表” , “Excel Easy Text.vi ” , “保存报 表至 ” 和“处 置报 表” 来实 现先 前 MS Office Report.vi 实现的功 能, 如 图 3.2 所示 。 12 图 3.2 生成简单 的 Excel 报告 LabVIEW8.6 中文 版有 一个 非常好 的特 性 中文 帮助文档 , 这就非 常方 便 中国工程 师 学习。 图 3.3 是“ 新建 报表 ”VI 的帮助
20、 文档 截图 。通 过中 文帮助 文档 ,我 们可 以很 容易 理解上 面的 程序 的意 思 。 我们通 过 New Report.vi 告诉程序 按 照 Report Template.xlt 模板 生成 一个新 的 Excel 格式 的报 告,通 过 Excel Easy Text.vi 告诉程序 在 OperatorName 的位置插 入 内容刘 邦, 通过 Save Report to File.vi 告诉程序把 生 成的报 告保 存 在 C:Test.xls , 最后 释放 所 有占用 的资 源。 图 3.3 新建报表帮助文档 到此为 止, 我们 具备 了用 普通 VI 来 生成 报
21、告 的能 力。感 兴趣 的读 者请 利用 普通 VI 把 Time 和 Value 也插 入到报 告中去 。 在工程 实践 过程 中, 我发 现绝大 部分 用户 都倾 向于 使用 Excel 来制 作 产品测 试报告 , 理 由有:Excel 里面 有丰 富的 数学和 图表 工具 ;Excel 方 便做统 计;Excel 形式 的报 表符合 自动 化测试 结果 的表 达 习惯 为减少 冗余 的文字, 本文 从现在 开始 仅以 Excel 报 表为范 例来 讲述 各种 报告 生成技术 , Wor d 形式 的报 告生 成 技术与 Excel 大致 相同 ,大 家可 以参 考第 二章 的模 式,
22、自行研 究, 当 做学完 本文 之后 的作 业。 3.2 设置 字体 设置 Excel 单元 格 的 字体 ,最常 用也 是最 容易 的方 法是调 用报 告生成工 具包 中 ,Excel 13 Format 子集下面 的 Excel Set Cell Font.vi,如图 3.4 所示。 图 3.4 Excel Set Cell Font.vi 在 Excel Set Cell Font.vi 的 即时帮 助窗 口( 图 3.5) 中 可 以看到,Excel Set Cell Font.vi 用法 很简单,只需要告诉 Excel Set Cell Font.vi 以什么样的字体(font )格
23、式化哪个单元格 (name/start) 即可,用 法与 Excel Easy Text.vi 很相似。 图 3.5 Excel Set Cell Font.vi 我们在 图 3.2 的程序 的 Excel Easy Text.vi 前面加入 Excel Set Cell Font.vi , 即可以 控制该 单元格 的字 体了 ,如 图 3.6 所示 。 图 3.6 设置单元格字体范例 3.2.1 Excel Easy Text.vi 中的字体设置 每一个 刚接触 报告生 成工 具包的 工程师 都会问 同一 个问题 “为什 么 Excel Easy Text.vi 14 中有 font 参数
24、输入( 如所 示) ,还要 另外 使用 Excel Set Cell Font.vi 设置字体 ?为 什么不 能直 接给 Excel Easy Text.vi 的 font 参数 直接 赋值 来实 现字 体 设置 ?” 图 3.7 Excel Easy Text.vi 中的 font 参数 这是因 为 Excel Easy Text.vi 中的 font 参数不 能影 响 从模板 创建 的 Excel 文档 中的单 元 格,只 能对 新建 的 Excel 文档起 作用 ,如 图 3.8 所示。 图 3.8 使用 font 参数设置字体 格式 3.3 设 置单 元格对齐 设置完 字体 后, 下一
25、 个编 辑操作就 是单 元格 对齐 , 同上, 借助 报告 生成 工具 包 中 Set Excel Format 选板下的 Excel Set Cell Alignment.vi 即可完成 ,如 图 3.9 所示 。 图 3.9 Excel Set Cell Alignment.vi 15 在使 用 Excel Set Cell Alignment.vi 前, 应该 先把 内容 插入单 元格,然后 再对齐,即 Excel Set Cell Alignment.vi 应该在 Excel Easy Text.vi 后面使用, 如 图 3.10 所示。 图 3.10 设置单元格对齐 3.4 设 置单
26、 元格边 框和 背景色 按图索 骥, 在报 告生 成工 具包 中 Set Excel Format 选 板下, 我们 可以 找到 设置 单元格 边 框和背 景色 的 VI ,Excel Set Cell Color and Border.vi ,如 图 3.11 所示。 图 3.11 Excel Set Cell Color and Border.vi 使用 Excel Set Cell Color and Border.vi 与 Excel Set Cell Alignment.vi 类似,如 图 3.12 所 示。 图 3.12 设置单元格背景 3.5 精通 LabVIEW 报告 生成 工
27、具 包 通过上 面的 练习 , 我 们对 报 告生成 工具 包的 陌生 感应 该大大 降低 了, 另外, 我们 也发现 , 报告生 成工 具包 的使 用并 不难, 它也 遵从 “ 打开- 操作- 关闭”的文 件编 程模式 。 我们还 发现 , 在 LabVIEW 这样一 个 “所 编即 所得 ” 的友好 的开 发环 境中 , 很 容易掌 握 一个全 新的 功能 只需 要借助 帮助 文档 多尝 试。 这也印 证了 一 个 LabVIEW 大牛的 话 “学 好 LabVIEW 仅仅 需要 大胆 去尝试 ” 。 16 俗话说 “观 众器 者为 良将 ,观千 方者 为良 医” ,精 通 LabVIEW
28、 报告 生成 工 具包的 不二 法门则 是看 完 LabVIEW 报 告生成 工具 包自 带的 范例 程序, 如 图 3.13 所示。 图 3.13 LabVIEW 报 告生成工 具包经典范例 另外一 个值 得学 习的 范例 程序就 是由NI 公司 方慧 敏女士 写的范 例程 序 。 图 3.14 报告生成经典范例 17 第4 章 完整的报告生成 实 例 前三章 着眼 于 报 告生 成基 本技术 的讲 解, 正如 武师 讲解分 解动 作一 样; 本章 将给出 一个 完整的 报告 生成 实例 , 正如 武师 演练 一个 完整 的武 术套路 。 在继 续学习 之前 , 请大家 先打 开 Repor
29、tExample.pdf ,感 受 一下本 实例 生成 的报 告的 实际效 果。 4.1 项目需 求 1,自 动从 Excel 文档 中读 取测试 条件 和测 试规 格。 测试条 件以 及测 试规 格都 用 Excel 制定 好了 , 如图 4.1 所示, 开发 人员 不愿 意 手动把 众 多测试 条件 及测 试规 格数 据输入 自动 化测 试程 序, 所以要 求自 动化 测试 程序 能自动 从 Excel 文档中 读取 测试 条件 和测 试规格 。 图 4.1 繁多的测试条件和测试 规格 2,自 动完 整测 试。 这是自 动化 测试 程序 的基 本要求 。 3,自 动完 成具 有专 业且 完
30、整的 Wor d 报表。 初学报 表生 成的 工程 师, 常常会 忽略 表格 的排 版和 格式 , 所 以看 起来不 够专 业。 一份 专 业的 Wor d 表 报, 应该 有 封面、 目录 ;且 各章 节清 楚,排 版专 业。 这三项 具体 的要 求, 如 图 4.2 所示。 读取测试条件 自动化测试 自动生成报表图 4.2 客户的三个要求 18 4.2 从 Excel 文 档中 读取测试 条件 和测试 规格 将测试 规格 文档 中, 把测 试条件 和测 试规 格 Copy 到一个 新的 Excel 文件 中(如 图 4.3 所示) ,并 命名为 TestCondition.xlsCopy+
31、Paste 的动作 可比 一个 一个 地输 入测试 条件 数 据省力 多了 图 4.3 制作 Testcondition.xls 文件 如图 4.3 所示, 本范 例的 测试条 件有 9 组(311),本范例 要将 这 9 组测试 条件读出 来, 自动完 成 9 次测 试。 在 LabVIEW Office 报告 生 成工具 包, 提供 一个 Excel Get Data.vi , 专用 于从 Excel 文件 中获取 数据 ,如 图 4.4 所示。 图 4.4 Excel Get Data.vi 使用 Excel Get Data.vi 就可以很 容易 的 从 Excel 中获取测 试条 件
32、数 据, 如图 4.5 所示, 详细范 例代 码参 见 GetTestCond.vi 。 19 图 4.5 GetTestCond.vi 4.3 自 动完 成测试 多组测 试条 件已 表达 成了 2 维数 组, 所以 很容 易通 过 For 循环来自 动完 成多 组测试 , 并 获得测 试结 果 。 由于 自动 化测试 并不 是本 文讲 解的 重点 , 所 以, 本文 用随 机 数来代 替自 动化 测试的 结果 ,如 图 4.6 所示。 图 4.6 AutoTest.vi 4.4 自 动生 成报表 获得测 试结 果后 , 就 可以 生成报 表了 。 生成报 表的 第一步 是制 作报 表模 板,
33、 然后是 把测 试结果 插入 模板 的指 定位 置。 4.4.1 制作报表模板 报表最 好使 用公 司现 有的 模板, 若没 有, 可以 借鉴 本文提 供的 报告 模板 NIReport.dot , 如图 4.7 所示: 图 4.7 NIReport.dot 将 NIReport.dot 拷贝 到 Wor d 的 Template 文 件夹 中, 然 后根据 该模 板新 建一 个空 白文档 , 如图 4.8 所示。 20 图 4.8 根据 NIReport.dot 新建 一个文档 新建完 毕后 ,用 测试 项名 作为标 题名 ,格 式选 为标 题 1(Heading1),然后 紧接 着添加 一
34、 个书签(Bookmark) ,如图 4.9 所示 。 图 4.9 添加标题和书签 最后更 新目 录页 , 并将 文 件保存 为 PowerTestReportTemp.dot , 即完 成了 报表模 块制作 任 务,如 图 4.10 所示 。 21 图 4.10 更新目录页 4.4.2 插入数据、表格和图 片 一份专 业的 报表 离不 开数 据、 表 格和图片 , 在 ReportGen.vi 里面 , 详细 给出 了 数据、 表 格和图 片的 代码 实现 细节 ,如 图 4.11 所示 。 碍于篇 幅,本 文就 不 在 这里 像前 三章一 样对每 一个 VI 进行解释了 ,请 大家结合 帮
35、助 文档 和实 际运 行效果 加以 理解 。 图 4.11 ReportGen.vi 4.4.3 运行范例程序 本范例 主要 由五 个函 数构 成,如 图 4.12 所示 。 图 4.12 范例程序构架 22 打开 ATEMain.vi 可以 看到 如 图 4.13 所示 程序 界面 , 直接运 行, 可以感 受自 动报告生 成 的过程 。 图 4.13 ATEMain.vi 23 第5 章 后记 “I hear and I forget; I see and I remember; I do and I understand.” 眼见为 实, 耳听为 虚, 任何事都 要亲 自付 以行 动 才能真真 正正 的理 解。 在 LabVIEW 这 样一个 非常 适合 工程 师和 科学家 的平 台上 ,多 尝试 ,多实 践是 工程 能力 增长 的不二 法门 。