如何从下拉列表中获取函数参数以在绘图中使用相同的参数我正在使用组合框创建一个下拉列表。这个想法是从该列表中选择一个特定的项目/选项应该创建一个相应的条形图。
在所附代码中,Tool_time_wf 是应该使用组合框中的参数/提示/设备名称[变量选择]来创建绘图的函数。 组合框 myListbox 中的每个项目/选项已经是数据表(附后)中的列名称,应根据该列名称生成条形图,即周[数据表中的第 1 列] 与设备名称/列名称[第 2 列和从数据表开始]。
理想情况下,用户从下拉列表中选择设备名称/列名称,并且数据表中存在相同的设备名称作为列名称(参见附加的无标题 90 数据表),该名称将绘制为周与列名称/设备名称。虽然这里所附的数据表只显示了2个列名或者2个设备名。但实际的表将有 100 个列名称/100 个设备名称。 所以我需要一个函数(这就是我现在被困的地方)这将使用从 100 个设备名称/列名称的下拉列表中进行的选择来创建绘图。
任何帮助,将不胜感激。此致。
大规模定制回复:如何从下拉列表中获取函数参数以在绘图中使用相同的参数再次感谢你。欣赏它。回复:如何从下拉列表中获取函数参数以在绘图中使用相同的参数在上面的代码中,Expr() 基本上是代码的持有者,直到代码中处理了指向 Expr() 的指针后才对其进行处理。 Eval() 是一个函数,它向 JMP 发出指令,使用 Eval() 处理代码并将代码处理的结果返回给 JSL。回复:如何从下拉列表中获取函数参数以在绘图中使用相同的参数非常感谢你,特克斯尼尔森。您能否详细说明一下 Tool_time_wf 函数是如何工作的? 我对 expr 和 eval 的工作原理不是 100% 清楚。问候。
回复:如何从下拉列表中获取函数参数以在绘图中使用相同的参数您的脚本存在一些问题......都是小问题
- 您的新窗口是代码的控制部分,需要位于要调用的所有代码之后。也就是说,在 JMP 读取 doListChoice 之前,您不能调用 doListChoice。JSL 是一个解释器,它从第一行开始读取代码,然后跟随代码的执行位置。
- 您的代码结构方式(新窗口位于顶部)意味着它始终使用上次运行的代码。除非另有说明,否则 JMP 会保留每次运行的代码。我在您的代码中放置了 Clear Globals() 以确保每次运行时都清除所有内容。
- 您错误地引用了 xvar 和 yvar。我稍微改变了代码以使其工作。
- 代码对于要处理哪个数据表感到困惑。我添加了 dtNames 和 dt 以允许代码指向数据以使其更清晰

Clear Symbols();
Names Default To Here( 1 );
//current data table that has data on individual equipment based on each week
filepath="C:\temp_files\jmp\tool time vs CW\#jmp-script\for jmp SAS community QA\Untitled 90.jmp";
dtNames = Open(filepath,invisible);
//equipment list (will go upto 100 [equip 1 , equip 2 ,..........equip 100], only shows 2 here for example)
filepath="C:\temp_files\jmp\tool time vs CW\#jmp-script\for jmp SAS community QA\Equipment Name-wf.jmp";
dt = Open(filepath,invisible);
//dtNames = Data Table( "Equipment Name-wf" );
//dt = Data Table( "Untitled 90 (1)" );
doListChoice = Expr(
choice = myListbox << getSelected; // choosing the equipment name from the drop down list
Tool_time_wf( "week", choice ); //does not work
);
//Tool_time_wf(week column, tool name in string quotes works);
Tool_time_wf = Function( {xvar, yvar},
bivExpr = dt << Graph Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Variables( X( Eval( xvar ) ), Y( Eval( yvar ) ) ),
Elements( Bar( X, Y ) )
)
);
myList = Column( Data Table( "Equipment Name-wf" ), 1 ) << Get Values;
myListbox = Combo Box( myList, doListChoice );
//@@//showing drop down -works-st
New Window( "Show List",
Text Box(
" Please select a TOOL/MACHINE from the drop down menu:",
<<FONT color=""></FONT>回复:如何从下拉列表中获取函数参数以在绘图中使用相同的参数你好,txnelson,很抱歉没有让询问更清楚。
用户应选择设备名称(装备 1 或装备 2 ..... 或装备 100),而不是从下拉列表中选择周数。
对于将生成下拉列表的列表/表格,请参阅'设备名称-wf' jmp表。
一旦从下拉列表中选择设备名称(通过“设备名称-wf”生成);该功能应使用该设备名称;进入主数据表“Untitled 90” (其中列出了设备的每周数据);然后绘制所需的周与装备#图,如附件所示“所需装备与周图”图像文件。
如果您还有其他问题/疑虑,请告诉我。感谢您查看这个。我再次上传了带有附加注释“snippet v2”的 .jsl 代码。
回复:如何从下拉列表中获取函数参数以在绘图中使用相同的参数我需要更多帮助来理解您想要做什么。 如果用户从下拉列表中选择了“W06”,您能否生成您希望显示的图表?