查找所有显示树元素<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
我想使用 JSL 获取显示树中所有对象的列表以用于脚本编写。具体来说,我想获取窗口内所有框架框的列表,然后向每个框架添加一个图形脚本。或者更好的是,我想向用户返回可用 FrameBox 的列表,然后让用户选择要添加的图形脚本。
如何获取窗口中所有 FrameBox 的列表?我想获得一个适合脚本编写形式的列表,而不仅仅是查看显示树。这可能吗?
谢谢!
回复:查找所有显示树元素您使用什么版本的 JMP?
您是在 Windows 机器上还是在 Mac 上运行?
您能否清除日志,重新运行脚本,然后在下一个响应中包含整个日志输出?
回复:查找所有显示树元素我正在尝试运行此脚本,但收到错误消息:
Send 在访问或评估 'Send' 时需要脚本化对象{1},节点 << /*###*/className/*###*/
知道为什么或者我应该做什么吗?
谢谢,
托瓦
回复:查找所有显示树元素我正在尝试运行此脚本,但收到错误消息:
Send 在访问或评估 'Send' 时需要脚本化对象{1},节点 << /*###*/className/*###*/
知道为什么或者我应该做什么吗?
谢谢
回复:查找所有显示树元素嗨女士,
问题似乎是“parent << getTitle”不会为 JMP10 中的图形生成器生成结果。
如果没有这个,我的团队将在 JMP10 中完成任务。感谢您的帮助!
回复:查找所有显示树元素由于我没有 JMP 10 许可证,我可能无法提供帮助。 出了什么问题? 日志中有任何消息吗?
对于 JMP 的每个新版本,Graph Builder 都发生了很大的变化。 我认为 Graph Builder 的脚本支持也得到了改进。 也许 v.10 Graph Builder 报告中有一个特殊的显示框类型,它(尚)不是“可编写脚本的”,导致 while 循环在搜索完成之前停止。
您也可以尝试使用插入()代替插入项目()。
回复:查找所有显示树元素你好多发性硬化症,
再次感谢您的脚本;它非常适合 JMP12。我现在正在尝试使脚本兼容 JMP10,但在调试 GraphBuilder 脚本时遇到问题。你知道如何让你的脚本发挥作用吗JMP10 中的 GraphBuilder?
dt =打开( “$SAMPLE_DATA/Big Class.jmp” ) ;
// 脚本适用于 graph1。
图1 = dt <<适合模型(
是( :高度) ,
效果( :性别) ,
性格( 《标准最小二乘法》 ) ,
强调( 《杠杆效应》 ) ,
跑步(
:高度<< {不合适( 0 ) ,按预测绘制实际情况( 1 ) ,
Box Cox Y 变换( 1 ) ,按预测绘制残差图( 1 ) ,
情节效应杠杆( 1 )}
)
) ;
// graph2 的脚本将会崩溃。
/*
graph2 = dt << 图形生成器(
显示控制面板( 0 ),
变量( X( :身高 ), Y( :体重 ), Wrap( :年龄 ) ),
元素(点(X,Y,图例(1)))
);
*/
等待( 1 ) ;
赢=当前窗口() ;
// 将显示的 FrameBox 编号与标题链接起来的关联数组
fb标题= [ => ] ;
我= 1 ;
尽管(可编写脚本(尝试(家长=赢[框架盒(我)] <<家长) ) ,
尽管(父类型=查尔(家长<<班级名称) != “大纲框” ,
家长=家长<<家长
) ;
fb标题<<插入项目(我,家长<<获取标题) ;
我++;
) ;
展示( fb标题) ;
// 选择窗口。
赢<<将窗口置于前面;
为了(我= 1 ,我<= N 项( fb标题) ,我++,
赢[框架盒(我)] <<选择;
新窗户( “框架框标题” , <<莫代尔,文本框(评估( fb标题[我] ) ) ) ;
赢[框架盒(我)] <<取消选择;
) ;
回复:查找所有显示树元素谢谢女士。
如果您在该后续问题的单独讨论中发表回复,查找隐藏或显示的框架框,我会将其标记为正确。
非常令人印象深刻。
回复:查找所有显示树元素如果你不需要 Ian 内置的所有其他东西,这对我有用。不知道为什么它返回列表列表,但我只选择第一个。
dt =打开( “$SAMPLE_DATA/大类.jmp” ) ;
BIV = (dt <<双变量(Y( :高度, :重量) , X( :年龄))) ;
框架列表= BIV <<路径( “//框架框” ) ;
等待( 2 ) ;
框架列表[ 1 ][ 1 ] <<选择;
等待( 2 ) ;
框架列表[ 2 ][ 1 ] <<选择;
回复:查找所有显示树元素有趣的讨论。 下面是一个示例,大量借鉴了上面的示例,其中我使用关联数组来链接目前数量显示带有标题的框架框。
dt =打开( “$SAMPLE_DATA/大类.jmp” ) ;
对象= dt <<适合模型(
是( :高度) ,
效果( :性别) ,
性格( 《标准最小二乘法》 ) ,
强调( 《杠杆效应》 ) ,
跑步(
:高度<< {不合适( 0 ) ,按预测绘制实际情况( 1 ) , Box Cox Y 变换( 1 ) ,按预测绘制残差图( 1 ) ,
情节效应杠杆( 1 )}
)
) ;
报告=报告(对象) ;
// 将显示的框架框编号与标题链接起来的关联数组
fb标题= [ => ] ;
我= 1 ;
尽管(可编写脚本(尝试(家长=报告[框架盒(我)] <<家长)) ,
尽管(父类型=查尔(家长<<班级名称) != “大纲框” ,家长=家长<<家长) ;
fb标题<<插入项目(我,家长<<获取标题) ;
我++;
) ;
展示( fb标题) ;
// 选择窗口。
对象<<将窗口置于前面;
为了(我= 1 ,我<= N 项( fb标题) ,我++,
报告[框架盒(我)] <<选择;
赢=新窗户( “框架框标题” , <<莫代尔,文本框(评估( fb标题[我]))) ;
报告[框架盒(我)] <<取消选择;
) ;
回复:查找所有显示树元素好的。谢谢伊恩。返回的隐藏 FrameBox 的一个不幸的副作用是 FrameBox 标题可能与 FrameBox 编号不匹配,如下所示。我也许可以使用 Try() 函数的其他一些变体来使我的脚本正常工作。
名称默认为此处( 1 ) ;
清除日志() ;
// 该函数递归遍历显示树,生成
// 构成的显示框名称的预排序列表
// 那个树。 它还查找每个 FrameBox(无论是否显示),
// 并获取父 OutlineBox 的名称
预购=功能( {节点} ,
当地的( { chnode } ,
// 检查当前节点
节点类型=查尔(节点<<班级名称) ;
打印( “节点:” ||节点类型) ;
如果(节点类型== “框架盒” ,
// 查找此FrameBox的父轮廓节点的标题
家长=节点<<家长;
父类型=查尔(家长<<班级名称) ;
尽管(父类型!= “大纲框” ,
家长=家长<<家长;
父类型=查尔(家长<<班级名称) ;
) ;
插入( fb标题,家长<<获取标题) ;
) ;
// 进行递归
chnode =节点<<孩子;
尽管(可编写脚本( chnode ) ,
递归( chnode ) ;
chnode = chnode <<同胞;
) ;
)
) ;
// 尝试“预购”。 。 。
dt =打开( “$SAMPLE_DATA/Big Class.jmp” ) ;
对象= dt <<适合模型(
是( :高度) ,
效果( :性别) ,
性格( 《标准最小二乘法》 ) ,
强调( 《杠杆效应》 ) ,
跑步(
:高度<< {不合适( 0 ) ,按预测绘制实际情况( 1 ) ,绘图回归( 0 ) ,按预测绘制残差图( 1 ) ,情节效应杠杆( 1 )
}
)
) ;
报告=报告(对象) ;
fb标题= {} ;
预购(报告) ;
打印( “\!n” , fb标题) ;
// 选择窗口。
等待( 1 ) ;
对象<<将窗口置于前面;
为了(我= 1 ,我<= N 项( fb标题) ,我++,
尝试(
报告[框架盒(我)] <<选择;
赢=新窗户( “框架框标题” , <<莫代尔,文本框(评估( fb标题[我] ) ) ) ;
报告[框架盒(我)] <<取消选择;
)
) ;
回复:查找所有显示树元素并没有真正直接回答您的问题,但您可以通过使用“Try()”函数使您提到的失败变得良性。
回复:查找所有显示树元素你好伊恩@JMP ,
再次感谢您的预购功能。有没有办法让函数只返回实际显示的FrameBox?或者 JMP 有没有办法判断哪些 FrameBox 显示或不显示?
我发现当我的脚本尝试向未显示的 FrameBox 发送命令时,会导致错误。
回复:查找所有显示树元素谢谢伊恩。
回复:查找所有显示树元素这是完全有可能的。 下面的代码使用前序遍历来遍历显示树(我相信最初是由 JMP 部门的 Joseph Morgan 编写的)。 您应该能够通过一些调整来获得您需要的内容(取决于代码的其余部分)。
名称默认到这里( 1 ) ;
清除日志() ;
// 该函数递归遍历显示树,生成
// 构成的显示框名称的预排序列表
// 那个树。 它还查找每个 FrameBox(无论是否显示),
// 并获取父 OutlineBox 的名称
预购=功能({节点} ,
当地的({ chnode } ,
// 检查当前节点
节点类型=查尔(节点<<班级名称) ;
打印( “节点:” ||节点类型) ;
如果(节点类型== “框架盒” ,
// 查找此FrameBox的父轮廓节点的标题
家长=节点<<家长;
父类型=查尔(家长<<班级名称) ;
尽管(父类型!= “大纲框” ,
家长=家长<<家长;
父类型=查尔(家长<<班级名称) ;
) ;
插入( fb标题,家长<<获取标题)
) ;
// 进行递归
chnode =节点<<孩子;
尽管(可编写脚本( chnode ) ,
递归( chnode ) ;
chnode = chnode <<同胞;
) ;
) ;
) ;
// 尝试“预购”。 。 。
dt =打开( “$SAMPLE_DATA/Big Class.jmp” ) ;
对象= dt <<适合模型(
是( :高度) ,
效果( :性别) ,
性格( 《标准最小二乘法》 ) ,
强调( 《杠杆效应》 ) ,
跑步(
:高度<< {不合适( 0 ) ,按预测绘制实际情况( 1 ) ,
绘图回归( 0 ) ,按预测绘制残差图( 1 ) ,
情节效应杠杆( 1 )}
)
) ;
报告=报告(对象) ;
fb标题= {} ;
预购(报告) ;
打印( “\!n” , fb标题) ;