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

如果我的数据表下有图形

如何选择该图?
原因是我想获取它们的X和Y列名称
例如在上面图片中标记的第一个图形中,我要进行测试和test2

该图已经在JMP中打开,我无法控制它们(在编辑创建它们的脚本方面)
脚本编写回复: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);
);
使用“帮助>脚本编制索引”查看各种命令的工作方式。
有了子报告列表后,您可以检查每个子报告以提取所需的任何内容。 但是请记住,报告树可能很复杂,因此可能需要做一些工作才能使其足够健壮。
回复:JSL-获取开放图X和Y值谢谢您的帮助
我现在想获取XY值(红色标记),但是我不确定如何访问该值
我所能做的就是得到标题(用黄色标记的内容)。
我发现用“获取XML”代替“获取文本”确实也给了我名字,但是那里有很多数据,我希望有一种更简单的方法

回复:JSL-获取开放图X和Y值这是一种使用平台编写的JSL(在本例中为Graph Builder)来查找元素的方法,我将其包括在内以说明以下内容:
- expr()
- 名称expr()
- arg()
- 头 ( )
- <<获取可脚本化的对象(这将返回您从中获取脚本的Graph Builder对象)
如果您以前没有使用过它们,则需要在脚本指南中对其进行阅读。 它们功能强大,但需要一些练习。
由于我没有放入任何条件语句(您想这样做...检查窗口名称等),因此请执行以下操作以确保脚本按以下说明工作。
1)关闭当前报告和图表。
2)创建一个Graph Builder图形。
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 );