ローカル データ フィルターの値の並べ替え順序を変更するにはどうすればよいですか?こんにちは、みんな、
私は JMP 18 を使用しており、カスタム SQL クエリを使用してデータ テーブルを作成する JMP ファイルがあります。データ テーブルには、グラフ ビルダーで作成されたグラフで構成されたダッシュボードがいくつか添付されています。ダッシュボードの一部には、関連するグラフに表示する行の選択をユーザーが制御するためのローカル データ フィルターが含まれています。
ローカル データ フィルターの値の並べ替え順序を変更したいです。基になるデータ テーブルの並べ替えは問題ではないので、 この投稿に対する@txnelsonの返信の最初の提案 (以下の編集済みコード) を使用しようとしました。これにより、データ テーブルは期待どおりに並べ替えられますが、バッチ/リアクター列の並べ替え順序はローカル データ フィルターに適用されません (元の並べ替え順序のままで、アルファベット順のようです)。
バッチ/リアクター列は、文字/公称です。
このコードが期待どおりに動作しない理由、または他に取れるアプローチについてフィードバックをお持ちの方はいらっしゃいますか?
ありがとう、
アンディ
New SQL Query(
Version( 130 ),
Connection(
"ODBC:..."
),
QueryName( "Custom Query" ),
CustomSQL(
" select ...
[... SQL omitted ...]
group by
up_pro_name) as dcw on
dcw.up_pro_name = sample.dn_mat_name
"
),
PostQueryScript(
"dt = Current Data Table();
dt << Sort( By( :Name(\!"Batch/Reactor\!"),:Name(\!"EFT (h)\!") ), Order( Descending, Ascending ), Replace table );
dt:Batch/Reactor << set property( \!"value order\!", {Common Order( 0 ), Row Order Levels( 1 )} );
"
)
) << Run Foreground( UpdateTable( Current Data Table() ) );
自動化とスクリプトデータの探索と視覚化Re: ローカル データ フィルターの値の並べ替え順序を変更するにはどうすればよいですか?データ フィルターで使用されている列の値の順序付け列プロパティを設定してみてください。
Re: ローカル データ フィルターの値の並べ替え順序を変更するにはどうすればよいですか?このように使用している場合、Batch/Reactor は有効な列名ではないと思います。 :"Batch/Reacher"n に変更してみてください。また、念のため、ソート後に wait(0) を追加することもできます。
以下は、JMP サンプル テーブルと、クエリ後スクリプトの代わりに実行完了時を使用した例です。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Column(dt, 1) << Set NAme("Test/ABC");
dtquery = New SQL Query(
Version(130),
Connection("JMP"),
JMP Tables(
["Big Class" => "\C:\Program Files\JMP\JMPPRO\18\Samples\Data\Big Class.jmp"
]
),
QueryName("SQLQuery1"),
Select(
Column("Test/ABC", "t1"),
Column(
"age",
"t1",
Analysis Type("Ordinal"),
Numeric Format("Fixed Dec", "0", "NO", "")
),
Column("sex", "t1"),
Column("height", "t1", Numeric Format("Fixed Dec", "0", "NO", ""))
),
From(Table("Big Class", Alias("t1"))),
) << Run Foreground(
On Run Complete(
queryResult << Sort(By(:height), Replace Table, Order(Ascending));
wait(0);
queryResult:"Test/ABC"n << Set Property(
"Value Order",
{Common Order(0), Numerical Order(0), Row Order Levels(1)}
);
)
);

Re: ローカル データ フィルターの値の並べ替え順序を変更するにはどうすればよいですか?こんにちは、ジムさん
UI で次の操作を実行しました。
1. 列ヘッダーを右クリック
2. 列のプロパティ -> 値の順序
3. カスタム順序をクリックし、逆順をクリックします。
これは、SQL で生成されたデータ テーブルの現在の結果セットでは機能しました (並べ替え順序は、添付されたダッシュボードのデータ フィルターで保持されます)。ただし、SQL に新しい結果が表示されると、その結果は結果セットの下部 (およびダッシュボード データ フィルターの下部) に表示されます。
現在の結果セットに動的に適用されるように、JSL で値の順序付けをプロパティとして指定する方法はありますか?
ありがとう、
アンディ
Re: ローカル データ フィルターの値の並べ替え順序を変更するにはどうすればよいですか?以下は、Big Class データ テーブルの Sex という列の値の順序を設定する簡単な例です。
Names Default To Here( 1 );
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "/C:/Program Files/JMP/JMPPRO/19/Samples/Data/Big Class.jmp" );
dt:sex << set property( "Value Order", {Custom Order( {"M", "F"} ), Common Order( 0 )} );
列プロパティを設定するために必要な構文は、問題のプロパティを対話的に設定することで常に取得でき、その後このJSLを実行すると、構文がJMPログに表示されます。
dt:sex << get property( "Value Order" );
Re: ローカル データ フィルターの値の並べ替え順序を変更するにはどうすればよいですか?興味のある方のために、SQL クエリが実行されるたびに値の順序を動的に設定するために使用したコードを次に示します。これにより、データ テーブルに添付されたダッシュボードのローカル データ フィルターに必要な並べ替え順序が保持され、これが私の目標でした。
order by \!"Batch/Reactor\!" desc, \!"EFT (h)\!" asc
"
),
PostQueryScript(
"dt = Current Data Table();
br_values = column(\!"Batch/Reactor\!") << GetAsMatrix();
br_values_sorted = Sort Descending ( br_values );
br_values_sorted_list = as list (br_values_sorted);
dt:\!"Batch/Reactor\!" << Set Property(\!"Value Ordering\!",Eval List(br_values_sorted_list));
dt << sort( by(\!"Batch/Reactor\!"), replace table(1));"
)
) << Run Foreground( UpdateTable( Current Data Table() ) ); [...rest of SQL query...]<BR />