新窗口中的 For 循环你好! 我是一位非常初级的 JMP 用户,在让 for 循环正常工作时遇到了困难。我试图询问用户他们的每个因素是什么类型的因素。 询问问题的次数取决于 jmp 文件中的列数。 我试图使用单选框,但在附加时遇到问题。 下面是我所做的一些小快照。 谢谢!
Names Default to Here(1);
dt = Open("Example1.jmp");
number = ncols(dt);
FactorType = {"Continuous", "Categorical"};
New Window("Data Entry", << Modal, << return results,
Text Box("Type of Factor");,
type= V list Box(),
);
For(i= 1, i <= number, i++,
type << Append(Radio Box(FactorType, Max Selected(1)));
);
回复:新窗口中的 For 循环这是一个公平的问题, @大卫_伯纳姆! 我想也许这取决于? 我经常使用 IfBox(),尽管它是专门为显示框的条件显示而设计的。 在这些情况下我无法谈论 jsl 的“合法性”,但无论如何 OnOpen 都是一个很好的建议。回复:新窗口中的 For 循环在新的窗口函数调用中放置 for 循环真的合法吗?我的观点是,即使代码运行,您也不应该将 JSL 粘贴在需要显示框的地方。对于模态窗口,JSL 可以放置在 OnOpen 事件处理程序中。
回复:新窗口中的 For 循环你好,我们又见面了@dg1 ,
为了跟进,我更仔细地查看了您的代码,我认为您会在一些地方遇到障碍。 最大的就是卸载结果。 每个 RadioBox() 对象都应该有一个句柄,以便您稍后可以引用它们来获取数据。 下面是执行此操作的一种方法,它将引用分配给列表,然后逐步遍历该引用列表,发送消息以获取所选项目,并将结果存储到另一个列表。 单击“确定”按钮后,这一切都会发生。
Names Default To Here( 1 );
dt = Current Data Table();
number = N Cols( dt );
rbList = {};
rbResult = {};
FactorType = {"Continuous", "Categorical"};
win = New Window( "Data Entry",
<<MODAL></MODAL>
如果您还没有阅读《JMP 脚本指南》,我强烈建议您阅读“帮助”>“书籍”>“脚本指南”。 当您学习使脚本按您想要的方式工作所需的语言和操作时,这将是非常宝贵的。 另外,我真的很喜欢这本书JSL Companion:JMP 脚本语言的应用程序。我将从脚本指南开始,因为它免费包含在 JMP 中,但 JSL Companion 确实通过一系列实际应用程序提供了使用 JSL 的结构化介绍(并且包含所有代码)。
希望这对您有所帮助! 享受!
@朱利安
回复:新窗口中的 For 循环你好@dg1 ,
它似乎显示在窗口顶部,但仅在您编程时显示一次。 如果您想要为每个列选择一个文本框,您可以在 for() 循环的每次迭代中执行另一个附加操作:
Names Default To Here( 1 );
dt = Open("Example1.jmp");
number = N Cols( dt );
FactorType = {"Continuous", "Categorical"};
New Window( "Data Entry",
<<MODAL></MODAL>

回复:新窗口中的 For 循环谢谢你! 您是否还知道如何确保“因素类型”文本框也与单选框一起显示?回复:新窗口中的 For 循环你好@dg1 ,
你做的一切都是正确的! 但是,您对 <
Names Default To Here( 1 );
dt = Open("Example1.jmp");
number = N Cols( dt );
FactorType = {"Continuous", "Categorical"};
New Window( "Data Entry",
<<MODAL></MODAL>
@朱利安