我刚刚收到一位客户提出的问题,我发现这个问题值得分享给脚本社区和那些想成为其中一部分的人:)
在任何可以选择列并将其拖动到角色中的平台中,您都可以在这些红色小三角形(热点)中选择显示过滤器,这可以帮助您搜索您感兴趣的列名称。这是一个非常有用的功能,如果你有更多的变量!
现在,假设您想在自己的窗口中使用此列过滤器构建一个应用程序。您可以在帮助 -> 脚本索引下打开脚本索引并搜索“col filter”。 “Filter Col Selector”将在命令结果列表的第一行中非常突出地显示。嗯,这是一个好的开始。甚至还有一个例子。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Col List Box Example",
fontobj = lb = Filter Col Selector( width( 250 ) )
);
这会导致这个窗口:

到目前为止一切顺利,但是我的过滤器在哪里???
您应该始终提醒的是像 Show Properties() 这样的命令,因为它们会在日志中向您显示必须应用于该对象(在本例中为 fontobj )的所有选项。
Show Properties(fontobj);
这将创建一堆命令,但是您真正想要的是以下三个命令之一:
Name contains [Action] [Scripting Only]
Name starts with [Action] [Scripting Only]
Name ends with [Action] [Scripting Only]
查找要在“过滤器列选择器”上使用的命令的另一种方法是脚本索引,这次不是搜索,而是查看类别列表并选择“过滤器列选择器”。然后这些操作将出现在脚本索引窗口的中间。
因此,使用这些命令之一,您将在创建窗口后立即获得过滤器,并以某种方式将其设置为过滤器列选择器窗口的默认值:
fontobj << Name Contains (" ");
请注意,您至少需要输入一个空格,否则过滤器不会出现。这将是结果:

我希望您像我一样发现这篇文章很有价值,或者至少它提醒您使用帮助或 Show Properties() 或 Show Tree Structure() 等命令来查看 JMP 为您提供的内容。
最好的,
马丁
有效。 我不知道脚本索引对话框。谢谢你的提示。 @danschikore
你好@ankitgssingh - 您在菜单中看到的每个数据类型和建模类型选项都有相应的 JSL 消息。例如你可以使用这样的东西:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
lb = Filter Col Selector( width( 250 ), <<CONTINUOUS></CONTINUOUS>
其他示例显示在“帮助”>“脚本索引”对话框中。
你好
有没有办法始终只看到 Filter Col Selector 中的分类列?
我们可以通过 JMP 手动执行此操作,但有没有办法在 JSL 中对其进行编码?
这是对之前发布的内容的简单替代。
Filter Col Selector 搜索框嵌套在 IfBox 中。 它可以通过启用 IfBox 来显示。 感谢您分享您的解决方案。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fcb = Filter Col Selector( width( 250 ))
);
ib = (fcb<<PARENT></PARENT>