리스트박스에서 선택한 항목을 가져오는 JSL 동작 방식이 변경되었나요?현재 @David_Burnham 님 의 JSL 스크립트 작성법에 대한 훌륭한 교육 영상을 보고 있습니다.
7분 28초까지는 모든 것이 예상대로 작동합니다. 하지만 약 8분 13초, 정확히 창이 모달 창으로 변환되는 시점부터 이 코드가 오류를 발생시킵니다.
// doesn't work:
lst = {"A", "B", "C"};
New Window("Select", << Modal,
Border Box(top(10), bottom(10), left(15), right(10),
V List Box(
TextBox("Select the predictor variable", <
<SETFONTSTYLE></SETFONTSTYLE>
<BR /> <P>여기서 해결책을 찾은 것 같습니다. <A href="https://community.jmp.com/t5/Discussions/How-to-get-specific-input-values-from-modal-windows-to-be-placed/m-p/483379#U483379" class="lia-mention-container-editor-message lia-img-icon-forum-thread lia-fa-icon lia-fa-forum lia-fa-thread lia-fa" target="_blank">모달 창에서 특정 입력값을 가져와 JMP 스크립트에 저장하는 방법입니다.</A> 적어도 아래 스크립트를 실행하고 모달 창의 "확인" 버튼을 누르면 <FONT face="courier new,courier" color="#0000FF">sel 함수가</FONT> 선택된 값 목록을 반환합니다.</P> <P><U><STRONG>스크립트</STRONG></U>:</P> <BR />
<CODE class=" language-jsl">// works
NewWindow("Select", <
<MODAL>
<CODE class=" language-jsl"> <BR /> <P><U><STRONG>샘플 출력</STRONG></U>:</P> <CODE class=" language-jsl">sel = {"A", "B"};
{Button( 1 )} // what is this? 제가 이해하고 싶은 세 가지:
- 제가 맨 위에 올린 원래 코드에 문제가 있는 건가요(// 작동하지 않음)? 아니면 영상이 녹화된 이후로 JSL의 동작 방식이 바뀐 건가요?
- 반환 값 {Button(1)}을 이해할 수 없습니다. 왜 여기에 있는 건가요? ButtonBox() 에서 나온 값이라고 생각하지만 스크립팅 인덱스가 도움이 되지 않습니다.
- 사용자 지정 버튼을 만드는 게 맞는 방향일까요?
편집하다:
해결 방법은 안내 영상에 나와 있습니다.
lst = {"A", "B", "C"};
NewWindow("Select", <
<MODAL></MODAL>
제목: 리스트 박스에서 선택한 항목 가져오기 - JSL의 동작 방식 변경 관련 질문1. 모달 창이 닫힌 후에는 << return result를 사용하여 값을 반환하지 않는 한 더 이상 해당 값에 접근할 수 없습니다.
2. 버튼(1)은 OK 버튼이 눌렸음을 의미하며 이를 사용하여 스크립트의 흐름을 제어할 수 있습니다.
3. 네, '확인' 버튼을 눌렀을 때 값을 가져오는 것은 좋은 선택입니다.
저는 보통 << Return Result를 먼저 시도해보고, 현재 창에서 작동하지 않으면 확인 버튼을 눌렀을 때 값을 가져옵니다. 모달 대화 상자를 사용할 때는 (거의) 항상 확인 및 취소 버튼을 추가합니다. 비록 필수적인 것은 아니지만 요. (스크립팅 가이드 > 디스플레이 트리 > JSL의 모달 창 > 모달 창 구성 )
아래는 << 결과 반환>을 사용한 예입니다.
Names Default To Here(1);
lst = {"A", "B", "C"};
nw = New Window("Modal Dialog example",
<
<TYPE></TYPE>
<P>그리고 원하는 대로 작동하지 않는 경우도 있을 수 있습니다 (선택된 항목이 아니라 콜리스트 상자에 추가된 항목을 원합니다).</P> <BR /> <BR /> <CODE class=" language-jsl">Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("Modal Dialog example",
<
<TYPE></TYPE> <BR /> <BR />
제목: 리스트 박스에서 선택한 항목 가져오기 - JSL의 동작 방식 변경 관련 질문감사합니다! 언제나처럼 정말 고맙습니다! 그런데 제가 원래 게시글에 링크한 영상에서는 문제가 없는데 여기서는 정상적으로 작동하는 게 여전히 이해가 안 가네요.
제목: 리스트 박스에서 선택한 항목 가져오기 - JSL의 동작 방식 변경 관련 질문JMP 구버전이나 타이밍 문제와 관련이 있을 수 있습니다.