Come modificare l'ordinamento dei valori in un filtro dati locale?Ciao a tutti,
Sto utilizzando JMP 18 e ho un file JMP che utilizza una query SQL personalizzata per creare una tabella dati. Sono presenti diversi dashboard (composti da grafici creati nel Costruttore di grafici) allegati alla tabella dati. Alcuni dashboard contengono un filtro dati locale che consente agli utenti di controllare la selezione delle righe da visualizzare nei grafici associati.
Voglio cambiare l'ordinamento dei valori nel filtro dati locale. Poiché l'ordinamento della tabella dati sottostante non è un problema, ho provato a utilizzare il primo suggerimento nella risposta di @txnelson a questo messaggio (codice modificato di seguito). Ciò ordina la tabella dati come previsto, ma l'ordinamento della colonna Batch/Reactor non viene applicato al filtro dati locale (rimane nell'ordinamento originale, che sembra essere alfabetico).
La colonna Batch/Reactor è di carattere/nominale.
Qualcuno ha feedback sul motivo per cui questo codice non funziona come previsto o su altri approcci che potrei adottare?
Grazie,
Andy
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() ) );
Automazione e scriptingEsplorazione e visualizzazione dei datiRi: Come modificare l'ordinamento dei valori in un filtro dati locale?Prova a impostare la proprietà della colonna Ordinamento valori per le colonne utilizzate nei filtri dati.
Ri: Come modificare l'ordinamento dei valori in un filtro dati locale?Penso che Batch/Reactor non sia un nome di colonna valido se lo usi in questo modo. Prova a cambiarlo in:"Batch/Reacher"n. Potresti anche voler aggiungere wait(0) dopo l'ordinamento per essere sicuro.
Di seguito è riportato un esempio che utilizza la tabella di esempio JMP e On Run Complete anziché Post Query Script
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)}
);
)
);

Ri: Come modificare l'ordinamento dei valori in un filtro dati locale?Ciao Jim,
Ho fatto quanto segue nell'interfaccia utente:
1. fare clic con il pulsante destro del mouse sull'intestazione della colonna
2. Proprietà colonna -> Ordine valore
3. fare clic su Ordine personalizzato e quindi su Inverti
Ciò ha funzionato per il set di risultati corrente nella tabella dati generata da SQL (l'ordinamento persisteva nei filtri dati dei dashboard allegati). Tuttavia, quando vengono visualizzati nuovi risultati nell'SQL, tali risultati vengono visualizzati nella parte inferiore del set di risultati (e nella parte inferiore dei filtri dati del dashboard).
Esiste un modo per specificare l'ordinamento dei valori come proprietà nel JSL in modo che venga applicato dinamicamente al set di risultati corrente?
Grazie,
Andy
Ri: Come modificare l'ordinamento dei valori in un filtro dati locale?Ecco un semplice esempio che imposta l'ordine dei valori per la colonna denominata Sex nella tabella dati Big Class.
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 )} );
La sintassi che devi utilizzare per impostare una proprietà di colonna può sempre essere ottenuta impostando in modo interattivo la proprietà in questione, quindi esegui questo JSL e la sintassi verrà visualizzata nel registro JMP
dt:sex << get property( "Value Order" );
R: Come modificare l'ordinamento dei valori in un filtro dati locale?Per chiunque fosse interessato, ecco il codice che ho usato per impostare dinamicamente Value Order ogni volta che viene eseguita la query SQL. Questo ha reso persistente l'ordinamento desiderato nei filtri dati locali nelle dashboard allegate alla tabella dati, che era il mio obiettivo.
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 />