優雅地退出加載項我正在編寫一個插件來對當前數據表()進行操作。 我希望加載項在以下情況下正常退出而不執行任何操作:
(a) 沒有當前數據表()
或者
(b) 當前數據表的列數<2。
我似乎無法讓這件事發生。 我安裝了該加載項並查看了生成的 .jmpcust 文件。 在腳本的最頂部,註釋顯示“此處聲明的變量和函數的範圍僅限於應用程序命名空間”,我注意到以下代碼:
dt = Current Data Table();
If(Is Empty(dt),
Quit Application()
);
Quit Application = Function({},
Current Window() << Close Window;
Throw()
)我*認為*是由應用程序生成器(而不是我)插入的。
這似乎適合完成 (a),但我的加載項在沒有當前數據表 () 的情況下提前收費並打開其對話框窗口。
有人可以幫我嗎?
消費者和市場研究回复:優雅地退出加載項您的意思是您希望腳本停止而不向用戶提供任何反饋嗎? 如果是這樣,請將 throw("info text") 替換為 stop(),腳本將在那裡終止。 我想它在應用程序腳本中的工作原理是相同的,但我從未使用過它。
回复:優雅地退出加載項但我仍然有興趣知道如何 Throw() 而不導致出現任何錯誤對話框。 我認為 txnelson 最近的帖子解決了這個問題,但我對它的作用和工作原理感到困惑。
回复:優雅地退出加載項我想我在查看 txnelson 的一篇帖子的同時找到了解決方案。 在應用程序腳本中,我輸入:
If( N Table() == 0,
Throw( "Add-in requires an open data table." )
);
dt = Current Data Table();
If( N Cols( dt ) < 2,
Throw(
"Add-in requires a table with at least two columns."
)
);
回复:優雅地退出加載項我嘗試在腳本編輯器中對其進行調試,但它關閉了編輯器而不保存。 我沒有意識到發生了什麼,直到我重新做了並再次運行它。該函數應該在調用之前定義,因此看起來不正常。
我從未使用過應用程序生成器。 我在調用 GUI 之前在腳本級別執行此類控制。 基本上我的腳本看起來像:
1. 最初的東西在上面
2.主要腳本函數
3.分配dt並決定是否進入GUI
4. GUI,其中“確定”按鈕調用腳本函數。
這是我檢查數據表的方法。 您可以使用此版本的修改版本,並檢查 ncol(dt) >= 2。
dtData = current data table();
try(dtData << get name, throw(New Window("No Data Table Found",<<MODAL></MODAL>