リストに列を割り当てる方法は?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />JSLには、ColList関数を使用してテーブル内の列をリストに割り当てることができる列診断関数があります。 スクリプトの実行時に、ユーザーはボタンをクリックして割り当てを実行する必要があります。 対話型のユーザー入力が必要です。
Col_dlg = コラムダイアログ(
タイトル("変数の割り当て"),
::x = ColList("実行 ID", MinCol(1), MaxCol(1), Columns(:LOT)),
……
);
ユーザーがダイアログ ウィンドウ上のボタンをクリックせずに列をリストに割り当てることができるようなスクリプトを作成する方法はありますか (実行時にダイアログ ウィンドウは表示されません)。
私は試した:
::x = ColList("実行 ID (必須)", MinCol(1), MaxCol(1), Columns(:LOT));
::x = :LOT << 値を取得します。
::x = 列(dt,"LOT");
すべて失敗しました。 手がかりはありますか?
Re: 列をリストに割り当てるにはどうすればよいですか?ごめんなさい、私のせいです。 私の説明が明確ではありませんでした。 私がやりたいのは、一部の列に堅牢なグローバル変数割り当てを使用して列診断機能を置き換え、ユーザーによる対話的な応答が不要になるようにすることです。 状況は次のとおりです。
私のメイン ルーチンには、いくつかの列がいくつかのグローバル変数に割り当てられる列診断があります。これは、ライブラリ内の多くの既存の関数で呼び出されます。 これらの lib 関数で使用されるコマンドがいくつかあります。
N_x = NItems(x);
Column(dt, Eval(x2)) << Set Property("行順序レベル", (1));
変動チャート(...)
二変量(..)
....
これらの lib 関数の変更は許可されません。 現在、Column Diag 関数を使用して割り当てられたグローバル変数は、既存の lib 関数で問題なく正常に動作します。 ただし、上記で提案したすべての試行は、一部のコマンドでは機能する可能性がありますが、他のコマンドではエラーが発生する可能性があります。
今回の私の説明が明確であることを願っています:-)。 あるいは、さらに混乱を招くかもしれません:-(。
ジョン
Re: 列をリストに割り当てるにはどうすればよいですか?ここで ColList の出力を模倣する特別な理由はありませんが、次のような列を含むリストを作成できます。
dt =開ける( "$SAMPLE_DATA/Big Class.jmp" ) ;
コル= {カラム( dt 、 "名前" )} ;
カラム( dt 、コル) <<プロパティの設定( 「行順序レベル」 、 ( 1 )) ;
ただし、あなたの例では、通常の列変数の方が簡単です。
dt =開ける( "$SAMPLE_DATA/Big Class.jmp" ) ;
コル=カラム( dt 、 "名前" ) ;
コル<<プロパティの設定( 「行順序レベル」 、 ( 1 )) ;
列のリストに基づくさらに別の方法:
dt =開ける( "$SAMPLE_DATA/Big Class.jmp" ) ;
::バツ= ( dt <<列名を取得する())[ 1 】 ;
::バツ<<プロパティの設定( 「行順序レベル」 、 ( 1 ) ) ;
Re: 列をリストに割り当てるにはどうすればよいですか?はい、を使用して
::x2 = Column(dt, "LOT") << 値を取得;
列 LOT の下のすべての値を含むリストが表示されますが、この ::x2 は、列診断の ColList 関数を使用して割り当てられた ::x とまったく同じように「動作」しません。 たとえば、次のコマンド
Column(dt, Eval(x)) << Set Property("行順序レベル", (1));
ColList 関数を使用して ::x を割り当てましたが、呼び出すとエラーが発生します
Column(dt, Eval(x2)) << Set Property("行順序レベル", (1));
エラーメッセージは次のとおりです。
「 'Column' のアクセスまたは評価で列が見つかりませんでした。 Column( dt, Eval( x ) )」
ColList 関数によって割り当てられた ::x の場合、Eval(x) は「LOT」を返します。
この方法で割り当てられた ::x2 について、Eval(x) は列 LOT の下のすべての値を含むリストを提供します。
私がやりたいのは、列をリストに割り当てる方法を見つけることです。ColList 関数とまったく同じように動作しますが、ダイアログ ウィンドウを使用したユーザー インターフェイスやユーザーの対話型応答は必要ありません。 ColList 関数のコードを誰かが私に提供してくれれば、それは素晴らしいことです。
Re: 列をリストに割り当てるにはどうすればよいですか?最後から 2 番目の試行は成功するはずですが、LOT 列を含むテーブルが現在のテーブルではなかった可能性があります。次の構文はすべて機能します。
dt =開ける( "$SAMPLE_DATA/Big Class.jmp" ) ;
×1 = :名前<<値を取得する;
×2 =カラム( dt 、 "名前" ) <<値を取得する;
データテーブルを指す変数が設定されていることを確認してください。例えば:
dt =データ表( 「マイロッツ」 ) ; // LOT列を含むテーブル
::バツ=カラム( dt 、 "多く" ) <<値の取得;