優雅地退出加載項我正在編寫一個加載項來對當前數據表()進行操作。 如果出現以下情況,我希望加載項正常退出而不執行任何操作:
(a) 沒有當前數據表()
要么
(b) 當前數據表有 <2 列。
我似乎無法讓這件事發生。 我安裝了加載項並查看了生成的 .jmpcust 文件。 在腳本的最頂部,註釋說“此處聲明的變量和函數的範圍僅限於應用程序命名空間”,我注意到這段代碼:
dt = Current Data Table();
If(Is Empty(dt),
Quit Application()
);
Quit Application = Function({},
Current Window() << Close Window;
Throw()
)我*認為*是由應用程序生成器(而不是我)插入的。
完成 (a) 似乎是正確的,但我的加載項在沒有 Current Data Table() 的情況下提前收費並打開其對話窗口。
有人可以幫我嗎?
腳本回复:優雅地退出加載項我試圖在腳本編輯器中調試它,它關閉了編輯器而不保存。 直到我重新做它並再次運行它時,我才意識到發生了什麼。該函數應該在它被調用之前定義,所以這似乎是亂序的。
我從未使用過應用程序生成器。 我在調用 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>
回复:優雅地退出加載項我想我在查看 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."
)
);