JMP-Community-Experte, ich komme aus China.
Die folgende Problembeschreibung stammt aus einer maschinellen Übersetzung. Bitte haben Sie keine Bedenken, wenn die Grammatik etwas seltsam sein kann.
Ich möchte eine Schaltflächenspalte erstellen, um einige Skripte zu schreiben.
Zum Erstellen von Schaltflächenspalten verwende ich hauptsächlich die folgenden Methoden:
cb = Expr(Col Box("Title"));
for each( {v, i}, list,
Insert Into( cb, button box("name", Script...) )
);Ich verwende in „Skripten“ zwangsläufig Variablen wie „v“, „I“ usw., stelle jedoch fest, dass diese Variablen in „Skripten“ immer als Variablen und nicht als ihre tatsächlichen Werte vorhanden sind, was dazu führt, dass meine Skripte nicht richtig funktionieren.
Ich habe versucht, Variablen mit Expr(), Eval() und anderen Funktionen in tatsächliche Werte umzuwandeln, habe jedoch nicht den gewünschten Effekt erzielt.
Ich habe ein ähnliches Szenario mit den Beispieldaten von BigClass.jmp simuliert.
Angenommen, diese Schüler nehmen an einem Wettbewerb teil und müssen nach Alter gruppiert werden. Ich möchte eine Schaltflächenspalte erstellen, die den Namen des Schülers enthält, und dann auf diese Schaltfläche klicken, um die entsprechende Gruppe anzuzeigen.
Ein Beispielskript sieht wie folgt aus:
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.
Vielen Dank für Ihre Hilfe bei der so effektiven Lösung meines Problems.
Ich hatte auch erwogen, zur Lösung dieses Problems Expr(), EvalExpr() und Eval() zu verwenden, aber mein Verständnis dieser Funktionen reichte nicht aus, um das Problem zu lösen.
Ihre Lösung hat nicht nur das bestehende Problem behoben, sondern mir auch ein tieferes Verständnis für die Integration dieser Funktionen vermittelt.
Nochmals vielen Dank, Jarmo.
Sie müssen die Werte in Ihrem Schaltflächenskript auswerten. Fügen Sie einfach Eval(EvalExpr()) und einige Expr() zu Ihrem Skript hinzu. (Es gibt auch andere Optionen.)
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>