在工作流构建器中添加 PowerPoint 导出功能
这工程信箱
第八集:最后一英里
作为系统工程师,我们时不时会遇到一些有趣的问题,这些问题往往超出了典型的范畴。JMP用法方面。有时,这个问题本身就很有趣,让我有机会去探究我们在 JMP 中采用特定做法的深层原因。
这个问题已经被问过无数次了。我没有相关的邮件可以参考,但我们姑且假设已经收到过一些回复。此外,在……上也有人问过这个问题。JMP社区论坛.我每次做关于这个主题的研讨会,都会不可避免地提到它。
好了,铺垫就到此为止。今天我们要解决的这个惊天动地的问题是什么呢?正如标题所示,我们要将 PowerPoint 导出功能集成到 Workflow Builder 中。
这个问题
为了对我来说,这个问题通常是在我展示了 Workflow Builder 的所有强大功能之后出现的。我已经演示过它如何捕获 Query Builder 的执行过程,如何将冗长繁琐的数据清理流程简化为一键点击,以及如何自动生成一份可能需要提交给决策者的重要报告。然后,我总是会听到这样的问题:“如何将其导出为 PowerPoint 文件?”(或者类似的问题)。
答案
到说实话,我对之前对这个问题的回答一直不太满意。这也是我决定在博客里附上这份小资料的原因之一。亲爱的读者,如果您对我的新答案的具体运作方式不感兴趣,只想尽快上手,可以直接跳到博客下方的下载部分,那里我会教您如何使用博客附带的下载文件。
我之前对这个问题给出的答案是:“脚本索引中有一个 Save Presentation() 函数的示例,可以将其添加为自定义步骤。”

但那个答案让我很恼火。我就不赘述原因了,总之,它听起来不太……嗯……像JMP的风格。总之,前几天我下定决心,最后一次说出来!¡NO MAS!
我这样做的。
构建 PowerPoint 导出
在JMP 18 的工作流构建器新增了对 if/else 语句和消息的支持,以及其他一些功能。正是这两项功能,再加上一些晦涩的 JSL 代码,让我得以实现这个功能。(侧边栏:JMP脚本索引 是你的朋友,伙计们!)
我设想这一步骤应该包括导出新的演示文稿文件,或者使用“保存演示文稿”函数的“追加”选项向现有演示文稿添加幻灯片。这意味着两件事:首先,我需要一个对话框来切换“保存演示文稿”步骤的两种版本;其次,我需要一种方法来在它们之间切换。
每个步骤的逻辑都很简单。在工作流构建器中点击红色三角形,从高级菜单中添加 if 和 else 步骤,并在步骤操作时间线的“开始时”槽中为每个步骤添加消息。接下来,编辑条件脚本,使其与消息中设置的变量相匹配。我在下面提供了一个简短的视频,演示了每个步骤。
设置好 if 和 else 语句后,我们可以返回高级红色三角形子菜单,添加自定义步骤,并将它们移动到 if 和 else 步骤中。我在截图中更改了名称,以便更清楚地说明每个步骤的功能。

以下是追加步骤中所需自定义流程的屏幕截图:

以下是新演示文稿的步骤:


实现通用解决方案的关键在于自定义步骤的 JSL 代码,特别是 `CurrentReport()` 函数。感谢我早期学习 JSL(特别感谢 JMP 教育团队的 Di Michelson!),我知道 JMP 会自动对当前窗口或对象执行操作,除非我明确指示。我也知道,除非我的代码更改了这一点,否则最后创建的对象始终是当前对象。因此,如果我将正在构建的步骤(即 if/else 语句组)放在创建报表之后,那么 `CurrentReport` 就是我刚刚创建的报表。`CurrentReport()` 函数会返回对该报表的引用。然后,我只需使用保存报表引用的变量,即可将该引用传递给“保存演示文稿”步骤。
“选择文件()”和“选择目录()”函数会自动生成对话框并返回路径。将这两个功能结合在“保存演示文稿()”参数中,意味着我可以根据工作流中的步骤位置来确定要操作的报表。我还可以询问用户希望我更新哪个演示文稿,或者希望我在哪里创建一个演示文稿。
使用 PowerPoint 导出
为了跳过编码部分的朋友们,欢迎回来!让我们来看看本文下载部分的压缩文件里有什么。里面包含三个文件:

PowerPointExport 文件是一个独立的 Workflow Builder 步骤,可以追加或创建新的演示文稿文件。另外两个步骤则协同工作,用于一个特定场景,我稍后会详细介绍。首先,我们来看一个简单的例子。我制作了一个简短的视频来演示这些步骤:
现在,我们来看另外两个文件。有时,一个工作流会生成多个报告。这两个文件可以协同工作,无需逐个报告地执行提示。PowerPointCreate 步骤会提示用户创建演示文稿文件;它还会将该文件的位置提供给同一工作流中所有 PowerPointAppend 步骤的实例。这样,用户几乎无需直接输入任何信息,即可自动创建完整的幻灯片。以下视频演示了如何设置此工作流以及最终效果:
所以瞧!Workflow Builder 现在支持 PowerPoint,无需任何编码。只需简单的点击操作,就能让你专注于数据和洞察——这正是 JMP 的精髓所在。 
这是工作流构建器中“添加 If...”和“添加 Else”选项的绝佳示例!