如何使用树结构查找平台中对象的引用?您好,我一直在尝试在脚本中使用对分析平台(图形、表格等)中的对象的引用,但在我看来,从我看到的示例来看,这不是很直观。
我有多个用例,但我希望找到有关如何在分析平台中查找对任何对象的引用的通用描述或手册。 我猜它存在于该网站的某个地方,但我无法找到它。
自动化和脚本编写大规模定制回复:如何使用树结构查找平台中对象的引用?还有一个实用函数可以帮助确定到达显示框的最佳路径。

回复:如何使用树结构查找平台中对象的引用?
因为我无法访问 JMP17。
真的吗?
我本来就猜到了你在新版本发布的第一天获得您特别的、个人的、免费的 JMP Pro 签名版
...尽可能支持您支持他人:)
回复:如何使用树结构查找平台中对象的引用?另一个技巧:
为当前报告生成 XML 代码(不仅仅是对象的报告;考虑数据过滤器等)
我将下面的代码链接到键盘快捷键 - 现在我可以获取我想要的任何报告的 XML 代码。
只需选择报告并按(例如) CTRL - Alt + X
Local({myTitle= Current Report()<< get Window Title() || " - (xml)"},
New Window (myTitle ,<<TYPE></TYPE>回复:如何使用树结构查找平台中对象的引用?正如 Jarmo 在他的第一个回复中指出的那样,在 JMP17 中,现在获取对象的正确 XPath 变得更容易了:
右键单击该对象,单击显示属性(...根据需要调整选择)并单击
在右侧的 Box Path 菜单中:

回复:如何使用树结构查找平台中对象的引用?您可以尝试用 New Window 包装 Oneway
Names Default To Here(1);
// group by sex
dt = Open("$SAMPLE_DATA\Big Class.jmp");
nw = New Window("", ow = dt << Oneway(Y(:height), X(:age), By(:sex), Means and Std Dev(1), Mean Error Bars(1), Std Dev Lines(1), Mean of Means(1)));
// get XML fails for this platform
testXML = nw << Get XML;
Write(testXML);
ncbList = nw << XPath("\[//OutlineBox[text()="Means and Std Deviations"]//NumberColBox]\");
回复:如何使用树结构查找平台中对象的引用?当您使用 By() 时,您会收到消息返回平台列表,而不是单个平台。
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
ow = dt << Oneway(
Y( :height ),
X( :age ),
Means and Std Dev( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 ),
Mean of Means( 1 )
);
Show( ow );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
ow_by = dt << Oneway(
Y( :height ),
X( :age ),
By( :sex ),
Means and Std Dev( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 ),
Mean of Means( 1 )
);
Show( ow_by );
日志:
/*:
ow = Oneway[];
ow_by = {Oneway[], Oneway[]};回复:如何使用树结构查找平台中对象的引用?查看 XPath 示例,我意识到当我在平台中使用“group by”变量时会出现许多问题。
以我在 XPath 链接中找到的示例为例:
这个脚本运行良好
// not grouped by sex
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
ow = dt << Oneway(
Y( :height ),
X( :age ),
Means and Std Dev( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 ),
Mean of Means( 1 )
);
testXML = Report (ow) << Get XML;
Write( testXML );
/* Return a list of NumberColBox references */
ncbList = Report( ow )["Means and Std Deviations"] << XPath( "//NumberColBox" );
然而,如果我按性别分组,get XML 就会抛出错误。 这要怎么处理呢?
// group by sex
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
ow = dt << Oneway(
Y( :height ),
X( :age ),
By( :sex ),
Means and Std Dev( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 ),
Mean of Means( 1 )
);
// get XML fails for this platform
testXML = Report (ow) << Get XML;
Write( testXML );
/* Return a list of NumberColBox references */
ncbList = Report( ow )[???]["Means and Std Deviations"] << XPath( "//NumberColBox" );
回复:如何使用树结构查找平台中对象的引用?谢谢,这几乎就是我一直在寻找的东西。 我记得“窃取此代码”演示文稿,但我也找不到它了。
我会接受这个解决方案,尽管我仍然认为这个主题值得对 JMP 学习和/或 JMP 中的脚本索引进行更简洁的解释,以便用户知道从哪里开始。
回复:如何使用树结构查找平台中对象的引用?在我看来,这个问题没有通用的解决方案,因为 JMP 中有很多不同的平台,其中一些平台的行为确实与其他平台不同。 我的一般方法是查看 XML << 获取 XML然后使用 XPath(XPath 也很好,因为它在 JSL 之外工作)与一些组合<< 兄弟姐妹,<< 孩子,<< 父母...... 如果这是一个非常简单的情况那么我可能会使用报告下标脚本编写指南 > 显示树 > 导航 JMP 报表 > 显示框对象引用。
以下是一些链接: