Tabella di scripting Ordina per colonna definita dall'utenteAvvertenza: novizio di scripting @ lavoro. Sto lavorando su uno script, una parte del quale ordina la tabella dei dati in base alla colonna selezionata dall'utente (ottenuta dalla selezione ColList e Eval List).
Questo non funziona, fa apparire la finestra di dialogo Ordina, che non voglio:
dt << Sort( By(_userCol), Order(Ascending), Replace Table);
Quando passo il mouse su _userCol, la colonna assegnata viene mostrata nella finestra di scripting.Se utilizzo il nome esatto della colonna, funziona senza visualizzare la finestra di dialogo Ordina:
dt << Sort( By(:Timestamp), Order(Ascending), Replace Table);
Come posso scrivere questo usando la variabile _userCol?
Grazie!
Ri: Tabella di scripting Ordina per colonna definita dall'utenteL'ho appena preso su un altro thread.
1. prima aggiungi il controllo dell'elenco
Column( Data Table( "Summary" ),"ITEM") << Set Property(List Check, summary_items);
2. Eseguire l'ordinamento della tabella.
https://community.jmp.com/t5/Discussions/Custom-Sort-Order/td-p/3119
Ri: Tabella di scripting Ordina per colonna definita dall'utenteBeh... più o meno.
Se si imposta la proprietà della colonna "Value Ordering" per la colonna che si desidera ordinare e quindi si ordina in base a tale colonna, l'ordinamento risultante verrà ordinato in base all'ordine specificato.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dt:name << set property(
"value ordering",
{"ALICE", "BARBARA", "CHRIS", "ALFRED", "CLAY", "DAVID", "EDWARD", "CAROL", "AMY", "ELIZABETH", "DANNY",
"HENRY", "JACLYN", "JAMES", "JANE", "JEFFREY", "JOE", "JOHN", "KIRK", "LAWRENCE", "JUDY", "FREDERICK",
"LEWIS", "KATIE", "LESLIE", "LINDA", "MARION", "MARK", "LILLIE", "LOUISE", "MARY", "MICHAEL", "PATTY",
"WILLIAM", "SUSAN", "PHILLIP", "MARTHA", "ROBERT", "TIM"}
);
dt << sort( by( :name ), order( ascending ), replace table( 1 ) );Ri: Tabella di scripting Ordina per colonna definita dall'utenteSalve signore,
È possibile se posso ordinare la tabella in base a un elenco predefinito anziché in ordine crescente o decrescente. per esempio
dt = open("$sample_data\Big Class.jmp");
_userCol = "name";
dt << Sort( By(column(dt, _userCol)), Order(Descending), Replace Table);<BR /><BR />instead of the above, i like to order the table by name in a order given by "list" below?
list={"BARBARA","ALFRED","CHRIS","ALICE","AMY","CAROL","CLAY","DANNY","DAVID","EDWARD","ELIZABETH","FREDERICK","HENRY","JACLYN","JAMES","JANE","JEFFREY","JOE","JOHN","JUDY","KATIE","KIRK","LAWRENCE","LESLIE","LEWIS","LILLIE","LINDA","LOUISE","MARION","MARK","MARTHA","MARY","MICHAEL","PATTY","PHILLIP","ROBERT","SUSAN","TIM","WILLIAM"};Ri: Tabella di scripting Ordina per colonna definita dall'utente<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Grazie. Risolto il mio problema. Successivamente ho appreso come utilizzare As Column(_usercol) quando si utilizza la colonna in una formula.
Ri: Tabella di scripting Ordina per colonna definita dall'utenteDevi usare il colonna funzione o il eval funzione:
dt = open("$sample_data\Big Class.jmp");
_userCol = "age";
dt << Sort( By(column(dt, _userCol)), Order(Ascending), Replace Table);
O
dt << Sort( By(eval(_userCol)), Order(Ascending), Replace Table);