选择 JSL 名称包含代码的特定列名称包含脚本:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fontobj = lb = Filter Col Selector( width( 250 ) )
);
lb << Name contains( "a" );
delviers 所有列,其中包含 a。 必须添加什么代码才能通过单击或双击列表框中的列来标记这些列之一?
回复:选择 JSL 名称包含代码的特定列@ram_asra_gmail_ ,此链接是描述构建 ListBox 搜索和选择界面的帖子。虽然一些讨论使用 JMP14 中提供的 JMP 类对象,但第一篇文章描述了使用函数的接口:它适用于 JMP 13。
看https://community.jmp.com/t5/Discussions/Can-a-scripted-quot-widget-quot-be-converted-to-a-Class/mp/182529#M40268
原始帖子中附加的文件(TEB_LB_Widget.JSL、TestTEBSelector.jsl、TestLBFilter.jsl)在帖子中通过屏幕截图进行了解释。
回复:选择 JSL 名称包含代码的特定列另外,我们可以对列表中的项目进行类似的过滤吗? 谢谢拉姆回复:选择 JSL 名称包含代码的特定列非常好的例子。 您是否也可以有类似的 jsl 用于列的行选择器?
谢谢
内存
回复:选择 JSL 名称包含代码的特定列完美的!
现在,JSL 正在按照预期运行。 这让事情变得容易多了。 再次感谢。
回复:选择 JSL 名称包含代码的特定列
JMP 13.2.1 具有 dt << Go To (col ref) ;我的没有13.1 所以,这是一个测试用例。 如果有效,则附上修改后的脚本。它添加了 JSL 将窗口置于前面()和转到()
Names Default to Here(1);
dt = open("$Sample_Data/Semiconductor Capability.jmp");
//select a column towards the end of the table
:PM_L1 << set selected(1);
wait(2);
dt << go to(:PM_L1);回复:选择 JSL 名称包含代码的特定列你是对的。 你的代码正在运行。 我的错误是图标的命名。 我没有使用空白。
图标名称更改为“列搜索”后,它可以完美运行。
本主题的最后一个问题是必须在脚本中添加哪些代码才能不仅选择找到的列,而且还可以转到找到的列?
如果该列不在窗口的可见部分中,这将进一步改进整个过程。
回复:选择 JSL 名称包含代码的特定列我不知道你说的“对话框关闭后(通过工具栏中的图标) ”。
哪个图标? 这是自定义脚本吗?
当您有一个可以运行的脚本,但在不同的条件下无法运行时,大多数情况下这是一个范围问题。例如,我为 JMP13 和 12 提供的第一个脚本有效,但是,如果当前数据表在对话框仍打开时发生更改,则语法 :colname 将不起作用。 这是我的计划中的一个弱点。 但是,当我使用 char() 函数将 :colname 转换为字符串“colname”并引用源表时,它是健壮的。
因此,无论您通过图标或以下脚本执行什么操作,都会产生范围界定问题,而 JMP 版本无法解决该问题。因此,既然你还没有分享你在做什么,我只能指出一些需要寻找的东西:
- 如果您有其他引用 dt 的脚本,则脚本必须使用此处默认的名称。
- 在再次单击脚本按钮之前,请确保原始目标表是当前表。 (菜单栏显示表列表)。
我认为您可能遇到范围问题或表锁定问题。 祝你好运找到它。
这是一个屏幕截图,我将脚本添加为插件。 我在做其他事情时多次使用它,在不同的表上使用它然后再次使用,它在 JMP 13 和 JMP 12 中的工作原理相同。这不是版本问题。

回复:选择 JSL 名称包含代码的特定列再次感谢您的支持和耐心。
脚本更好,但正如已经提到的,仍然有可能得不到任何功能。 例如,在关闭对话框后(通过工具栏中的图标),再次进行第二次搜索并选择在同一数据表上运行。 也许 JMP 14 会让情况有所改善。
回复:选择 JSL 名称包含代码的特定列我发送的最后一个脚本(针对当前数据表进行了修改)适用于 JMP 12 和 JMP 13。 以下是 JMP 12 的屏幕截图。 正如屏幕截图所示,这是 JMP 示例数据表。
但是,如果当前数据表发生更改,该脚本将不起作用,因为 << 获取选定列返回列引用列表,而不是表名称。因此:如果当前数据表没有该列,Chloroform 将返回错误。因此,为了使脚本更加健壮,我将下面的第 18 行更改为下面的 JSL。脚本附后。即使原始表不再是当前数据表,它也应该如此。 但是,如果脚本(此处)在对话框仍打开时更改 dt 的值,则会发生名称冲突并导致问题。 或者如果在对话框仍然打开时关闭原始表,则会出现问题。
For(i=1, i<=nitems(_xx), i++, column(dt, char(_xx[i])) << set selected(0));

