新窗口中的 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>
@朱利安