많은 항목의 숫자 편집 상자에서 값을 반환하는 방법안녕하세요, JMPers 님,
숫자 편집 상자의 반환 값에 대한 몇 가지 문제가 있습니다.
다른 포스팅을 참고했어요( 숫자 상자 결합 , 새 창에서 모든 데이터 수집 ), 내 코드를 만들어 보세요.
가치를 부여할 항목이 많기 때문에 모든 항목에 숫자를 입력하는 것은 나에게 실용적이지 않습니다.
따라서 "새 창" 및 "추가"는 많은 항목에 대한 반환 값을 처리하는 데 사용됩니다.
결국 코드는 내가 입력한 숫자가 아닌 기본값(1)을 반환합니다.
내 코드에서 어떤 단계가 잘못되었는지 확인하는 데 도움을 줄 수 있나요?
고급에 큰 도움을 주셔서 감사합니다.
list = {"A", "B", "C","D","E","F","G"};
val={};
nw = New Window( "example",
v = V List Box(),
Button Box( "OK", Set Script( nw< )
);
show(val);
Re: 여러 항목의 숫자 편집 상자에서 값을 반환하는 방법확인을 클릭하지 않아도 JMP가 처리를 계속한다는 것이 맞습니다. 2가지 중 하나를 수행하지 않는 한. 디스플레이 창을 "모달" 창으로 만들기
nw = New Window("Test Window", Modal, ....................);
그러면 창이 지워질 때까지 처리가 강제로 대기하게 됩니다.
또는
코드를 Functions() 또는 Expressions, Expr()로 구조화하면 창 코드나 다른 Function() 또는 Expr()에서 명시적으로 호출될 때까지 그 안에 있는 코드가 실행되지 않습니다.
Re: 여러 항목의 숫자 편집 상자에서 값을 반환하는 방법안녕하세요 짐,
전문적인 답변 정말 감사드립니다.
나는 여러분의 모든 제안을 바탕으로 코드를 작성했지만 순차적 실행에 대한 문제를 발견했습니다(아직 "확인"을 클릭하지 않았더라도 JSL은 다음 코드를 모두 실행합니다).
따라서 올바른 실행 순서를 보장하기 위해 다음 코드를 모두 Set Script에 넣어야 합니다.
내 마음속에는 2가지 선택지가 있는데,
1) 이 방법을 <<모달에서 사용할 수 있나요? <
2) 여기서 wait(0)이 작동합니까? 코드 중 어디에 넣어야 할까요?
여기 내 문제를 보여주는 단순화된 코드가 있습니다. 두 줄을 파란색으로 표시하여 내가 한 일을 보여줍니다.
Names Default To Here( 1 );
list = {"A", "B", "C", "D", "E", "F", "G"};
val = {};
nw = New Window( "example",
v = V List Box(),
Button Box( "OK",
Set Script(
nw << close window;
New Window( "result", < );
)
)
);
For( i = 1, i <= N Items( list ), i++,
Insert Into( val, 1 );
(v << append(
Outline Box( "",
H List Box(
Text Box( list[i] ),
Eval(
Substitute(
Expr(
exq = Number Edit Box(
1,
10,
<nw2 = New Window( "fake result", <
Re: 여러 항목의 숫자 편집 상자에서 값을 반환하는 방법다음은 다음에서 가져온 예제의 수정된 버전입니다.
도움말==>스크립팅 인덱스==>TextEditBox==>함수 설정
"{this}"의 목적을 보여주는 것입니다.
Names Default To Here( 1 );
New Window( "Example",
xx = Text Edit Box( "pw?" ),
Text Box( "" )/* here's the sibling box, waiting to show the pw */
);
xx << SetFunction(
Function( {this},
this << passwordStyle( 1 );/* hide my display*/ /* put my password into my sibling's display */
(this << sib) << settext( this << getText );
)
);Re: 여러 항목의 숫자 편집 상자에서 값을 반환하는 방법Jim에게 감사합니다. 정말 좋은 방법이고 "Expr", "대체" 및 "Eval"에 대해 더 많이 이해하는 데 도움이 됩니다.
<< SetFunction ( Function ( {this} , val[i] = exq << get ) )의 경우,
나는 "this"를 제거하고 빈 괄호를 남겨 둘 수 있다고 생각합니다. (시도해봤지만 여전히 효과가 있었습니다)
브래킷을 비워두면 잠재적인 위험이 있습니까?
감사합니다.
Re: 여러 항목의 숫자 편집 상자에서 값을 반환하는 방법당신이 겪고 있는 문제는 "exq"의 개별 사양이 고유한 인스턴스에 유지되고 있다고 가정한다는 것입니다. 실제로 일어나는 일은 그것들이 서로 겹쳐서 쓰여지고 있다는 것입니다. 아래 코드는 인스턴스를 구분합니다.
Names Default To Here( 1 );
list = {"A", "B", "C", "D", "E", "F", "G"};
val = {};
nw = New Window( "example", v = V List Box(), Button Box( "OK", Set Script( nw << close window ) ) );
For( i = 1, i <= N Items( list ), i++,
Insert Into( val, 1 );
(v << append(
Outline Box( "",
H List Box(
Text Box( list[i] ),
Eval(
Substitute(
Expr(
__exq__ = Number Edit Box(
1,
10,
<<SETFUNCTION></SETFUNCTION>