使用表达式中的选项创建过滤器列选择器(动态)我的目标是在模态窗口中创建一个 Filter Col Selector,如果为函数提供了过滤器,则应用默认的“名称包含”过滤器。但是,如果函数的输入包含空白过滤器,则它会保持过滤器框打开,以便用户随时输入过滤器。
如果输入为空,则与“间隔”相比,这是所需输出的示例结果
Names Default To Here( 1 );<BR />dtex = Open( "$SAMPLE_DATA/Arrhythmia.jmp" );<BR /><BR /><BR />// case with filter
filt = "interval";
eval(eval expr(
New Window( "Filter Col Selector if filter option given", <<MODAL> FILTER SELECTION IS GONE, not desired result
filt = "";
eval(eval expr(
New Window( "Filter Col Selector if no option", <<MODAL></MODAL><BR />// case with no option --> FILTER SELECTION stays, but how to make this dynamically based on the 'filt' value?<BR />filt = "";<BR />eval(eval expr(<BR />New Window( "Filter Col Selector if no option", <<MODAL></MODAL>));<BR /><BR />// attempt to create with substitute do not work- cant use comma in expr to make multiple to insert...<BR />testexpr = expr(new window("test", <<MODAL></MODAL> if(filter != "",<BR />_OPTIONS_ = eval expr(width(400), nlines(35), <<NAME contains=""></NAME>,<BR />_OPTIONS_ = expr(width(400), nlines(35), <<CONTINUOUS></CONTINUOUS>);<BR /><SPAN> substitude into(testexpr , expr(_OPTIONS_), name expr(_OPTIONS_));</SPAN><BR />
</MODAL>
因此,我开始尝试将“名称包含”变成一个表达式,该表达式仅在应用过滤器的情况下才可选地添加 - 关于如何轻松完成此操作,有什么想法吗?我已将其替换为表达式,但当我需要创建一个列表时,它就停滞了……
谢谢,
- 桃
自动化和脚本回复:使用表达式中的选项创建过滤器列选择器(动态)您是否在寻找类似的东西?过滤器列框中有一个默认设置为 0 的 ifbox,您可以将其设置为 1 以使搜索框可见。您也可以直接将消息 << 名称包含 发送到过滤器列框,而不是将其构建在里面(通常这样更容易管理)。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Arrhythmia.jmp");// case with filter
filt = "interval";
fcs = Filter Col Selector(dt, , width(250), nlines(30));
Eval(EvalExpr(fcs << Name contains(Expr(filt))));
fcs[IfBox(1)] << Set(1);
nw = New Window("Filter Col Selector Example", << modal,
fcs
);
回复:使用表达式中的选项创建过滤器列选择器(动态)非常感谢!我曾尝试发送一条与您提到的完全相同的消息,但我认为因为我有一个模型窗口,所以我实际上无法这样做。
但是,我看到你首先构建了过滤器 col 选择器,然后最后创建了模式窗口 - 很简单,我只是没有想到这一点。完美,谢谢
回复:使用表达式中的选项创建过滤器列选择器(动态)您可以先构建它(我会这样做),但您也可以在新窗口内发送消息,它应该可以工作
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Arrhythmia.jmp");// case with filter
filt = "interval";
nw = New Window("Filter Col Selector Example", << modal,
fcs = Filter Col Selector(dt, , width(250), nlines(30)),
Eval(EvalExpr(fcs << Name contains(Expr(filt))));
fcs[IfBox(1)] << Set(1);
);