更新组合框,其中列表来自必须由用户打开的数据表<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
背景
我正在创建一个带有选项卡的小型应用程序,在其中一个选项卡中我请求用户打开一个数据表
在另一个选项卡中,我有一个组合框,显示该数据表的列的唯一值列表(“unique_copy_list”)
CBX1 =尝试(组合框(唯一副本列表) , ) ,
问题:
当应用程序启动时,未选择数据表,因此“唯一_副本_列表”不可用,
有没有办法刷新组合框?
或者最好使用不同的方法
回复:更新组合框,其中列表来自必须由用户打开的数据表谢谢大家的支持。 点了,我很快就会升级。 无论如何,通过删除和附加,我完成了工作。
回复:更新组合框,其中列表来自必须由用户打开的数据表JSL 语法会随着时间的推移而演变,因此如果您使用的是非常旧版本的 JMP,那么在您发布帮助请求时提及这一点确实很有帮助。您尝试做的事情可以在版本 9 中完成,但更新列表框和组合框的方法从那时起已经发生了变化。我认为设置物品是版本 10 中的新功能,但也许我错了,但我知道在当前版本中,这要容易得多,如 Peter 所示。不过,您仍然可以使用核心原则,即在选择数据表后将消息发送到组合框。一种冗长的方法是迭代地删除项目(<回复:更新组合框,其中列表来自必须由用户打开的数据表
我使用 JMP 9.0.2
我使用了您发送给我的所有代码来验证解决方案,只需将列名称从“客户”更改为“复制”,但这并不相关,因为 unique_copy_list 变量包含正确的信息,但似乎她设置的项目命令没有达到预期的效果
回复:更新组合框,其中列表来自必须由用户打开的数据表你能发布你的代码吗?另外您使用的是哪个版本的 JMP?我的程序仅在您打开名为“的示例数据集”时才有效波段数据”。
回复:更新组合框,其中列表来自必须由用户打开的数据表感谢您的快速响应,仍然设置项目命令不会刷新提到的组合框:S
它运行正常,但没有日志错误,但组合框没有反映它
我还运行了你的完整脚本(再次感谢),但仍然没有
回复:更新组合框,其中列表来自必须由用户打开的数据表您需要设置回调来加载组合框。这是一个小例子。您必须打开 Bands Data 示例数据集才能正常工作。我还提供了一个函数来获取列的唯一值。
/* 函数名获取唯一值
描述:获取列的唯一值。 例如:
适应症
------------
AAAAA
BBBB
AAAAA
中交建
中交建
unique_list = 获取唯一值(:指示)
将返回 {"AAAAA", "BBBBB", "CCCCC"}
论据:
dtcol 列描述符来计算唯一值
*/
获得独特的价值=功能( { dtcol } , {默认本地} ,
// Eval/expr 技巧来让它工作。
评估(评估表达式(
总结(唯一列表=经过(表达式( dtcol )))))) ;
唯一列表;
) ;
西北=新窗户( “测试” ,
选项卡框(
“第一个标签” ,
打开按钮=按钮盒( “打开” ,
dt =打开() ;
// 此示例将使用 Bands Data...
唯一副本列表=获得独特的价值(柱子( dt , “顾客” )) ;
CBX1 <<设置项目(唯一副本列表) ;
) ,
“第二个选项卡” ,
CBX1 =组合框() , // 最初它是空的
)
) ;