表格關閉時可以關閉報告嗎?想知道是否有一種方法可以在數據表關閉時自動關閉包含報表的窗口,特別是使用“<< 關閉時”消息? 例如,我從一個數據表創建一個分佈並將結果連同一些其他重要信息添加到一個窗口中。 如果用戶關閉數據表,我想在窗口上執行一些操作。 下面演示:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
VLB = VlistBox(
Distribution(Column(:Age, :Weight));
);
win = New Window("Results",
TextBox("Other things"),
VLB
);
dt << On Close(
Show("Close script activated"); //this line is executed...
VLB << Delete Box(); //...but not this one or any following it.
Show("Remainder of script is not run...");
);
使用“<< 關閉時”消息似乎是答案,但我還不能讓它工作。 當我關閉表 dt 時,將執行關閉腳本的第一行,但不會執行其餘部分。 我收到一條消息,指示其他報告窗口已打開,如果我想關閉它們(單擊“全部關閉”將關閉整個結果窗口,而不僅僅是分佈),最後一條消息要求保存(“否”)。 我懷疑當單擊“X”關閉表時,我對 VLB 的引用在 On-Close 腳本可以執行之前被刪除。
我意識到我可以創建一份分佈報告並將其放在我的窗口中,但它會是靜態的,這是我不想要的。
有什麼想法嗎?
回复:表格關閉時可以關閉報告嗎?多謝你們。 不幸的是,我認為我確實需要使用 Names Default to Here(1),因為這個腳本正在其他人中使用,但這個 soln 可能對其他人有用。
通過將我的 VLB 引用設置為全局引用,我能夠讓它與 NDtH 命令一起使用。 這仍然不理想,但提供了一些可能性。
Names Default to Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
::VLB = VlistBox(
Distribution(Column(:Age, :Weight));
);
win = New Window("Results",
TextBox("Other things"),
::VLB
);
dt << On Close(
Show("Close script activated");
::VLB << Delete Box();
Show("Remainder of script...");
);如果有辦法讓訂閱功能正常工作,我會很樂意的。 當對錶進行更改時,我還想在我的窗口上執行其他操作。 再次感謝。
回复:表格關閉時可以關閉報告嗎?謝謝奧黛麗!也不錯,是的,我把它漏掉了。 vlb 對於腳本編輯器窗口來說是本地的,並且在數據表的窗口運行 onClose 時不可用,這可能是有道理的。 我認為請求是在日誌窗口中獲取有關表上下文中未定義 vlb 的消息。
回复:表格關閉時可以關閉報告嗎?@尼克斯首先,感謝您提供如此出色的腳本來複製問題/問題。 很容易看出你在問什麼。
其次,我不得不承認,當我第一次復制您的腳本來嘗試時,我沒有將第一行 Names Default 複製到 Here(1)。 事實證明,省略該行會使您的腳本按照您希望的方式工作。 如果您不需要該行來限制變量的範圍,那可能是一種解決方法。 (注意:使用默認為 here() 的名稱當然是最佳實踐,但這裡會導致某種範圍界定問題。)
第三,我發現 Mac 和 Windows 的行為是一致的。 (所以, @Craige_Hales , 你是不是碰巧也省略了 Names Default to Here(1)?)
第四,Craige 建議 dt << subscribe 可能是一種可能性,但我無法讓它工作,有或沒有 Names Default to Here(1);我繼續看到關於其他報告窗口打開的消息,我想關閉它們嗎?
最後,我正在跟進我們的開發團隊,看看這是否應該解決。
回复:表格關閉時可以關閉報告嗎?好的 - 已向技術支持發送消息,希望有解決方法。 我不知道“訂閱”功能,所以感謝分享。 不幸的是,這在我的系統上也不起作用,可能是相同的根本原因。 即使在訂閱的腳本索引條目中運行“示例 1”也會失敗。 我可以想到很多過去的腳本,但使用它會有所幫助。
回复:表格關閉時可以關閉報告嗎?@Audrey_Shull
可能必須通過技術支持。 兩個操作系統上發生的事情的順序可能有所不同。
https://www.jmp.com/support/help/14-2/subscribe-to-a-data-table.shtml可能會提供足夠不同的 onClose 變體以使其工作;我認為 dt<
我已經使用 report<回复:表格關閉時可以關閉報告嗎?
唔。 在裝有 JMP Pro 14.3.0 的 Mac (Mojave 10.14.6) 上運行。
回复:表格關閉時可以關閉報告嗎?我認為你的腳本是正確的,它在 Windows 14.3 中運行;你運行的是什麼版本的 JMP?
The platform left the window平台離開窗口