您好,我正在 JMP Pro Application Builder 中編寫腳本。
- 我有一個主窗口,其中有一個按鈕可以將我帶到輔助窗口。 在輔助窗口中,有一些文本編輯框,用戶可以在其中輸入值。 此外,該輔助窗口上有一個關閉按鈕,用於將值保存到 appNS 並關閉輔助窗口。
- 我在主窗口中將變量初始化為默認值 0。 我無法讓變量使用新窗口中的更新值而不是默認值。 它立即打印默認值,而不是運行該函數然後打印更新的值。 任何幫助,將不勝感激。
以下是一些代碼片段供參考(PredictiveModeling 是主窗口,OptimizeModelWindow 是輔助窗口):
appNS: ParamList1 = 0;
appNS: ParamList2 = 0;
appNS: ParamList3 = 0;
appNS: ParamList4 = 0;
appNS: ParamList5 = 0;
appNS: ParamList6 = 0;
OptimizeParamsButtonPress = Function( {this}, // This function is called when the OptimizeParams button is pressed on the PredictiveModeling Window
name = this << Get Button Name;
OptimizeModelWindow << Create Instance(thisModuleInstance);
Wait(OptimizeModelWindow);
PList1 = appNS: ParamList1;
PList2 = appNS: ParamList2;
PList3 = appNS: ParamList3;
PList4 = appNS: ParamList4;
PList5 = appNS: ParamList5;
PList6 = appNS: ParamList6;
Print(PList1,PList2,PList3,PList4,PList5,PList6);
);
這是從編輯框讀取變量並更新默認值的地方......
doOptimizeParams = Function ( {},
HP1 = PEdit1 << Get Text;
appNS: ParamList1 = HP1;
HP2 = PEdit2 << Get Text;
appNS: ParamList2 = HP2;
HP3 = PEdit3 << Get Text;
appNS: ParamList3 = HP3;
HP4 = PEdit4 << Get Text;
appNS: ParamList4 = HP4;
HP5 = PEdit5 << Get Text;
appNS: ParamList5 = HP5;
HP6 = PEdit6 << Get Text;
appNS: ParamList6 = HP6;
);
CloseOptimizeButtonPress = Function( {this},
// This function is called when the Optimize button is pressed on the popup OptimizeModel window
name = this << Get Button Name;
doOptimizeParams();
Print(ParamList1,ParamList2,ParamList3,ParamList4,ParamList5,ParamList6);
(thisModuleInstance << GetBox) << Close Window;
);您是否正在為對話框創建新窗口或新應用程序模塊? 它們的工作方式不同。 看看如何使用應用程序模塊傳遞變量。
謝謝,我會調查一下。 我有兩個用於對話框的應用程序模塊,主模塊和用戶輸入值的輔助模塊。 我現在可以使用它,但也許不是最好的方法。 我在輔助模塊的“關閉”按鈕上有一個標誌變量。 當該標誌被升起時,我的主模塊中有一個很大的“If”語句,它執行這種情況的代碼。