さまざまな観測値を選択するための動的ダイアログ ボックス以下のデータがあります。 ゲーム列に利用可能なさまざまなタイプのゲームを表示し、ユーザーに各ゲームのタイプを選択するオプションを提供するダイアログボックスを作成したいと考えています。 ユーザーが各ゲームのタイプを選択して [OK] をクリックすると、各ゲームのゲーム タイプを含む新しい列が追加されて元のテーブルが更新されます。 また、ユーザーが特定のゲーム タイプに対してゲームを選択した可能性がある場合は、重複を避けるために、そのゲームをダイアログ ボックスのゲームのリストから非表示にする必要があります。
以下は私の最初のテーブルと最終的なテーブルです。 インタラクティブなダイアログ ボックスは添付の画像のように表示され、ユーザーはそれぞれのゲーム タイプで利用可能なゲームの選択肢をドラッグ アンド ドロップできます。 [OK] ボタンは、すべてのゲームが選択された場合にのみアクティブになります。
同じための .jsl スクリプトの作成を手伝ってください。
元のテーブル:
| 名前 | ゲーム |
| あ | フットボール |
| あ | チェス |
| あ | バドミントン |
| B | フットボール |
| C | チェス |
| B | 卓球 |
| D | 何もない |
最終テーブル:
| 名前 | ゲーム | ゲームの種類 |
| あ | フットボール | 屋外 |
| あ | チェス | 屋内 |
| あ | バドミントン | 屋内 |
| B | フットボール | 屋外 |
| C | チェス | 屋内 |
| B | 卓球 | 屋内 |
| D | 何もない | 適用できない |
ありがとう :) 
Re: 異なる観測値を選択するための動的ダイアログ ボックスタナックス@gzmorgan0
あなたの助けに感謝。
JMP14を使用しています。Re: 異なる観測値を選択するための動的ダイアログ ボックス@ラジャット、
修正したスクリプトを添付します。 注意事項:
- カテゴリ オプションのリストに ComboBox を使用し、スクリプトの内部リストによって設定されます。
- 割り当ては、ソース リスト、コンボ ボックスの現在のカテゴリから選択し、[割り当て] ボタンを押すことによって行われます。
- 割り当てはゲーム名 > カテゴリとしてリストされます。
- テーブルを段階的に更新できるように [更新] ボタンが追加されました。
- ソース リストは、ゲーム タイプが割り当てられていないゲームに対してのみ作成されます。
- テーブルの削除と書き込みのアクションを変更する必要がありました。 これで、lb1 の項目 (割り当て ListBox) には、1 つの文字列に 2 つの情報が含まれます。 Word(n,string,delimiter) 関数は、関連情報を抽出するために使用されます。
スクリーンショットには、1 つの割り当てが行われたことが表示されます。 このビューでは、ユーザーが割り当てを押すと、バドミントンとフットボールが屋外として割り当てられます。
このインターフェイスにより、表示ボックスの変数の数が減ります。便利なインターフェイスを作成するには、アプリケーション、ニーズ、使用法を理解し、いくつかの基本を知っているか、必要なものに近いサンプルコードを見つけてそれを理解する必要があります。 このスクリプトには多くの代替手段があることに注意してください。幸運を!

