JMP コミュニティ エキスパート、私は中国出身です。
以下の問題の説明は機械翻訳によるものです。文法が少しおかしくても気にしないでください。
スクリプトを記述するためのボタン列を作成したいと思います。
ボタン列を作成するには、主に次の方法を使用します。
cb = Expr(Col Box("Title"));
for each( {v, i}, list,
Insert Into( cb, button box("name", Script...) )
);私は必然的に「スクリプト」で「v」、「I」などの変数を使用しますが、これらの変数は実際の値ではなく変数として常に「スクリプト」に存在し、スクリプトが正しく動作しない原因になっていることがわかりました。
Expr()、Eval()、その他の関数を使用して変数を実際の値に変換しようとしましたが、期待した効果が得られませんでした。
BigClass.jmp サンプル データを使用して同様のシナリオをシミュレートしました。
これらの生徒が何らかの競技に参加しており、年齢別にグループ化する必要があるとします。生徒の名前を含むボタン列を作成し、そのボタンをクリックして対応するグループを表示したいと思います。
サンプルスクリプトは次のとおりです。
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.
私の問題を効果的に解決するためにご協力いただき、誠にありがとうございます。
この問題に対処するために、Expr()、EvalExpr()、Eval() を利用することも検討しましたが、これらの関数の理解が不十分で問題を解決できませんでした。
あなたの解決策は、当面の問題を解決しただけでなく、これらの機能の統合についてのより深い理解も提供してくれました。
改めて、Jarmoに感謝します。
ボタン スクリプトに値を評価する必要があります。スクリプトに Eval(EvalExpr()) といくつかの Expr() を追加するだけでうまくいきます (他のオプションもあります)
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>