<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />やあ、
データセットにない場合は、変更したり他のものを選択したりできる、事前に選択された列名でダイアログを作成したいと思います。 問題は、これらの選択したものを後で使用できないことです。
だからここに私のコードがあります:
グローバルをクリアする();
dt = 現在のデータ テーブル();
If( Is Empty( dt ),
dt = 開く()
);
col_name_list = dt << get column names( string );
Show( col_name_list );
dialogADMI = 空 ();
If( Contains( col_name_list, "ADJMI Rev2" ),
dialogADMI = 列( "ADJMI Rev2" )
);
dialogMIPLdraw1 = 空 ();
If(Contains(col_name_list, "MIPLdraw1"),
dialogMIPLdraw1 = 列( "MIPLdraw1" )
);
dlg = 列ダイアログ(
ADMI2 = 列リスト( "ADJMI Rev2",
最小列( 1 ),
最大列( 1 ),
列(dialogADMI)
)、
MIPLdraw1Col = 列リスト( "MIPLdraw1",
最小列( 1 ),
最大列( 1 ),
列( dialogMIPLdraw1 )
)、
);
Show( dlg["ボタン"] );
If( dlg["ボタン"] == -1,
投げる()
);
From( dlg ) を削除します。
評価リスト( dlg );
ADMI2 = ADMI2[1] << 名前を取得します。
MIPLdraw1Col = MIPLdraw1Col[1] << 名前を取得します。
// ここまでは問題ないと思います
// しかし、次の sted は機能しません
dt <<
Select Where(:MIPLdraw1Col != "") <<
サブセット(
列 (:Patient、:ADMI2、:MIPLdraw1Col)、
出力テーブル名("Draw1"),
);
;
// そのため、MIdraw1Col で空でないものを選択しようとします
// そして、次のようになりました: dt << Select Where( :MIPLdraw1Col/*###*/ != "" ) <<
// これは、列 MIPLdraw1 の元の名前を使用する場合に機能しますが、他の列名を使用する可能性が必要です
// では、どうすればよいでしょうか?
問題は、:ADMI2 および :MIPLdraw1Col という名前の列があることを JMP に伝えていることです。これは、参照の前に「:」のスコープ要素を使用しているためです。これらの名前の列はありません。値が列の名前を持つメモリ変数があります。コードを次のように変更すると、機能します。
dt <<場所を選択(列として( MIPLdraw1Col ) != "" ) <<サブセット(
列(:患者、桁( ADMI2 )、桁( MIPLdraw1Col ) )、
出力テーブル名( 「ドロー1」 )、
);
名前の代わりに列変数が必要になる場合があります。
タラの最後の部分をこれと交換してみてください:
ADMI2 =桁( ADMI2 [ 1 ] <<名前を取得) ;
MIPLdraw1Col =桁( MIPLdraw1Col [ 1 ] <<名前を取得) ;
// ここまでは問題ないと思います
// しかし、次の sted は機能しません
dt <<場所を選択( MIPLdraw1Col [] != "" ) <<サブセット(
列( :忍耐強い、 ADMI2 、 MIPLdraw1Col ) 、
出力テーブル名( 「ドロー1」 )
) ;