有没有一种简单的方法可以打开以脚本名称作为标题的脚本生成的图形?您好,我经常发现自己将一些使用相同应用程序(例如图形生成器)的脚本保存到数据表中。 当您运行这些脚本时,图形的窗口标题将自动变为“数据表 - 图形生成器”。
当运行多个脚本时,这会造成打开标题为“Graph Builder 2”、“Graph Builder 3”的窗口的情况,并且我不知道哪个脚本生成了哪个窗口。
我一直在我的脚本周围使用代码,如下例所示,但是当我进行一些更改时,我无法简单地执行“将脚本保存到数据表”选项而不覆盖此命名约定。
w = Graph Builder(
// graph script
);
w << set window title( "script name" )
示例:脚本打开一个带有通用“图形生成器”标题的窗口。

大规模定制回复:是否有一种简单的方法可以打开以脚本名称作为标题的脚本生成的图形?我希望我明白你在问什么。 该脚本说明了一种可能有效的方法。 第一部分只是让脚本的其余部分工作的一些开放(数据表和图形生成器)的方法。 这是您可以与自己的开放图形生成器对象一起使用的部分。 您可以将此脚本保存为加载项,这样当您想要使用它时,只需选择一个菜单命令即可。
Names Default to Here( 1 );
// example of Graph Builder
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) )
);
// now the script to save table script with desired name
// ask user for name of script
dialog = New Window( "Name of Script", << Modal,
Panel Box( "Script Name",
Line Up Box( N Col( 2 ),
Text Box( "Name:" ),
teb = Text Edit Box( "Graph Builder Script" )
),
H List Box(
Button Box( "OK",
name = teb << Get Text;
),
Button Box( "Cancel" )
)
)
);
If( dialog["Button"] == -1, Throw( "User cancelled" ) );
// save script for current instance of Graph Builder
window = Get Window List();
wName = window << Get Window Title;
nWindows = N Items( window );
For( i = nWindows, i > 0, i--,
If( Contains( wName[i], "Graph Builder" ),
Break();
);
);
obj = window[i]["Graph Builder"] << Get Scriptable Object;
obj << Save Script to Data Table( name, << Prompt( 0 ), << Replace( 1 ) );
// update table script
script = dt << Get Property( name );
Eval(
Substitute(
Expr(
dt << Set Property( nnn,
w = sss;
w << Set Window Title( nnn )
)
),
Expr( sss ), Name Expr( script ),
Expr( nnn ), name
)
);回复:是否有一种简单的方法可以打开以脚本名称作为标题的脚本生成的图形?根据此线程中的反馈,我得出的结论是,在 JMP 中没有简单的方法可以做到这一点。
回复:是否有一种简单的方法可以打开以脚本名称作为标题的脚本生成的图形?我想我正在努力解决的问题确实可以通过使用仪表板来避免。 我将尝试调整我在 JMP 中的工作方式。
回复:是否有一种简单的方法可以打开以脚本名称作为标题的脚本生成的图形?如果您不更改窗口标题,而只是更改该窗口中大纲框的名称,该怎么办?您可以通过双击名称来完成此操作,该名称将保留在保存的脚本中。

侧边栏:这可能会远离在不复制/粘贴的情况下更改图表的情况,但是如果您经常查看一堆图表以查找数据集,您可能会考虑构建一个包含所有图表的仪表板或窗口,其中包含一些图表给出每个上下文的标题和文本。
回复:是否有一种简单的方法可以打开以脚本名称作为标题的脚本生成的图形?这是你想要的?
w << get window title()
回复:是否有一种简单的方法可以打开以脚本名称作为标题的脚本生成的图形?嗨拜伦,这不是我要问的。 我正在寻找打开的窗口名称以包含脚本名称。 就像我说的,我可以通过在脚本周围添加以下代码来完成一次。 但我的问题是,我无法更改我的图表(例如更改轴和视觉效果),而不必将新的图表脚本复制/粘贴到我的数据表脚本中。
w = Graph Builder(
// graph script
);
w << set window title( "script name" )

我刚刚尝试了创建第二个脚本的方法,该脚本运行图形生成器脚本并更改窗口名称。 这基本上就是我想要的,因为我可以对图表进行更改并再次“保存到数据表”,覆盖我的原始图表。 我不再需要任何复制/粘贴。 请参阅附件中的“big class 2.jmp”,我将只运行“run myGraph1”脚本。 如果我不需要第二个脚本来启动我的图形脚本,那当然会很好。
回复:是否有一种简单的方法可以打开以脚本名称作为标题的脚本生成的图形?如果您的问题是“如何将脚本保存到指定名称的数据表中?” 那么我想我可以给你一个答案。
dt=current data table();
obj=dt<<GRAPH builder=""> , < <<PROMPT>, < <<REPLACE> );
obj << Save Script to Data Table("New GB");</REPLACE></PROMPT></GRAPH>
……但我不确定这是否是您要问的?
回复:是否有一种简单的方法可以打开以脚本名称作为标题的脚本生成的图形?如果我想对单向图运行类似的东西,我该如何修改它?用“Oneway”替换“Graph Builder”似乎不起作用。
回复:是否有一种简单的方法可以打开以脚本名称作为标题的脚本生成的图形?在同事的帮助下(谢谢安德鲁!),我们想出了这个。
clear Globals();
Delete Symbols();
// save script for current instance of Fit Group
window = Get Window List();
wName = window << Get Window Title;
nWindows = N Items( window );
For( i = nWindows, i > 0, i--,
If( Contains( wName[i], "Fit Y by X" ),
obj = window[i]["Fit Group?"] << Get Scriptable Object;
Show(obj);
obj << Save Script for All Objects;
Break();
);
);
可以通过替换引号中的项目来适应抓取任何类型图表的脚本。能够使用 ?作为矩阵中的通配符是无价的。