ユーザーがチェックボックスを使用して 1 つ以上のオプションを選択できるグラフィカル ユーザー インターフェイス (GUI) を開発しています。選択されたオプションごとに、GUI は次のアクションを順番に実行する必要があります。
- ファイルの選択:ファイル選択ダイアログを開き、ユーザーが選択したオプションに関連する特定のファイルを選択できるようにします。
- フォーマットして保存:データをフォーマットし、変更を保存する定義済み関数を使用して、選択したファイルを処理します。
素敵な助け:
複数のチェックボックスが同時に選択され、選択された各オプションが競合することなく関連する機能を独立してトリガーすることを保証するシナリオを処理するための支援が必要です。
チェックボックスごとにイベント リスナーを設定して、選択時に対応する関数をトリガーする方法がわかりません。
結果
- ユーザーはチェックボックスを使用して 1 つ以上のオプションを選択できます。
- 選択すると、チェックされたボックスごとに次のようになります。
- ユーザーが関連するファイルを選択するためのファイル ピッカー ダイアログが表示されます。
- 選択したファイルはフォーマット機能によって処理されます。
- フォーマットされたデータは適切に保存されます。
- GUI は応答性を維持し、操作中および操作後にフィードバックを提供します。
これまでのところ、助けが必要な部分にコメントを付けてコードを添付しました。また、GUIのよりエレガントなソリューションがあれば共有してください。
ありがとう
Names Default To Here( 1 );
directory_to_collect_data_table = "/C:/Users/";
data_list = {"datatable_1 ", "datatable_2", "datatable_3"};
userInput_dt = Function( {},
dt = Pick File(
"3. Pick Up Data Table_Total#1",
directory_to_collect_data_table,
{"JMP Files|jmp;jsl;jrn", "All Files|*"},
1,
0,
"",
"multiple"
);
Return( dt );
);
datatable_1func = Function( {dt},
dt << New Column( "label",
Character, // The new column will store character values
Formula(
"D" || Substitute( :Extracted_Data, "A", "" ) // Prepend "D" and remove "A"
)
);
dt << Column( "Extracted_Data" ) << Hide( 1 );
dt:ROW1 << Data Type( Character );
final_data1 = Data Table( "final_data" );
);
// GUI for selecting and merging files
Userinput_1 = New Window(
Panel Box( "Select the datatable",
Check Box( data_list ),
Button Box( "Select Files", Userinput_1//add functionality
//add functionality if datatable_1 is selected then call function datatable_1func ( datatable_1 );
//whichever check box is selected accordingly a function is called
)
)
)
);選択された項目を取得するには、<< get selected を使用します(値ではなくインデックスだけが必要な場合は、<< get selected indices を使用します)。次に、選択リストをループしてアクションを実行します。
Names Default To Here(1);
nw = New Window("Example",
cb = Check Box(
{"One", "Two", "Three"}
),
Button Box("Go",
For Each({sel}, cb << get selected,
Match(sel,
"One", Show("FIRST"),
"Two", Show("SECOND"),
"Three", Show("THIRD")
);
);
);
);
新しいウィンドウの表示ボックスを構築する (jmp.com)
チェックボックスに関数を関連付けることができます。この関数は、ユーザーがチェックボックスを操作するたびに呼び出されます。ヘルプ > スクリプト インデックスを参照してください。
