특별한 네임스페이스(예: 상자, 창 등)로 설정된 변수에 액세스할 수 있다면 좋을 것 같습니다.다음 스크립트를 참조하십시오.
Names Default To Here( 1 );
testbox = Function( {items, win_index = 1, box_index = 1},
{default local},
ctb = Context Box(
box:win_index = win_index;
box:box_index = box_index;
box:hlb = H List Box(
box:btn_close = Button Box( "Close Me", box:hlb << delete ),
box:btn_get = Button Box( "Get Selected", Print( box:lb_items << get Selected ) ),
box:btn_find = Button Box( "Find Me", Print( box:win_index, box:box_index ) ),
box:btn_select = Button Box( "Select
Me", box:hlb << Select ),
box:btn_deselect = Button Box( "DeSelect Me", box:hlb << DeSelect ),
box:lb_items = List Box( items )
);
);
Return( ctb );
);
nw = new window("Test Window",
window:win_index = 14;
window:box_index = 28;
cont_box = testbox( {"1", "2", "3"}, 3, 4 ),
textbox("Some stuff")
);
nw:win_index 및 cont_box:win_index에 액세스할 수 있고 값이 올바르게 나올 수 있다면 환상적일 것입니다. 현재는 EvalContextBox 내부에서만 네임스페이스에 액세스할 수 있습니다.
같게 @vince_faller 의 응답입니다.
현재 개발 중이며 가을에 제공될 JMP 15에서 이 문제가 해결되었음을 알려드리게 되어 기쁩니다.이제 참조를 사용하여 참조하는 개체 내에서 범위가 지정된 변수에 액세스할 수 있습니다. 여기에는 창, 컨텍스트 상자, JMP 응용 프로그램 및 JMP 응용 프로그램 모듈 인스턴스가 포함됩니다. 예를 들어 창 참조 w가 있는 경우 w:var 및 Namespace(w)가 이제 작동합니다.