アドインを正常に終了するCurrent Data Table()を操作するためのアドインを作成しています。 次の場合は、何もせずにアドインを正常に終了させたいです。
(a)現在のデータテーブルがありません()
また
(b)現在のデータテーブルの列は2つ未満です。
私はこれを起こさせることができないようです。 アドインをインストールして、生成された.jmpcustファイルを確認しました。 「ここで宣言された変数と関数はアプリケーションの名前空間にスコープされています」というコメントが書かれているスクリプトの一番上に、次のコードがあります。
dt = Current Data Table();
If(Is Empty(dt),
Quit Application()
);
Quit Application = Function({},
Current Window() << Close Window;
Throw()
)これは、(私ではなく)ApplicationBuilderによって挿入されたと*思います*。
(a)を実行するのは正しいように思われますが、代わりに、Current Data Table()がない場合、私のアドインは先に課金し、ダイアログウィンドウを開きます。
誰かが私を助けることができますか?
スクリプティングRe:アドインを正常に終了するスクリプトエディタでデバッグしようとしましたが、保存せずにエディタを閉じました。 やり直してもう一度実行するまで、何が起こったのかわかりませんでした。関数は呼び出される前に定義する必要があるため、順序が狂っているように見えます。
私はアプリケーションビルダーを使ったことがありません。 この種の制御は、GUIが呼び出される直前のスクリプトレベルで行います。 基本的に私のスクリプトは次のようになります。
1.最初のものを上に
2.メインスクリプト機能
3. dtを割り当て、GUIに進むかどうかを決定します
4.GUI。[OK]ボタンでスクリプト関数を呼び出します。
これが私がデータテーブルをチェックする方法です。 これの修正バージョンを使用して、ncol(dt)> = 2を確認することもできます。
dtData = current data table();
try(dtData << get name, throw(New Window("No Data Table Found",<<MODAL></MODAL>
Re:アドインを正常に終了するその間に、txnelsonの投稿の1つを見て解決策を見つけたと思います。 アプリケーションスクリプトに、次のように記述します。
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."
)
);