创建自定义报告在此演示中,我们将使用预先编写的脚本来了解如何制作自定义报告。 所以在课程日志中,有一个名为 NOx 数据的脚本,用于氮氧化物数据。 我们有六种不同的准备工作。 然后我们记录了六种不同制剂的每一次重复的氮氧化物浓度的对数。 所以剧本是预先写好的。 在课程日志中,它被称为自定义 NOx 报告脚本。 我将一块一块地运行这个。 但我实际上想运行整个程序,这样我们就可以在查看脚本的每个部分之前看到最终结果。 所以我会运行整个事情。 该脚本确实创建了一个在 Graph Builder 中使用的汇总表。 我们会经历这些,所以我们不只是使用原始数据。 但自定义报告是一个选项卡式报告。 在第一个名为 %CV 的选项卡上,我们拥有实时 Graph Builder 平台。 所以这个红色三角形是我在 Graph Builder 中看到的典型红色三角形菜单。 然后,我们计算出每个级别的变异系数或 %CV。 在这里,我们的脚本创建了一个自定义红色小三角菜单,允许我为报告中的数字列指定所需的小数位数。 在第二个选项卡上,称为背景信息,我有每个级别的原始数据、用于计算变异系数的平均值和标准差,以及计算值。 如果我在那个红色三角形菜单中做出选择——实际上我会这样做。 在前面的选项卡 %CV 中,我将转到红色三角形并选择两位小数。 该脚本正在查看此报告中的所有数字列框。 那么让我们来看看它是如何构建的。 所以脚本做的第一件事就是将单向消息发送到原始数据表,其中包含氮氧化物的日志——Y 角色中氮氧化物浓度的日志和 X 角色中的准备。 而我需要计算变异系数的是均值和标准差报告表。 所以我要求打开。 我会提到,有很多方法可以从 JMP 中获取变异系数,而无需手动计算。 但是,我们再次说明了将值作为矩阵获取并使用这些矩阵计算的一些想法。 因此,我将逐行遍历这是我请求的带有表格的单向输出。 现在,我们看到了获取报表层的其他语法。 使用这种语法的一个好处是,如果我不需要该报告中的所有内容,我可以简单地请求,在这种情况下,我想要的表格的大纲项目——平均值和标准偏差。 这样当我访问显示框时,我可以稍微简化我的代码。 我会将它存储在变量 ob 中。 在这里,我们的约定只是使用大纲框的缩写。 你看到当我悬停时,它已经存储了一个值,因为我已经运行了整个脚本。 但我要重新分配它。 现在,行和正在检索级别的列,然后是均值和标准差的列。 对于级别,我根本不需要操作此列中的值。 我只想在我的 Estimates 表的自定义报告和背景信息中 - All Results 表中使用它。 所以我可以用一个我只需要一个副本的显示框做的一件整洁的事情就是发送消息“克隆框”。 即使在我关闭单向窗口之后,这只是将这个显示框的副本存储在 Levels 中。 所以我们用 String Col Box 为变量 ob 下标 现在,再次,我们可以使用列标题,当然,这样做并没有什么坏处。 但是因为我们只存储了这个显示框——或者对它的引用存储在 ob 中,所以很容易将简单的语法与索引值一起使用。 所以我将运行 line And so Levels 现在存储了一个显示框,特别是一个字符串列框,您可以在日志中看到这里。 我需要在计算中使用均值和标准差。 所以我不能简单地拥有这些副本。 我需要将值作为矩阵获取并将它们存储在变量 mMeans 或均值矩阵中。 您可以在日志中看到,或者如果您将鼠标悬停在 mMeans 上,这些值是什么。 对于标准偏差,同样的事情。 所以我运行它,然后再一次,你可以--我会让这个更小一些--你可以在日志中看到这些值。 Line 创建了一个名为 mCVs 的变量,而这只是该变异系数的计算。 这是变异性的相对度量,我们将标准差除以平均值,然后将其乘以所以我将运行直线所以现在我有了变异系数。 在这一点上,我不需要平台上的任何其他东西。 因此,我将向 ow 发送消息——这将被发送到分析层对象引用——以关闭该窗口。 我总是建议,当您的脚本可以关闭窗口时,无论是不再需要的分析或数据表,请继续让您的脚本关闭这些窗口。 因为如果我们不再需要它们打开,我们就不需要它们占用内存。 现在,对于下一步,我想在我的自定义报告中使用 Graph Builder。 并且 Graph Builder 当前不计算变异系数作为其汇总统计数据之一。 因此,解决方法是使用汇总表命令中内置的变异系数创建此汇总表,然后将其用作图形生成器的基础。 因此,在获得摘要表之前,我想关闭运行整个脚本时出现的表。 当我关闭它时,我收到警告还有另一个窗口打开,所以我要说,继续关闭所有窗口。 这立即从我的自定义报告中删除了 Graph Builder。 所以在这一点上,没有任何理由让这个示例自定义报告保持打开状态。 我们将在继续执行脚本时重新创建它。 所以我也会关闭那个。 所以 line 将“Summary”作为消息发送到原始数据表,我们在其中按准备分组。 统计数据将是变异系数。 所以我将运行 line 现在,我拥有构建自定义报告所需的一切。 所以我们使用新窗口。 我要将由此创建的显示框存储在变量 nw 中,以便与它进行通信。 我为我的新窗口自定义报告命名,然后我想为这些选项卡编写脚本。 所以我们指定标签框。 然后选项卡的数量仅由您提供给它的选项卡页框参数的数量决定。 所以我们会在这种情况下。 Tab Page Box 的第一个参数是标题。 所以第一个叫做 %CV。 然后,H 列表框给了我一个水平列表框,其中将包含 Graph Builder。 所以我实际上是在现场直播。 这就是我在这个窗口中获得这个实时平台的方法是让那个启动发生在显示框中。 这是我可能从交互式创建 Graph Builder 并将其发送到 Summarize 表中获取的语法。 然后,我在 H 列表框中排列的另一件事是轮廓框,称为 Estimates,它将包含存储在 Levels 中的字符串列框的表格框。 我的脚本创建了一个带有 %CV 值的数字列框。 第二个标签页框是背景信息,使用大纲框将其标记为所有结果。 在大纲框内,一个表格框将四个数字列框水平排列。 所以我要把这个做得更高,这样我就可以确保我抓住我想要的线,这些线是通过的,我会跑那部分。 所以这并不完整。 这是我的自定义报告的起点。 我想我现在可以让脚本窗口更窄一点,这样我们就可以并排看到两者。 因此,默认情况下,Graph Builder 没有一条线,这是我要添加的内容之一。 我想调整它的大小,因为我不需要图表这么大。 我想将该红色小三角菜单添加到 Estimates 大纲项中。 请注意,在脚本中,当我在自定义报告的第一个选项卡上创建估计的大纲框时,我将该结果存储在 ob 中。 这是我之前从单向平台获取均值和标准差时使用的变量名称。 所以在这里,我只是简单地使用了缩写并覆盖了那个值,因为我不需要以前的值。 因此,如果我现在向下滚动以查看脚本的其余部分,我将向存储在 ob 中的显示框(即 Estimates 大纲框)发送消息“设置菜单脚本”。 Set Menu Script 将菜单项列表作为其参数,该列表与选择该菜单项时执行的表达式交替出现。 所以表达式只是简单地循环通过报告中的数字列框并设置格式。 我们有一个可以显示的最大字符数的字段宽度——然后是小数位数。 因此,根据我们选择的红色三角形菜单选项中的哪一个,决定了将执行这些表达式中的哪一个。 因此,我将逐行遍历 在自定义报告中,您现在看到我们有红色小三角菜单。 Line 将从 Graph Builder 中更改框架框的大小。 这就是,如果我去-- 我要右击Disclosure 按钮,然后在Edit 下,选择Show Tree Structure-- 我可以向下滚动。 当您查看整个报告时,这里有很多我们在编写自己的脚本时不使用的构造函数。 但我向下滚动。 好的,有 PictureBox,向下滚动一些,还有那个标题,向下滚动一些。 您可以悬停以查看轴框。 最后,我看到了 FrameBox,因此我可以看到我想要调整大小的东西是 当您熟悉平台时,您可能不需要查看树结构。 因此,我在新窗口下标并发送以像素为单位的消息“Frame Size”,然后我将继续运行 line,以便调整 Graph Builder 框架框的大小。 现在再次,您可以使用脚本索引查看不同的显示框可以接收哪些类型的消息。 因此,如果我进入 Help 菜单并选择 Scripting Index,我可以从 All Categories 更改为 Display Boxes,然后向下滚动以找到 FrameBox 并查看可以发送给它的消息。 我要关闭脚本索引。 我们想做的另一件事是,在 AxisBox 上,我们要添加参考线。 同样,如果我不熟悉 Graph Builder 的显示树结构,我会使用 - 如果我不熟悉 Graph Builder 的显示树结构,我会查看那个 Tree Structure 窗口。在某些平台上是垂直轴。 在某些平台上,它是水平的。 在这种情况下,它是水平轴。 我发送消息以添加参考线。 这里的论点是您希望参考线处于什么值? 我想要它在什么风格的线? 我要固体。 颜色? 我会变黑的。 第四个参数是轴上的标签。 所以只要有一个空字符串,我们就说我们不想要一个标签。 事实上,只要我有这个逗号告诉 JMP 这是第五个参数,而不是第四个参数,我就可以删除它。 如果我没有这个逗号,那么 JMP 会用 a 标记轴。但是因为我把逗号放在那里,所以 JMP 知道这是线宽,而不是标签。 所以我要跑线 这画出了我的参考线。 然后,该脚本的最后一部分是将“Save Journal”发送到存储在 nw 中的显示框,并将其命名为 Custom CV Report.jrn。 现在,您的脚本可能会在此处结束,生成带有实时 Graph Builder 窗口和供用户交互的红色小三角菜单的报告。 事实上,这次我会继续选择小数点后一位。 在某些情况下,您可能还希望将该报告保存为日记帐。 当你这样做时,你会失去那个红色三角形菜单。 您的 Graph Builder 将不再是实时报告。 但是这里的最后一个选项显示了如何将自定义报告保存为带有“保存日志”消息的日志。 所以在这个脚本中,我们启动了分析层。 我们检索了报表层对象,然后获取了我们需要的报表层的元素作为副本或矩阵进行操作。 我们为我们想要使用的平台创建了一个单独的数据表,然后使用新窗口创建了自定义报告,在这种情况下,除了字符串列之外,还有选项卡、水平列表框和轮廓框作为我们的显示框存储在 Levels 和各种数字列框中的框。 然后,我们看到了如何向该自定义报告的组件发送消息。