複数選択が可能なモーダル選択ウィンドウを作成するにはどうすればいいですかJMPコミュニティの皆様、こんにちは。
次の点について助けが必要です。名目数値列 ( Values )を持つテーブル ( dt ) があります。Values 列の並べ替えられた一意の値を表示するウィンドウを作成したいと思います。次に、1 つまたは複数の値を選択してそれらを返し、 Select Where関数に渡したいと思います。
私はJSLの初心者なので、ご協力いただければ幸いです。
この問題を解決するために、次のようにSelectNumericValues関数を作成しました。
// function to create a modal window with selection functionality
SelectNumericValues = Function( {dt, column_name},
// Use Summarize to find unique values in the specified column
Summarize( unique_values = By( Column( dt, column_name ) ) );
// Calculate the maximum number of selections
max_selections = N Items( unique_values );
// Create a window for user selection
nw = New Window( "Select Values",
<
// call my function with table dt and nominal numeric column "Values"
selected_values = SelectNumericValues(dt, "Values");
dt_select = dt << Select Where( :Values == selected_values)
一意にソートされた値を持つウィンドウが正しくレンダリングされます。

1 つまたは複数のオプションを選択できます。しかし、次の 2 つのエラーが発生します。
- 送信は、「リスト」のアクセスまたは評価でスクリプト可能オブジェクトを期待します。{/*###*/"0", "1", "2"}
- 名前が解決されていません: 'Button' のアクセスまたは評価中のボタン、Button( 1 ) /*###*/
これは、 SelectNumericValues関数でボタンを正しく処理しておらず、 Select Where関数で返された値も誤って処理していることを示しています。

追加の質問として、少なくとも 1 つのオプションを選択する必要があるという要件をどのように実装すればよいでしょうか (何も選択せずにモーダル ウィンドウを閉じることは不可能であるか、または暗黙的にすべてのオプションが選択されていることを意味する必要があります)。
ありがとう!
ポール
自動化とスクリプトウィンドウズRe: 複数選択が可能なモーダル選択ウィンドウを作成するにはどうすればいいですか?有効な解決策を見つけました。次の間違いを犯しました:
- SelectNumericValues関数は、数字ではなく文字のリストを返します。
- Select Where関数呼び出しでは、数値のリストと一致する Contains 関数が必要です。
- SelectNumericValues関数のselected_values = nw << Show Window;という行がボタン関連のエラーを引き起こしていると思います。
その結果、選択した値を数値に強制変換する必要があります。また、 Select Where関数の呼び出しを調整する必要があります。
これは正しく動作すると思います:
// Function to generate the user selection window for numeric values
SelectNumericValues = Function( {dt, column_name},
// Use Summarize to find unique values in the specified column
Summarize( unique_values = By( Column( dt, column_name ) ) );
// Calculate the maximum number of selections
max_selections = N Items( unique_values );
// Create a window for user selection
nw = New Window( "Select Values",
<I am happy to see additional improvements from other users.Re: 複数選択が可能なモーダル選択ウィンドウを作成するにはどうすればいいですか?データ フィルターの使用を検討する必要があると思います。データ フィルターを使用すると、表示と選択が自動的に行われます。
Re: 複数選択が可能なモーダル選択ウィンドウを作成するにはどうすればいいですか?ありがとう、ジム!
あなたの推奨に基づいて、データ フィルター機能を使用したスクリプトを作成しました。これはデータのインタラクティブなフィルタリングに非常に便利な機能なので、教えていただきありがとうございます。
私のスクリプトが実装している主な機能は、ユーザーがフィルタリングした後のデータに基づいて出力 (ジャーナル、たとえば PDF ドキュメントとして保存) を作成することです。言い換えると、ここではインタラクティブな多変量フィルタリングは必要ありません。その意味で、この投稿で共有したアプローチは私にとって有用です。
ポール