如何更改本地資料過濾器中值的排序順序?大家好,
我正在使用 JMP 18 並擁有一個使用自訂 SQL 查詢來建立資料表的 JMP 檔案。資料表附加了多個儀表板(由在圖形產生器中建立的圖形組成)。某些儀表板包含本機資料過濾器,供使用者控制應在關聯圖表中顯示的選擇行。
我想更改本地資料過濾器中值的排序順序。由於基礎資料表的排序不是問題,因此我嘗試使用@txnelson 對此帖子的回復中的第一個建議(下面編輯了代碼)。這會按預期對資料表進行排序,但 Batch/Reactor 列的排序順序不會應用於本地資料過濾器(它保留原始排序順序,看起來是按字母順序排列的)。
批次/反應器列是字元/標稱。
有人對為什麼此程式碼無法按預期工作或我可以採取的其他方法有回饋嗎?
謝謝,
安迪
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() ) );
自動化和腳本編寫數據探索和視覺化回覆:如何更改本地資料過濾器中值的排序順序?嘗試為資料篩選器中使用的欄位設定「值排序」列屬性。
回覆:如何更改本地資料過濾器中值的排序順序?我認為如果您像這樣使用 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)}
);
)
);

回覆:如何更改本地資料過濾器中值的排序順序?嗨吉姆,
我在使用者介面中執行了以下操作:
1. 右鍵單擊列標題
2. 列屬性->值順序
3. 按一下“自訂訂單”,然後按一下“反向”
這適用於 SQL 產生的資料表中的目前結果集(排序順序保留在附加儀表板的資料篩選器中)。但是,當 SQL 中出現新結果時,這些結果將顯示在結果集的底部(以及儀表板資料篩選器的底部)。
有沒有辦法將值排序指定為 JSL 中的屬性,以便將其動態應用於目前結果集?
謝謝,
安迪
回覆:如何更改本地資料過濾器中值的排序順序?下面是一個簡單的範例,它為 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" );
回覆:如何更改本地資料過濾器中值的排序順序?對於任何有興趣的人,這裡是我用來在每次執行 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 />