Experto de la comunidad JMP, soy de China.
La siguiente descripción del problema proviene de la traducción automática. No te preocupes porque la gramática puede ser un poco extraña.
Quiero crear una columna de botones para escribir algunos scripts.
Utilizo principalmente los siguientes métodos para crear columnas de botones:
cb = Expr(Col Box("Title"));
for each( {v, i}, list,
Insert Into( cb, button box("name", Script...) )
);Inevitablemente uso variables como "v", "I", etc. en "scripts", pero encuentro que estas variables siempre están presentes en los "scripts" como variables en lugar de sus valores reales, lo que hace que mis scripts no funcionen correctamente.
Intenté usar Expr (), Eval () y otras funciones para convertir variables a valores reales, pero no pude obtener el efecto deseado.
Simulé un escenario similar usando los datos de muestra de BigClass.jmp.
Supongamos que estos estudiantes participan en algún tipo de competencia y necesitan agruparse por edades. Quiero crear una columna de botones que contenga el nombre del estudiante y luego hacer clic en ese botón para mostrar su grupo correspondiente.
Un script de muestra es el siguiente:
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.
Muchas gracias por su ayuda para resolver mi problema de manera tan efectiva.
También había considerado utilizar Expr(), EvalExpr() y Eval() para solucionar este asunto, pero mi comprensión de estas funciones era insuficiente para resolver el problema.
Su solución no solo resolvió el problema en cuestión, sino que también me brindó una comprensión más profunda de la integración de estas funciones.
Una vez más, gracias Jarmo.
Tendrás que evaluar los valores en el script de tus botones. Simplemente agregar Eval(EvalExpr()) y algunos Expr() a su script debería ser suficiente (también hay otras opciones)
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>