ユーザー入力が提供されるまでスクリプトの実行を遅らせますか?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />スクリプトの最初の部分では、ユーザーに「Y」変数と「By」変数を選択するよう求めています。次に、データテーブル (「dt2」と呼びます) を出力します。
コードの後半は、ユーザーが選択を行って [OK] をクリックした後に生成されるデータテーブル (dt2) に依存します。
私が抱えている問題は、ウィンドウが表示されてもコードが実行を続け、ユーザー入力を待っていることです。そのため、コードの後半には使用するデータテーブル(dt2)がないため、何も出力されません。 。
wait( ) を使用できることはわかりましたが、これは時間値(秒単位)に依存しているため、コードの前半でユーザー入力が与えられるまで続行しないようにこれをスクリプト化したいと考えています(したがって、必要な実行するコードの後半のデータテーブル)。
助け/アドバイスをよろしくお願いします!!
Re: ユーザー入力が提供されるまでスクリプトの実行を遅らせますか?非モーダル ウィンドウの動作を制御するには、いくつかの方法があります。
1. コードの前半の式に、「OK」ボタンで実行するタスクを記述します。ユーザーが「OK」をクリックしたら、式を指定するだけです。
ok_expr =式(
ユーザー入力= user_teb <<テキストを取得する() ;
印刷する( 「ユーザーが入力しました」 ||ユーザー入力) ;
マイウィン<<ウィンドウを閉じる;
) ;
ユーザー入力= 「」 ;
マイウィン=新しい窓( 「ユーザー入力の取得」 、
リストボックス(
テキストボックス( 「テキストを入力してください:」 ) 、
user_teb =テキスト編集ボックス() 、
) 、
ボタンボックス( "わかりました" 、 ok_expr ) 、
ボタンボックス( "キャンセル" 、マイウィン<<ウィンドウを閉じる; ) 、
) ;
2. OK タスクを別の JSL ファイルに配置し、include() ステートメントを使用して目的のコマンドを実行します。
// ok_commands.jsl
ユーザー入力= user_teb <<テキストを取得する() ;
印刷する( 「ユーザーが入力しました」 ||ユーザー入力) ;
マイウィン<<ウィンドウを閉じる;
// 以下はダイアログ ボックスのコマンドです。別のファイル
ユーザー入力= 「」 ;
マイウィン=新しい窓( 「ユーザー入力の取得」 、
リストボックス(
テキストボックス( 「テキストを入力してください:」 ) 、
user_teb =テキスト編集ボックス() 、
) 、
ボタンボックス( "わかりました" 、含む( 「ok_commands.jsl」 );) 、
ボタンボックス( "キャンセル" 、マイウィン<<ウィンドウを閉じる; ) 、
) ;
Re: ユーザー入力が提供されるまでスクリプトの実行を遅らせますか?貼り付けるデータが JMP 内からのものである場合、または JMP によってテーブルとして開くことができる場合は、データ テーブルへの挿入もスクリプト化できます。
ただし、あなたのシナリオで、主観的な決定を行う必要があるために手動での操作が避けられない場合は、1 と 2 のアクションを競合する「開始」ボタンと「終了」ボタン (または同様のボタン) を備えた非モーダル ウィンドウを使用します。それぞれ2。
Re: ユーザー入力が提供されるまでスクリプトの実行を遅らせますか?お返事をありがとうございます。
実際、これは私が抱えている別の問題に非常に役立ちました。
ユーザーからデータを取得して解決するためのソリューションを試してください。
この特定のケースでは、ユーザーはおそらく大量のファイルを挿入する必要があります。
データを DT に貼り付けるという考えです。
現在、私のソリューションではスクリプトを 2 つの部分に分けて実行しています。
1. ユーザーにデータの挿入を求める前に必要なすべてのアクション
(データはDTに貼り付けられます)
2. データの挿入後に必要なすべてのアクション。
しかし、私たち二人とも、これではうまくいかないことを理解していますし、ユーザーにそれを要求することもできません。
すべてのデータを手動で挿入すると、時間がかかりすぎて非効率的です。
他に何かアイデアはありますか?
タナクス、
ミーシャ
Re: ユーザー入力が提供されるまでスクリプトの実行を遅らせますか?モーダルダイアログを回避することはできないと思います。 ただし、ユーザーがモーダル ウィンドウに制限を入力できるようにすることもできます。制限は、「OK」をクリックするとデータテーブルに転送されます。
以下に例を示します。
dt =新しいテーブル( "テスト" 、新しい列( "データ" 、数値) ) ;
新しい窓( 「制限を設定する」 、
<<モーダル、
テーブルボックス(文字列列ボックス( 「」 、 { 「平均」 、 「LCL」 、 「UCL」 } ) 、 NCB =数値列編集ボックス( 「限界」 、 [ 。 、 。 、 。 ] ) ) 、
ボタンボックス( "わかりました" 、
L = NCB <<得る;
評価(
評価式(
カラム( dt 、 "データ" ) <<プロパティを設定する( 「管理限界」 、 {エックスバー(平均(エクスプレッション( L [ 1 】 ) ) 、 LCL (エクスプレッション( L [ 2 】 ) ) 、 UCL (エクスプレッション( L [ 3 】 )) )})))
)
) ;
// 動作したかどうかを確認する
見せる( L ) ;
dt :データ<<プロパティの取得( 「管理限界」 ) ;
Re: ユーザー入力が提供されるまでスクリプトの実行を遅らせますか?私も同様のことをしていて、同じ問題に苦しんでいます。
モーダルウィンドウも私の最初の解決策でした。 残念ながら、それは機能しませんでした。
新しいウィンドウが開くと、データ テーブルへのアクセスが妨げられます (ウィンドウは最前面に表示されたままになります)。

モーダルウィンドウの上部のデフォルトをバイパスする方法はありますか?
それとも実装するためのより良いアイデアでしょうか?
事前にお問い合わせください。
Re: ユーザー入力が提供されるまでスクリプトの実行を遅らせますか?ユーザー入力を収集するために新しいウィンドウを使用している場合は、それをモーダル ダイアログ ボックスにします。 << モーダル
マイウィン=新しい窓( 「モーダルダイアログボックスのサンプル」 、 <<モーダル、
テキストボックス( 「これはモーダルダイアログボックスです」 ) 、
ボタンボックス( "わかりました" 、どのボタン= "わかりました" ) 、
ボタンボックス( "キャンセル" 、どのボタン= "キャンセル" ) 、
) ;
印刷する( 「ユーザーがクリックしました」 ||どのボタン) ;