報告視窗未關閉我有一個腳本,我試圖設定它在運行時會彈出一個互動式 GUI,如下所示:

我可以填寫批號,目前唯一可用的按鈕是「CPL 畫面」按鈕。我單擊它,它會產生一份報告,說明該批次中的晶圓是否通過了篩選限制。如果資料中存在錯誤代碼或超高值,則會在報告中新增一個按鈕框,詢問使用者是否要刪除這些值並再次進行篩選。

我已將按鈕設定到應該關閉當前報告視窗和與其關聯的資料表的位置,並在刪除錯誤資料後重新運行與開始時相同的「CPL 畫面」。唯一的問題是,當我單擊重新運行按鈕時,原始視窗不會關閉,報告也不會完成。
我可以實際進入腳本並突出顯示連接到按鈕的程式碼,並且腳本運行良好。僅當我實際單擊該按鈕時它才不起作用。這是第一次瀏覽時視窗清單的樣子:

這是我單擊重新運行按鈕時的樣子:

看來原來的報告並沒有在新的報告打開之前結束。考慮到我可以在物理上運行相同的程式碼並且一切正常,我感到很困惑。以下是腳本正在執行的操作的 suedo 流程圖:

任何幫助將非常感激
回覆:報告視窗未關閉該按鈕及其所有屬性(包括其腳本)是顯示樹的子級。 顯示樹包含在視窗中。 當您關閉視窗時,該按鈕及其腳本將被銷毀。 如果是按鈕腳本關閉了窗口,這將導致錯誤 - 可能是一個非常嚴重的錯誤。 因此,JMP 會對此進行監視,並確保視窗處於隱藏狀態,但會一直等待按鈕腳本完成。
這是一個演示此行為的腳本。 觀察主視窗中的視窗清單即可看到它:
win1 = New Window( "Window 1",
V List Box(
Button Box( "Close window 1 and open window 2",
win1 << close window;
win2 = New Window( "Window 2",
<<MODAL></MODAL>
回覆:報告視窗未關閉我發現,如果您在報告視窗中放置一個按鈕來關閉該視窗並繼續執行更多腳本,則包含該按鈕的視窗不會完全關閉。 但是,如果您在報告視窗外部放置執行完全相同腳本的按鈕,那麼一切都會正常運作。 我不太確定這是為什麼,我不得不稍微改變我的腳本來補償,但現在它最終工作得很好。回覆:報告視窗未關閉將按鈕加入報告視窗的程式碼如下:
if(errors_exist == 1 | large_value == 1,
error_box << append(Button box("Remove Erroneous Data and Rerun Analysis",redo_analysis))
)
redo_analysis的程式碼如下:
redo_analysis = expr(//if the user wants to eliminate error codes or large data values need to redo the screening and remove the issue points
close(dt_screen_results, nosave);
re_run = 1; //boolean flip to not have the script pull data from the database again
screen_result_window << close window;
//wait(5);
column(dt_lot, "Screen Results") << set selected(1);
dt_lot << delete columns();
if(errors_exist == 1, //deletes the error code rows
dt_lot << selectrows(error_rows)
);
if(large_value == 1,//deletes the large value rows
dt_lot << selectrows(large_values)
);
dt_lot << delete rows()
CPL_screen
//window(char(lot_num << get text) || " CPL Results Summary") << close window;
);
如果我按下報告中的按鈕,問題仍然存在。 如果我不按按鈕,而是在腳本中突出顯示 redo_analysis 並運行該部分,則一切正常。
回覆:報告視窗未關閉在 JMP 中彈出視窗不會自動停止腳本的處理。要么必須將窗口聲明為“模態”窗口,要么將要運行的代碼嵌入到窗口內的對像中,這樣它們就不會運行,直到用戶單擊按鈕或在組合框中做出選擇, ETC。
所以我的猜測是,當您打開視窗時,您的 JMP 程式碼會繼續處理,並且您認為處理正在等待使用者輸入,然後再繼續。
回覆:報告視窗未關閉經過更多的擺弄後,腳本似乎沒有按照我認為應該的順序運行。 我認為腳本會按順序執行,如第 10 行將被執行,然後轉到第 11 行並執行它。 我發現,即使我在重新運行部分開頭的一行上有 report << close window() 行,但在腳本完全完成之前,腳本不會完全執行該行。 該視窗將隱藏但不會完全關閉,直到新視窗開啟。 由於我在報告視窗中新增了<關於 JMP 為何這樣做以及我可以採取哪些措施來緩解這種情況,您有什麼想法嗎? 我忘了提及我正在運行 JMP 12。