回复:选择 JSL 名称包含代码的特定列JSL 现在正在与 satrting JSL 合作:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
如果 JSL 在 JMP 13.1.0 中被通用化(在图标工具栏中使用它),如下所示:
Names Default To Here( 1 );
dt = Current Data Table();
我遇到了老问题=>没有列选择。 您知道这是否特定于 JMP 13.10.0?
如果是,请不要尝试修复它。 我希望很快就能拥有 JMP 14。
回复:选择 JSL 名称包含代码的特定列伟大的。 现在,JSL 正在使用 JMP 13.1。 我真的很感谢你和伊恩在解决这个问题上的耐心。
多谢
回复:选择 JSL 名称包含代码的特定列对此感到抱歉。 我有 JMP 13.1
回复:选择 JSL 名称包含代码的特定列该脚本适用于 JMP 12 和 JMP 13。 前面的脚本在早期版本的 JMP 中不起作用的原因是数据表消息清除列选择和选择列(列表)不可用。 在早期版本中,需要一次选择和取消选择一个列,因此需要进行以下更改。 我无法访问 JMP 12 之前的任何版本。
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>
回复:选择 JSL 名称包含代码的特定列您使用的是哪个版本的 JMP。
当我运行我发送的脚本时,会发生以下情况:
- 出现带有过滤框的对话框
- 输入A ,然后选择年龄,年龄高亮显示;选择名称,然后选择名称;按住 Ctrl 键并选择年龄,两者都会被选中。
- 删除A并输入埃伊然后选择体重和身高,与上面的行为类似。
抱歉,它不适合您。我发送的脚本适用于 PC 上的 JMP 14.1。 它在 JMP 13.2.1 中不起作用,在我寻找替代方案之前,您使用的是哪个版本的 JMP?
每当您提出问题时,您都应该指定您正在使用的 JMP 版本。
回复:选择 JSL 名称包含代码的特定列谢谢你的忍耐。 对此,我真的非常感激。 然而,JSL 仍然没有按预期工作(见图)。
目标是获得与使用 Cols / Columns Viewer / Name Contains 获得的功能相同的功能。 可以单击搜索框中显示的结果,并作为结果在原始数据表中选择特定列。
如果有正确的 JSL 代码可用,则整个列搜索/选择过程可以执行得更快。

回复:选择 JSL 名称包含代码的特定列尝试这个
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>回复:选择 JSL 名称包含代码的特定列
我是不是错过了什么。 我无法访问数据表中的选定列。
回复:选择 JSL 名称包含代码的特定列弄清楚了:
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>回复:选择 JSL 名称包含代码的特定列感谢您的支持伊恩。 它还没有按照我想要的方式工作。
我正在寻找 JSL 代码,使用它可以按名称 (part1) 一般搜索特定列,然后通过双击并在数据表中标记该列,从 part1 中选择列表框中所需的列。
一般搜索part1是用JSL代码完成的:
Names Default To Here( 1 );
dt = Current Data Table();
New Window( "Column Search",
fontobj = lb = Filter Col Selector( width( 250 ) )
);
lb << Name contains( );
可以像脚本索引中的代码一样为示例完成标记第 2 部分
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
dt << Go to( :BP 12F );
它们必须如何组合才能查找、标记和转到数据表中的列?
回复:选择 JSL 名称包含代码的特定列伊恩,
这是一个相关的问题。 由于博主响应有 lb<< Name Contains(),我认为该请求是让用户输入过滤器字段并且将选择所有列。
所以我尝试公开过滤器字段(显示过滤器)。 我多次尝试通过 JSL 启用第二个菜单项,但均失败。
有没有一种方法可以启用过滤器字段并配置过滤器? 我可以获取 PopupBox 菜单计数和菜单文本,但不能获取选择。

回复:选择 JSL 名称包含代码的特定列不确定我是否理解正确,但这就是你所追求的吗?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Make a FilterBoxSelector
New Window( "Filter Col Selector Example", lb = Filter Col Selector( width( 250 ) ));
// Define and set an 'action' script
actionScript =
Expr(
selected = lb << getSelected;
dt << clearColumnSelection;
dt << selectColumns(selected);
);
lb << setScript(actionScript);
// Try it out
lb << Name contains("sex");
Wait(3);
lb << Name contains("eight");回复:选择 JSL 名称包含代码的特定列感谢您的回复。不幸的是,我没有得到 JSL 更新的结果。 现在,我不知道为什么。
我真正想要的是获得类似于 JMP 中的 Cols / Columns Viewer ... / Name Contains ... 的类似行为。
一般来说,这可以通过脚本索引中提到的 JSL 代码实现:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fontobj = lb = Filter Col Selector( width( 250 ) )
);
lb << Name contains( );
但是,在运行搜索字符串后,我想通过双击在数据表中标记所需/选定的列。 这部分在脚本索引的 JSL 代码中仍然缺失或无法工作。
回复:选择 JSL 名称包含代码的特定列尝试这个
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fontobj = lb = Filter Col Selector( width( 250 ) )
);
lb << Name contains( "a" );
//select name
_xx = lb << get items;
_idx = Contains(_xx, "name");
lb << set selected( _idx, 1); //or 0 to unselect要查看对象的可用消息,请选择主菜单 > 脚本索引 > 显示框 > FilterColSelector