ダイアログ レイアウトの JSL。 完全なスクリプトが添付されています。
//--Dialog
usr = New Window("Using List Boxes", <<MODAL></MODAL>Re: 異なる観測値を選択するための動的ダイアログ ボックス@ラジャット、
使用している JMP バージョンについては言及していません。JMP 14 の場合は、JMP メイン メニューから、ヘルプ > 書籍 > JMP スクリプト ガイド。 これは上製本の PDF 版です。 第 11 章、517 ページから「カスタム ウィンドウの構築」セクションが始まります。これは学習のための非常に良い情報源です。
またヘルプ > スクリプトインデックス >上部の灰色のボタンを押して選択しますディスプレイボックス。左側から表示ボックス コンストラクターを選択すると、右側に構文が表示されます。次に、実行できる 1 つ以上の簡単なサンプル スクリプトが表示されます。または、コピーして貼り付けて独自のスクリプトを作成して、各コンストラクターがどのように機能するかを学習します。調べることをお勧めします:ボタンボックス、リストボックスボックスこれらはコンストラクターです。 パネルボックス、ラインアップボックス、リストボックス(HListBox、VListBox) はダイアログのレイアウトを整えるために使用されるコンテナです。
スクリプトの作成方法を実際に学ぶには、ツールを知る必要があり、この学習には時間がかかる場合があります。ただし、多くのスクリプト作成者は、既存のスクリプトを読み取って実行し、ニーズに合わせて変更することで学習します。
これには多くの変数が必要になると述べたので、3 つ以上のカテゴリ (屋内、屋外、何もなし) が必要であると想定しています。 前回の投稿で述べたように、これには多くの方法がありますが、私はコードをコピーして貼り付けました。カテゴリが多い場合は、次の例を使用してスクリプトを変更します。 @pmroz 。 ComboBox を使用してカテゴリのリストから選択し、ボタン ボックス (割り当て) と割り当てボックスを 1 つだけ使用することになります。時間があれば、スクリプトを修正して添付します。
JMP から JMP スクリプトへ、2そしてJSL Companion、JMP スクリプト言語のアプリケーション、第 2 版は、JSL を学ぶのに役立つかもしれない他の 2 冊の本です。
Re: 異なる観測値を選択するための動的ダイアログ ボックスありがとう@gzmorgan0
私はこの解決策のみを探しています。
コードを理解しようとしています。 非常に多くの変数を作成する必要があるようです。 jsl を使用したインタラクティブなダイアログ ボックスの作成を学習するために参照できる、優れたビデオ チュートリアル シリーズ (できれば) または書籍を教えてください。 私はこれらのダイアログ ボックスを作成し始めたところです。
ありがとう :)
Re: 異なる観測値を選択するための動的ダイアログ ボックス@ラジャット、
カスタム ダイアログを構築するための JMP スクリプト言語、JSL、オブジェクトおよび関数のほとんどは、テーブル列をターゲットとしています。 JMP 組み込みダイアログ ウィンドウが列を要求していると考えてください。 カスタム選択に使用できるオブジェクトもありますが、これらの「値」オブジェクトには通常、より多くのプログラミングが必要です。たとえば、ColListBox オブジェクトには組み込みのドラッグ アンド ドロップ インターフェイスがあり、列名を別の ColListBox にドラッグでき、列名は一意になります。
JSL は ListBox() オブジェクトを提供しますが、一意性を確保するのは現在スクリプターの仕事です。 たとえば、タスクのコーディング方法によっては、Football には 1 つの分類しかなく、その名前は 1 回しか使用されないことを管理する必要があります。
1 つの方法は、ダイアログを使用せず、固有のゲームとゲーム タイプの概要テーブルを作成し、ユーザーにこの短縮されたテーブルを更新してからソース テーブルを更新してもらうことです。 この方法は、古いデータベース更新インターフェイスに似ています。
説明されているタスクを完了するために、非常に単純でそれほどエレガントではない (繰り返しのブルート フォース コード) スクリプトを添付しました。あなたはこの本を読んでいないので、簡単に説明しました。スクリプト インターフェイスには、誤って間違ったタイプのゲームが選択された場合に備えて、削除ボタンが含まれています。ゲームのリストに重複がないようにユニオン関数を作成したり、ゲームが屋内と屋外の両方に分類されないようにする関数を作成する代わりに、カテゴリが選択された後にソース リストからゲームを削除するコードを作成しました。
連想配列、キー付きリスト、ListBox、ButtonBox、および Set Function() について読む必要があります。
以下は、ダイアログとスクリプトのダイアログ部分のスクリーンショットです。 完全なスクリプトが添付されています。これは DataFilterBox を使用して行うこともできますが、ListBox() を使用する方が簡単であることに注意してください。 ところで、これは JMP13 と 14 でテストされました。

//--Dialog
usr = New Window("Using List Boxes", <<MODAL></MODAL>Re: 異なる観測値を選択するための動的ダイアログ ボックスこんにちは@pmroz
ご返信いただきありがとうございます。
私の実際のデータセットには、25 の固有のゲームを含む 1000 のゲームがあり、カテゴリは 1. 屋内 2. 屋外 3. 該当なしの 3 つだけです。 このアプローチでは、1000 ゲームごとにゲーム タイプを選択する必要があります。 ユニークなゲームでも試してみましたが、うまくいきませんでした。
ゲームの固有の値のみを表示するウィンドウを作成できますか? また、固有のゲームの数が増加すると、ゲームの固有値ごとにゲーム タイプを選択するのは面倒になるため、ゲームを複数選択してから、複数選択したゲームすべてに対してゲーム タイプを選択できるようにする必要があります。Re: 異なる観測値を選択するための動的ダイアログ ボックスここでは、テーブル ボックスとコル ボックスを使用するソリューションを示します。ゲームの種類に合わせて調整してください。
dt = New Table( "Games", Add Rows( 7 ),
New Column( "Name", Character, "Nominal",
Set Values( {"A", "A", "A", "B", "C", "B", "D"} ) ),
New Column( "Game", Character( 16 ), "Nominal", Set Values(
{"Football", "chess", "Badminton", "Football", "Chess", "Table Tennis", "Nothing"} ) ),
new column("Game Type", Character, "Nominal")
);
game_list = dt:game << get values;
ngames = nitems(game_list);
selected_type = {};
type_list = {"No choice made", "Outdoor", "Indoor", "Nothing"};
game_type_cb = {};
game_type_colb = col box("Game Type");
for (i = 1, i <= ngames, i++,
selected_type[i] = "No choice made";
game_type_cb[i] = combo box(type_list);
game_type_colb << append(game_type_cb[i]);
);
nw = new window("Game Type Setting",
panel box("Select game type for each game",
tb = table box(
string col box("Game", game_list),
game_type_colb
),
),
panel box("Actions",
hlistbox(
okb = button box("OK",
for (i = 1, i <= ngames, i++,
selected_type[i] = game_type_cb[i] << get selected();
dt:game type[i] = selected_type[i];
);
show(selected_type);
nw << close window;
),
canb = button box("Cancel",
nw << close window;
),
)
)
);