如何获取本地数据筛选器中选定的项目(JMP 17)在分析过程中,有时需要根据我在图表构建器本地过滤器中筛选的内容执行相应的自动化分析。但是,我不知道如何获取此过滤器中选定的内容。请问有什么好的方法吗?谢谢。
自动化和脚本编写回复:如何获取本地数据筛选器中选定的项目通常,我会使用 << Get Where 子句或 << Get Filtered Rows,因为所做的选择可能相当复杂。
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(525, 454),
Show Control Panel(0),
Variables(X(:weight), Y(:height), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Smoother(X, Y, Legend(10)))
);
ldf = gb << Local Data Filter(
Add Filter(columns(:age), Where(:age == 12), Display(:age, N Items(6)))
);
Show(ldf << Get Where Clause);
Show(ldf << Get Filtered Rows);
您也可以访问并使用该显示框,例如在我的示例中,它是列表框(列表显示),但通常我会避免使用此选项。
nw = (gb << top parent);
nw[OutlineBox("Local Data Filter"), ListBoxBox(1)] << get selected;
回复:如何获取本地数据筛选器中选定的项目根据你对“相应的自动化分析”的定义,另一种方法可能是:
本地数据筛选器 -> 红色三角形 -> 显示子集
这将打开数据的链接子集。您可以从那里运行分析。或者,如果您从那里选择全部 (Ctrl+A),也会选中父数据表中的这些行。
顺便一提,您也可以从同一个下拉菜单中选择“保存 WHERE 子句”。如果您以后想重复使用同一个筛选条件,这将非常有用。
回复:如何获取本地数据筛选器中选定的项目非常感谢!这正是我想要的!
我有一个新问题:如何使用 JSL 检测本地数据过滤器中选择的变化?
(因为我创建了一个自定义界面,其中上半部分是图表构建器,下半部分是数据表,我希望下面的表单在筛选条件更改时同步更新。所以,我需要知道如何判断筛选条件何时发生了变化。)
谢谢。
回复:如何获取本地数据筛选器中选定的项目请查看脚本索引中的数据筛选器,以便大致了解您有哪些选项。

在这种情况下,您很可能需要使用 << 创建筛选器更改处理程序。
您也可以考虑使用(全局)数据筛选器而不是本地数据筛选器,它将直接在数据表中更改行状态。