Expert de la communauté JMP, je viens de Chine.
La description suivante du problème provient de la traduction automatique. Ne vous inquiétez pas, la grammaire peut être un peu étrange.
Je souhaite créer une colonne de boutons pour écrire des scripts.
J'utilise principalement les méthodes suivantes pour créer des colonnes de boutons :
cb = Expr(Col Box("Title"));
for each( {v, i}, list,
Insert Into( cb, button box("name", Script...) )
);J'utilise inévitablement des variables comme "v", "I", etc. dans les "scripts", mais je trouve que ces variables sont toujours présentes dans les "scripts" en tant que variables plutôt que leurs valeurs réelles, ce qui empêche mes scripts de fonctionner correctement.
J'ai essayé d'utiliser Expr(), Eval() et d'autres fonctions pour convertir des variables en valeurs réelles, mais je n'ai pas pu obtenir l'effet souhaité.
J'ai simulé un scénario similaire en utilisant les exemples de données BigClass.jmp.
Supposons que ces étudiants participent à une sorte de compétition et doivent être regroupés par âge. Je souhaite créer une colonne de boutons contenant le nom de l'étudiant, puis cliquer sur ce bouton pour afficher son groupe correspondant.
Un exemple de script est le suivant :
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.
Merci beaucoup pour votre aide à résoudre mon problème de manière si efficace.
J'avais également envisagé d'utiliser Expr(), EvalExpr() et Eval() pour résoudre ce problème, mais ma compréhension de ces fonctions était insuffisante pour résoudre le problème.
Votre solution a non seulement résolu le problème en question, mais m'a également permis de mieux comprendre l'intégration de ces fonctions.
Encore une fois merci Jarmo.
Vous devrez évaluer les valeurs dans le script de vos boutons. Le simple fait d'ajouter Eval(EvalExpr()) et quelques Expr() à votre script devrait faire l'affaire (il existe également d'autres options)
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>