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>