卡在模態上大家好,
我希望有人可以幫助我使用 Modal,之前我在我的 JMP 腳本中計算 FV,如下所示:
Finalivc2 << New Column( "Runs", Numeric, Continuous );
:Runs<<SET each="" value=""></SET>
效果很好,儘管有時我會忘記更新 :Runs 和 :Replicates per run 參數,這讓我有些難過,我決定使用模態來自動化這個過程,如下所示
FV_param = New Window ("Format Variability Parameters", << Modal, << Return Result,
Text Box ("Select Format Variability Parameters"),//Create the display box
HListBox(
LineupBox (NCol (2),
Text Box ("Runs NOT REPLICATES"), Runs = numberEditBox(2),
Text Box ("Replicates NOT RUNS"), Replicates per Run = numberEditBox(1),
), // end of lineupbox
LineupBox ( NCol (1), ButtonBox ("OK"), ButtonBox ("Cancel"))
) // end HListBox
);
show (FV_param, FV_param ["Runs"], FV_param ["Replicates per Run"],
FV_param ["Button"] );
If (FV_param ["Button"] == -1,
Caption (" Wait...Aborting..."); Wait (3) ; Caption(Remove); Throw());
StatusMsg ("Processing next steps");
RemoveFrom (FV_param, NItems(FV_param)); // Removes the last item "Button 1" from the assignment list
Eval List(FV_param); // the assignment from the display box
Eval(
Substitute(
Expr( Finalivc2 = New Column( "Runs", Numeric, "Continuous", Format( "Best", 12 ),
Expr( Finalivc2 = New Column( "Replicates per Run", Numeric, "Continuous", Format( "Best", 12 ),
)
),
Expr( __FV_param__ ), Runs, Replicates per Run
)
)));
Finalivc2 << New Column( "Format Variability %GCV", Numeric, Continuous, Formula( ((2^root(((:IR)/(:Runs)+(:Residual)/(:Replicates per Run*:Runs)),2))-1)*100 ), Format( "fixed dec", 4, 1 ) );我毫不懷疑我的評估和替換不正確,我沒有在表格中得到變量運行和每次運行的 Relicates,然後它沒有進行計算,任何人都可以提供一些幫助
謝謝
回复:卡在模態上嗨,pmroz,
非常感謝您的回复,我接受了昨天的 Craige 帖子作為解決方案,我錯過了昨天的編碼。
問候,
米奇男孩。
回复:卡在模態上嗨,格雷格,
您昨天的解決方案是正確的,我錯過了編碼,我使用了
dt<< 新列而不是 finalivc2<
| 運行 | 每次運行的重複次數 | 格式可變性 %GCV |
| 2 | 1 | 26.1 |
| 2 | 1 | 25.9 |
| 2 | 1 | 29 |
| 2 | 1 | 28.4 |
| 2 | 1 | 29 |
| 2 | 1 | 29.6 |
| 2 | 1 | 28.4 |
| 2 | 1 | 28.4 |
| 2 | 1 | 20.7 |
非常抱歉,效果很好,非常感謝您的耐心和幫助,非常感謝。
真誠的問候
米奇男孩
回复:卡在模態上我不知道該期刊是從哪裡來的,也不知道為什麼會這樣說。 我在打開 dt 的情況下運行你的代碼,我得到了這個:
columns added with values set添加了值集的列
我認為@pmroz答案不是通過 <
您的表現在是用列和值創建的嗎? 也許在那之後還有另一個問題。
回复:卡在模態上您正在嘗試將數字編輯框變量用作輸入的值。你不能那樣做;相反,您需要使用從數字編輯框中提取值<< 得到.在下面的代碼中,我附加了_鼻變量:
FV_param = New Window( "Format Variability Parameters",
<<MODAL></MODAL>
回复:卡在模態上嗨克雷格,
我正在運行相同的版本 14,所以現在我的代碼看起來像這樣
FV_param = New Window ("Format Variability Parameters", << Modal, << Return Result,
Text Box ("Select Format Variability Parameters"),//Create the display box
HListBox(
LineupBox (NCol (2),
Text Box ("Runs NOT REPLICATES"), Runs = numberEditBox(2),
Text Box ("Replicates NOT RUNS"), Replicates per Run = numberEditBox(1),
), // end of lineupbox
LineupBox ( NCol (1), ButtonBox ("OK"), ButtonBox ("Cancel"))
) // end HListBox
);
show (FV_param, FV_param ["Runs"], FV_param ["Replicates per Run"],
FV_param ["Button"] );
If (FV_param ["Button"] == -1,
Caption (" Wait...Aborting..."); Wait (3) ; Caption(Remove); Throw());
StatusMsg ("Processing next steps");
RemoveFrom (FV_param, NItems(FV_param)); // Removes the last item "Button 1" from the assignment list
Eval List(FV_param); // the assignment from the display box
dt<<NEW column=""></NEW>但它仍然不會將值設置為輸入到模式框中的內容,我在日記中得到了這個:
格式可變性 %GCV
.
.
.
.
.
.
.
.
.
日誌中沒有發布任何值。
有任何想法嗎??
謝謝你的幫助
回复:卡在模態上(您運行的是什麼版本的 JMP? 我14歲...)
您不需要使用替代(...)。 嘗試更換你的eval( ... 替代(... (expr(...代碼類似於
dt<<NEW column=""></NEW>
在您的示例中,括號嵌套使替換(eval(...))帶有一個要替換的參數。 替換需要(編輯兩個->三個)三個參數。
回复:卡在模態上嗨克雷格,
有一段時間嘗試根據您的建議運行腳本,但仍然沒有運行,在調試中得到相同的錯誤,在訪問替代評估時沒有足夠的參數。
問候
米奇男孩
回复:卡在模態上嗨克雷格,
今天已經沒時間了,但會在早上嘗試這個,讓你知道,我遇到的問題是評估對話框中的值並將其替換為方程。
謝謝
回复:卡在模態上你的腳本的最後一點應該是這樣的。 您可能還會遇到一些 JSL 變量名和列名相同的命名問題;使用 dt:Runs 或 global:Runs 可能有助於獲得正確的。
dt=currentDataTable(); // you should already have a variable for your data table
dt<<NEW column=""></NEW>