ユーザーがデータテーブルを手動で操作するまでスクリプトを一時停止します皆さん、
続行する前に、ユーザーが開いているデータ テーブルで手動で作業 (手動でデータを調べ、行または列を追加/削除) できるように、スクリプトを一時停止しようとしています。 これを行うためにダイアログ ボックスを使用しようとしましたが、ダイアログ ボックスが受け入れられるまでデータ テーブルで作業できません。 これを実現する方法について何か提案がある人はいますか?
ログをクリア();
名前のデフォルトはここ ( 1 ) です。
dt.bigclass = Open( "$SAMPLE_DATA/Big Class.JMP" );
新しいウィンドウ( "待って!",
<<モーダル、
ビープ()、
V リストボックス(
テキストボックス(
「データテーブルの行または列を手動で追加/削除」
)、
)
);
// ユーザーは続行する前に、開いているデータ テーブルに対して行/列を追加または削除します。
// その他の命令
Re: ユーザーがデータテーブルを手動で操作するまでスクリプトを一時停止するこんなことをやっているのでしょうね。
Names Default To Here( 1 );
dt.bigclass = Open( "$SAMPLE_DATA/Big Class.JMP" );
New Window( "WAIT!",
Beep(),
V List Box( Text Box( "Manually Add/Delete Rows or Columns In Data Table" ), ),
Hlistbox(
Buttonbox("OK",
<<SET function=""></SET>
「これは問題が解決するまで表示されないはずです」を望まない場所
ただし、「OK」が押されるまでは何もする必要はありません。これを行う通常の方法は、関数を使用し、[OK] ボタンから関数を呼び出すことです。
Names Default To Here( 1 );
dt.bigclass = Open( "$SAMPLE_DATA/Big Class.JMP" );
action_okay = function({},
//{DEFAULT LOCAL}, //uncomment this if you want the variables to be local only (don't exist outside the function)
// put everything you want to do after okay button in here.
print("this shouldn't show until okay");
// other stuff
);
New Window( "WAIT!",
Beep(),
V List Box( Text Box( "Manually Add/Delete Rows or Columns In Data Table" ), ),
Hlistbox(
Buttonbox("OK",
<<SET function=""></SET>Re: ユーザーがデータテーブルを手動で操作するまでスクリプトを一時停止するこの特定の例では、ユーザーがテーブルに対して手動操作を実行できるようにする場合、同じウィンドウに表示されるそのテーブルのデータ ビュー/データ ボックスを作成できます。例えば:
Names Default To Here( 1 );
dt = New Table( "My Table" );
dt << Add Rows( 10 );
dt << New Column( "X1", Set Values( J( 10, 1, Random Normal() ) ) );
dt << New Column( "X2", Set Values( J( 10, 1, Random Uniform() ) ) );
nw = New Window( "Prepare Your Data",
hb = H List Box(
V List Box(
Text Box( "Delete Unneccesary Columns in Table and then click OK" ),
Button Box( "OK", nw << close window )
),
Panel Box( "Data Table View",
Border Box( Sides( 15 ), dt << new data box(), <<BORDER></BORDER>

Re: ユーザーがデータテーブルを手動で操作するまでスクリプトを一時停止するVince が提供したスクリプトとアイデアは機能するはずです。ボタンを押した後、実行したいアクションを配置する必要があります。ボタン内での関数呼び出し
Button Box("OK",
<<SET function=""></SET>
「OK」ボタンを押した後に実行されるスクリプトは次のとおりです。
Print("何かをする"); self << ウィンドウを閉じる;
これを行うには他にも方法がありますが、これが最も簡単なオプションである可能性が高いので、まずはこれから始めます。
Re: ユーザーがデータテーブルを手動で操作するまでスクリプトを一時停止するヴィンス、
ユーザーの質問を理解できた場合、私は非常に似たようなことをしようとしています。つまり、スクリプトを続行する前にユーザーがテーブルを編集できるようにします。 もしかしたら私のやり方が間違っていたのかもしれませんが、スクリプト内で上記のスクリプトを使用すると、必要なテーブル編集が完了していないため、プログラムが実行され続けてエラーが発生します。
したがって、モーダルを使用すると、スクリプトは停止しますが、テーブルの編集はできません。
モーダルを使用しない場合、OK を押す前にテーブル編集が許可されますが、必要な編集を行わずにスクリプトが実行され続けます。
スクリプトの実行を停止し、テーブルの編集が行われたことをユーザーが示すまで続行しないようにしたいと考えています。
これはできるでしょうか?
よろしくお願いいたします。
パトリック・キャロル
Re: ユーザーがデータテーブルを手動で操作するまでスクリプトを一時停止するありがとう、ヴィンス
それは簡単でした。 モーダルプロパティについて読む必要があると思います。
Re: ユーザーがデータテーブルを手動で操作するまでスクリプトを一時停止する新しいウィンドウをモーダルにしないでください。 次に、すべてのアクションを [OK] ボタン (または任意のボタン) 内に配置します。
Names Default To Here( 1 );
dt.bigclass = Open( "$SAMPLE_DATA/Big Class.JMP" );
New Window( "WAIT!",
Beep(),
V List Box( Text Box( "Manually Add/Delete Rows or Columns In Data Table" ), ),
Hlistbox(
Buttonbox("OK",
<<SET function=""></SET>