リストボックスから選択された項目を取得する - JSLの動作が変更されましたか?現在、 @David_Burnham による JSL スクリプトの書き方に関する素晴らしい解説ビデオを視聴中です。
7分28秒まではすべて正常に動作します。8分13秒頃、正確にはウィンドウがモーダルウィンドウに変換された時点で、このコードでエラーが発生します。
// doesn't work:
lst = {"A", "B", "C"};
New Window("Select", << Modal,
Border Box(top(10), bottom(10), left(15), right(10),
V List Box(
TextBox("Select the predictor variable", <
<SETFONTSTYLE></SETFONTSTYLE>
<BR /> <P>解決策を見つけたと思います。 <A href="https://community.jmp.com/t5/Discussions/How-to-get-specific-input-values-from-modal-windows-to-be-placed/m-p/483379#U483379" class="lia-mention-container-editor-message lia-img-icon-forum-thread lia-fa-icon lia-fa-forum lia-fa-thread lia-fa" target="_blank">モーダルウィンドウから特定の入力値を取得してJMPスクリプトに保存する方法です。</A>少なくとも、以下のスクリプトを実行してモーダルウィンドウの「OK」ボタンを押すと、 <FONT face="courier new,courier" color="#0000FF">sel関数は</FONT>選択された値のリストを返します。</P> <P><U><STRONG>スクリプト</STRONG></U>:</P> <BR />
<CODE class=" language-jsl">// works
NewWindow("Select", <
<MODAL>
<CODE class=" language-jsl"> <BR /> <P><U><STRONG>サンプル出力</STRONG></U>:</P> <CODE class=" language-jsl">sel = {"A", "B"};
{Button( 1 )} // what is this? 私が理解したい3つのこと:
- 冒頭に掲載した元のコード(// が機能しない)に何か問題があるのでしょうか、それとも動画が録画されてから JSL の動作が変わったのでしょうか?
- 戻り値{ボタン(1)}の意味がわかりません。なぜそこにあるのでしょうか? ボタンボックス()から来ているのだと思いますが、スクリプトのインデックスには情報がありません。
- カスタムボタンの件で、私の考えは正しいでしょうか?
編集:
解決策は説明ビデオの中にも含まれています。
lst = {"A", "B", "C"};
NewWindow("Select", <
<MODAL></MODAL>
Re: リストボックスから選択された項目を取得する - JSL の動作が変更されましたか?1. モーダルウィンドウが閉じると、<< return result を使用して値が返されない限り、値にアクセスできなくなります。
2. ボタン(1)は単にOKが押されたことを意味し、例えばスクリプトの流れを制御するために使用できます。
3. はい、OKボタンが押されたときに値を取得するのは良い選択肢です。
私は通常、最初に << Return Result を試して、現在のウィンドウで機能しない場合は、OK ボタンが押されたときに値を取得します。モーダル ダイアログを使用する場合は、必要ではないにもかかわらず、(ほぼ)常に OK ボタンとキャンセル ボタンを追加します。スクリプト ガイド > ディスプレイ ツリー > JSL のモーダル ウィンドウ > モーダル ウィンドウの構築。
以下は << 結果を返す を使用した例です
Names Default To Here(1);
lst = {"A", "B", "C"};
nw = New Window("Modal Dialog example",
<
<TYPE></TYPE>
<P>また、場合によっては、あなたが望むように動作しないケースもあります(選択されたアイテムではなく、コレクションボックスに追加されるアイテムが欲しい場合など)。</P> <BR /> <BR /> <CODE class=" language-jsl">Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("Modal Dialog example",
<
<TYPE></TYPE> <BR /> <BR />
Re: リストボックスから選択された項目を取得する - JSL の動作が変更されましたか?ありがとうございます。いつもながら、大変感謝しています!ただ、私の最初の投稿でリンクした動画では、ここで不具合が発生している箇所が正常に動作しているのが、いまだに不思議です。
Re: リストボックスから選択された項目を取得する - JSL の動作が変更されましたか?JMPの古いバージョンとタイミングの問題に関連している可能性があります。