你好 - 我有一个 JSL 脚本,它从 for 循环内将多个大纲框发送到期刊(即循环的每个周期都会创建一个新的大纲框,一旦创建它,我就会将其副本发送到期刊) )。 有没有一种方法可以通过使用广播组合键(即按住 键同时打开或关闭其中一个)来使日志中生成的一组大纲框一致打开或关闭?
我已经编写了许多应用程序,我希望能够在其中执行此操作。 在其中一些中,我似乎无意中合并了此功能,而在其他中我没有 - 但我无法弄清楚我编写脚本的方式有何不同。 在所有情况下,大纲框都包含格式相同的数据摘要,其中唯一的区别在于所汇总的实际数字。
非常感谢您的任何建议。
非常感谢这两个建议 - 我将使用建议的解决方法之一,这两种方法都可以完成这项工作。与往常一样,知道我没有错过任何一个小技巧是很有用的:)
遗憾的是,您无法更改 helpKey 值,因为 JMP 依赖它们。
但是,您可以创建一个按钮来展开/折叠所有 OutlineBox,而不是使用控制键,而是依赖 OutlineBox 标题和帮助键。 详细信息请参阅下面我的示例
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Owl Diet.jmp" );
yList = dt << get column names( string );
Remove From( yList, N Items( yList ) );
nw = New Window( "Example",
Button Box( "Collapse All",
<<SET function=""></SET>
ExpandedExpanded扩展
CollapsedCollapsed倒塌
这一定是由于所有图形生成器输出共享公共 HelpKey。 我发现的 HelpKeys 的最佳参考是这里, 或许@Justin_Chilton可以阐明是否可以在向日记本发送内容时设置帮助键,或者是否可以针对日记本中的项目进行修改? 如果不可能,解决方法是在每个输出之间插入一个文本项:

如果将图形生成器输出移动到大纲框下,您可以使用“显示树结构”查看帮助键:

你好 - 谢谢你,我已经验证了,如果大纲框都具有相同的标题,我可以使用广播的打开/关闭命令同时打开和关闭它们。 不幸的是,我确实需要它们有不同的标题,因为一旦它们全部关闭,我就无法轻易说出我特别想打开哪一个。
我找到了一个按我想要的方式工作的脚本示例 - 但它与我从 for 循环内将图形生成器输出的多个副本发送到日志的情况有关。 每次运行循环时,我都会更改图形生成器正在绘制的变量,然后在运行下一个循环之前将副本发送到日志。 脚本的相关部分的工作原理如下:
dt = Open( "$SAMPLE_DATA/Owl Diet.JMP" );
yList = dt << get column names(string);
remove from(yList, nItems(yList));
show(yList);
// Create the chart as I want it to look for the first item on the list, and send a copy of it to the journal;
gb = Graph Builder(
Show Control Panel( 0 ),
Size( 600, 250 ),
Show Legend( 0 ),
Variables( X( :species ), Y( as column(column(dt, yList[1])) ) ),
Elements( Box Plot( X, Y, Legend( 6 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
OutlineBox,
{Set Title( "Analysis of " || title case(yList[1]) )}
),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "" )} ),
Dispatch( {}, "400", LegendBox, {Set Title( "" )} )
)
);
report(gb) << journal();
// Then run all the others in sequence by each time replacing the current Y variable with the next one, and adding them to the journal as we go;
for(i=2, i<=nItems(yList), i++,
gbb = report(gb);
gbb << Dispatch( {}, "Graph Builder", OutlineBox, {Set Title( "Analysis of " || title case(yList[i]) )} );
gbb[GraphBuilderBox(1)] << remove variable(2);
gbb[GraphBuilderBox(1)] << add variable({as column(column(dt, yList[i])), role("Y")});
gbb << journal()
);
// Finally, close the original chart window;
gb << close window;
广播命令在这种情况下起作用,大概是因为所有图表实际上都被称为“图形生成器”,尽管它们都被赋予了不同的标签 - 当我向期刊发送大纲框时,我想要重现这种效果不是使用图形生成器创建。
欢迎任何建议,尽管我可能会问不可能的事情。
非常感谢。
根据我的经验,如果您使大纲框标题匹配,那么它们都会用控制键打开或全部关闭(在 Windows 上)。右键单击其中一个并将鼠标悬停在“像这样关闭所有内容”上会弹出一个工具提示,指示相同的帮助键具有相同的效果,但我没有找到在期刊或 JSL 中使用帮助键的参考。
