你好,
我一直在創建一個應用程序,其中用戶通過使用模態視窗來選擇用於構建模型的列,用於選擇PQA,如附帶的JMP 文件中包含玩具數據和標題為“Model for Select PQAs and”的腳本。列」。
該模型應該為具有任何列名稱拼字的任何資料集選擇的每個 PQA 建立自訂輸出。 執行腳本時,會出現一個彈出窗口,要求使用者選擇特定列。 該視窗如下圖所示:

下一個視窗要求使用者設定 PQA、儲存條件,並詢問使用者是否要查看每個 PQA 的子集資料集 - 儲存條件。 也就是說,對於每個選定的 PQA,都會在背景建立一個子集資料集。 然後,產生模型和圖形結果,然後在 for 迴圈的每次迭代中將其附加到具有自訂和格式化資料(帶有 LSL 和 USL y 軸線以及帶有測量值的 y 軸標籤)的視窗。

下面是 JSL 腳本程式碼,根據來自上述視窗的使用者輸入產生輸出:
//select the data in the original data table
Names Default To Here( 1 );
dt = Current Data Table();
//get the unique PQAs
col9 = Column(dt, "PQA");
unique_pqa = Associative Array( col9 ) << get keys;
/////////////////////////////////////////////////////////////
//User Selection Menu(s)
/////////////////////////////////////////////////////////////
//Part 1: ask user for column names in a new window nw1
//possible Group column name (should be character)
character_col_names = dt << Get Column names(character, String);
//possible result column name (should be numeric)
numeric_col_names = dt << Get Column names(Numeric, String);
nw1 = New Window("Column names",
<<MODAL></MODAL>
建立輸出視窗後,我希望能夠將腳本儲存到原始資料表,其中包含所有資料(子集資料所依賴的資料)。 但是,當我將所有輸出的腳本儲存到腳本視窗時,我得到以下結果:
注意
Where ( :PQA == pqa_val & column(listDT, set_storage_condition_col) == selected_stor_cond )
語句不允許腳本工作。
我希望此腳本中的此語句具有特定的輸出。 例如,在我附加的玩具資料集中,
column(listDT, set_storage_condition_col)
等於:儲存情況
另外,如果我選擇 A 作為pqa_val ( 以便:PQA==“A” )和5C作為選定的儲存條件(以便:儲存條件==“5C” )。
但是,即使我指的是用戶輸入,生成的輸出腳本也不存在。 為什麼 JMP 不將上面範例中的這些值寫入循環中每個特定實例的腳本中?
非常感謝。 我甚至沒有考慮使用 Eval() 及相關的。 我肯定會閱讀更多相關內容,並查看您提供的連結。
使用 Eval Insert、Eval Expr、Parse 和 Substitute 將一個表達式插入另一個表達式應該對你有幫助。 另外,當您使用模態視窗時,按下按鈕時 << 關閉視窗是不必要的。
我在 where 語句周圍和內部加入了一個 Eval(EvalExpr()) 和幾個 Expr() :
看更多...