JSL - 获取开放图 X 和 Y 值你好
我有一个脚本,可以让我在组合框中选择任何打开的数据表

如果我有一个数据表,下面有图表
我怎样才能选择这个图表?
原因是我想获取它们的 X 和 Y 列名称
例如,在上图中标记的第一张图中,我想获得 test 和 test2

该图表已在 JMP 中打开,我无法控制它们(就编辑创建它们的脚本而言)
数据存取大规模定制回复:JSL - 获取开放图 X 和 Y 值这是一种使用平台(在本例中为 Graph Builder)编写的 JSL 来查找元素的方法。我将其包含在内是为了说明以下内容:
- 表达式 ( )
- 名称表达式 ( )
- 参数 ( )
- 头 ( )
- << 获取可编写脚本的对象(这将返回您从中获取脚本的图形生成器对象)
如果您以前没有使用过它们,您需要在脚本指南中阅读它们。 它们很强大,但需要一些练习。
由于我没有添加任何条件(您想要这样做...检查窗口名称等),因此请执行以下操作以确保脚本按如下所示工作。
1) 关闭当前报告和图表。
2) 创建图形生成器图形。
3) 在脚本窗口中运行以下脚本。 (您也可以将其包装在一个外部循环中,以循环浏览多个图形窗口。 再次强调,这只是一个框架脚本,旨在说明总体想法。)
干杯,
布雷迪
</CODE></P>
<PRE><CODE class=" language-jsl">Names Default To Here( 1 );
winList = Get Window List( Type( "reports" ) );
obj = winlist[1][Outline Box( 1 )] << Get Scriptable Object;
script = obj << get script;
i = 1;
//move through the script's arguments until you get to the Variables ( ) argument.
While( Head( exp = Arg( Name Expr( script ), i ) ) != Expr( Variables ), i++ );
xList = ylist = {};
nexp = name expr ( exp ); //optional; this allows us to type nexp instead of name expr ( exp ) in the code below.
//cycle through the arguments in the Variables ( ) section. If X ( ) or Y ( ) is
//encountered, insert into the appropriate list.
For( i = 1, i <= N Arg( nexp ), i++,
If( Head( var = Arg( nexp, i ) ) == Expr( X ), Insert Into( xList, Arg( Name Expr( var ), 1 ) ));
If( Head( var = Arg( nexp, i ) ) == Expr( Y ), Insert Into( yList, Arg( Name Expr( var ), 1 ) ));
);
Show( xList, yList );
回复:JSL - 获取开放图 X 和 Y 值谢谢您的帮助
我现在想要获取 XY 值(以红色标记的内容),但我不确定如何访问该值
我所能做的就是获得标题(以黄色标记的内容)。
我发现使用“get XML”而不是“get Text”确实也给了我名称,但是那里有很多数据,我希望有一种更简单的方法

回复:JSL - 获取开放图 X 和 Y 值鉴于在运行要编写的代码之前您无法控制 JMP 会话,您可以尝试这种方法:
NamesDefaultToHere(1);
tableOfInterest = "Big Class";
allWindows = GetWindowList();
tableWindows = {};
for (w = 1, w <= NItems(allWindows), w++,
winTitle = allWindows[w] << GetWindowTitle;
if (StartsWith(winTitle,tableOfInterest) & (allWindows[w] << WindowClassName) == "Report", InsertInto(tableWindows, allWindows[w]));
);
for (w = 1, w <= NItems(tableWindows), w++,
Print(tableWindows[w] << GetWindowTitle);
);
使用“帮助 > 脚本索引”查看各种命令的工作原理。
获得子报告列表后,您可以检查每个报告以提取您想要的任何内容。 但请记住,报告树可能很复杂,因此可能需要一些工作才能使其足够健壮。