Esperto della community JMP, vengo dalla Cina.
La seguente descrizione del problema proviene dalla traduzione automatica. Per favore, non preoccuparti che la grammatica possa essere un po' strana.
Voglio creare una colonna di pulsanti per scrivere alcuni script.
Utilizzo principalmente i seguenti metodi per creare colonne di pulsanti:
cb = Expr(Col Box("Title"));
for each( {v, i}, list,
Insert Into( cb, button box("name", Script...) )
);Utilizzo inevitabilmente variabili come "v", "I", ecc. negli "script", ma trovo che queste variabili siano sempre presenti negli "script" come variabili anziché come valori effettivi, il che fa sì che i miei script non funzionino correttamente.
Ho provato a utilizzare Expr(), Eval() e altre funzioni per convertire le variabili in valori effettivi, ma non sono riuscito a ottenere l'effetto desiderato.
Ho simulato uno scenario simile utilizzando i dati di esempio BigClass.jmp.
Supponiamo che questi studenti partecipino a qualche tipo di competizione e debbano essere raggruppati per età. Desidero creare una colonna di pulsanti che contenga il nome dello studente e quindi fare clic su quel pulsante per visualizzare il gruppo corrispondente.
Uno script di esempio è il seguente:
Names Default To Here( 1 );
aa_AgeGroup = [10 => "Age Group 1",
11 => "Age Group 1",
12 => "Age Group 1",
13 => "Age Group 1",
14 => "Age Group 2",
15 => "Age Group 2",
16 => "Age Group 2",
17 => "Age Group 2"];
dt = Open( "$sample_data/big class.jmp" );
list_name = dt:name << Get Values;
list_age = dt:age << Get Values;
cb_button = Expr( Col Box( "Name" ) );
fun = Function( {this, ver_age}, //
New Window( "Age Group", //
<<MODAL></MODAL><CODE class=" language-jsl">I hope my friends can teach me how to make variables stored in the button script as actual values, thank you.
Grazie mille per il tuo aiuto nel risolvere il mio problema in modo così efficace.
Avevo anche considerato l'utilizzo di Expr(), EvalExpr() ed Eval() per affrontare questo problema, ma la mia comprensione di queste funzioni era insufficiente per risolvere il problema.
La tua soluzione non solo ha risolto il problema in questione, ma mi ha anche fornito una comprensione più profonda dell'integrazione di queste funzioni.
Ancora una volta, grazie Jarmo.
Dovrai valutare i valori nello script dei pulsanti. Basta aggiungere Eval(EvalExpr()) e alcuni Expr() allo script per risolvere il problema (ci sono anche altre opzioni)
Names Default To Here(1);
aa_AgeGroup = [10 => "Age Group 1",
11 => "Age Group 1",
12 => "Age Group 1",
13 => "Age Group 1",
14 => "Age Group 2",
15 => "Age Group 2",
16 => "Age Group 2",
17 => "Age Group 2"];
dt = Open("$sample_data/big class.jmp");
list_name = dt:name << Get Values;
list_age = dt:age << Get Values;
cb_button = Expr(Col Box("Name"));
fun = Function({this, ver_age}, //
New Window("Age Group", //
<<MODAL></MODAL>