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