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