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