如何将Data Filter()选中的数据放到新的数据表中(使用JSL)?我知道如何以交互方式执行此操作,但如何通过 JSL 将数据过滤器 () 从父数据表中选择的数据获取到新的(子集)数据表中? 当数据过滤器中的选择发生变化时,我还需要新创建新的子集数据表(关闭旧子集)或刷新旧数据表(如果可能的话)。
自动化和脚本Re: 如何将Data Filter()选中的数据放入新的数据表中(使用JSL)?你有什么类型的数据过滤器,在哪里? 用户如何执行选择(应该只使用在数据过滤器上完成的选择)? 结果表的用途是什么?
检查数据过滤器的脚本索引

获取过滤行、获取 Where 子句、显示子集作为一些选项
Re: 如何将Data Filter()选中的数据放入新的数据表中(使用JSL)?@jthi它是数据过滤器()
这是我到目前为止所得到的。 它部分起作用。 如果选择发生变化,我需要更新表格或生成新表格。 如何在 JSL 中执行此操作(在 Close () 上)?
Names Default To Here (1);
dt = Current Data Table();
nw = New Window("Select Parameters", << modal, << return result,
obj = dt << Data Filter(
//Location( {3000, -600} ),
Width( 315 ),
Conditional,
Add Filter(
columns( :Col1, :Col2, :Col3, :Col4),
Display( :Col2, "Check Box Display" ),
Display( :Col3, "Check Box Display" ),
Display( :Col4, "Check Box Display" ),
Display(
:Parameter,
N Items( 20 ),
"Check Box Display",
Find( Set Text( "" ) )
)
)
);
);
//obj << Get Filtered Rows;
dtNew = dt << subset( selected columns(1), selected rows(1));我从所有未选中的框开始,供用户根据生成的数据表进行选择。 Get Filtered Rows 在我的案例中似乎不起作用。
Re: 如何将Data Filter()选中的数据放入新的数据表中(使用JSL)?您希望每次选择更改时都生成新表吗? 或者您是否希望在用户做出选择后继续使用模态?
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("Select Parameters",
<<MODAL></MODAL>Re: 如何将Data Filter()选中的数据放入新的数据表中(使用JSL)?@jthi我更喜欢一个每次选择更改删除表中的旧值时都会生成新表(对我接下来要执行的操作很有用)。 我不知道该怎么做,因此采用了模态方法。
Re: 如何将Data Filter()选中的数据放入新的数据表中(使用JSL)?当过滤器中的选择发生变化时,您可以使用过滤器状态处理程序来触发“事件”。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
f = Function({a},
Show(obj << get filtered rows);
);
nw = New Window("Select Parameters",
<<MODAL></MODAL>Re: 如何将Data Filter()选中的数据放入新的数据表中(使用JSL)?@jthi感谢您指向过滤器状态处理程序。 但是,您的脚本并不完全按照我希望的“用新数据替换现有数据表”的方式执行此操作。 当用户更改选择时,数据过滤器窗口需要保持打开状态,并且在“dtNew”中填充/更新/重新生成数据。 可能的?
Re: 如何将Data Filter()选中的数据放入新的数据表中(使用JSL)?让用户做出所有选择,然后让他们在准备好后按 OK 键不是更容易吗?
Re: 如何将Data Filter()选择的数据放入新的数据表中(使用JSL)?最好是使用本地数据过滤器 - 全局数据过滤器更改数据表的行状态。
如果您有一个带有此类本地数据过滤器的窗口(第一部分),您只需运行此代码 - 并将获得相应的子集。
该代码可用于每个报告窗口 - 并且可以添加为工具栏快捷方式。
或者,可以向窗口添加一个按钮框以触发子集表的生成。
Names Default to Here(1);
/*dt0 = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt0 << Graph Builder(
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y ) ),
Local Data Filter(
Add Filter( columns( :sex ), Where( :sex == "F" ) )
)
);*/
ldf = Try( Current Report()["Local Data Filter"] << get scriptable object, Stop() );
dt = ldf << Get Data Table();
WhereClause = ldf << Get where clause();
If( Not( Is Missing( WhereClause ) ),
Eval( Parse( Substitute( ldf << Get where clause(), "Select Where", "myRows= dt << get rows where" ) ) );
dt << subset( Rows( myRows ), Selected columns only( 0 ) );
);
或者 .... *)
Re: 如何将Data Filter()选择的数据放入新的数据表中(使用JSL)?怎么样动态子集插件(可过滤数据表,已更新) ?
编辑:
*)我刚刚再次找到了讨论 - 似乎我“再次”有与之前一些帖子相同的想法
- 所以我删除了第一个链接:)
回复:如何将数据过滤器 () 选择的数据放入新数据表中(使用 JSL)?动态子集插件(可过滤数据表,已更新)怎么样?