사용자가 범위 내에서 입력을 제공하도록 강제안녕하세요, 저는 JMP를 처음 접했고 사용자가 잘못된 숫자를 입력하지 못하도록 오류를 발생시키는 스크립트를 작성하는 방법을 잘 모르겠습니다. 사용자가 결국 변수에 저장되는 숫자를 입력하기를 원하지만 숫자가 1-4 범위를 벗어나면 입력하라는 메시지가 다시 표시됩니다.
이것은 내가 오류 검사 없이 지금까지 가지고 있는 것입니다.
Names Default To Here (1);
num = 0;
w = New Window( "Prompt",
<<MODAL></MODAL>
이 작업을 수행하는 데 도움이나 제안을 주시면 감사하겠습니다!
스크립팅Re: 사용자가 범위 내에서 입력을 제공하도록 강제함수 호출 후에 닫기 창을 추가하기만 하면 됩니다.
b1 = button box("First Program",
program1();
nw << close window();
),
Re: 사용자가 범위 내에서 입력을 제공하도록 강제완벽하게 작동합니다! 다시 한번 감사합니다!
Re: 사용자가 범위 내에서 입력을 제공하도록 강제새 창 뒤에 추가 코드가 있는 경우 << modal을 사용하여 새 창을 모달 창으로 변경할 수 있습니다(다른 작은 변경이 필요할 수 있음). 이 예제는 또한 <
nw = new window("Test Options", << modal,
panel box("Click the button to run the desired program",
lineup box(ncol(1),
b1 = button box("First Program",
program1();
okBtn << Click();
),
b2 = button box("Second Program",
program2();
okBtn << Click();
),
b3 = button box("Third Program",
program3();
okBtn << Click();
),
b4 = button box("Fourth Program",
program4();
okBtn << Click();
),
),
),
h list box(okbtn = Button Box("OK"), cancelBtn=ButtonBox("Cancel"))
);
Show("shouldnt execute before window is closed");Re: 사용자가 범위 내에서 입력을 제공하도록 강제재편집: 실제로 새 창 내에서 버튼 실행 후에 오는 모든 코드는 어떤 이유로 버튼에 연결된 프로그램보다 먼저 실행되는 것 같습니다. 왜 이런 일이 일어나는지 아는 사람이 있습니까?
Re: 사용자가 범위 내에서 입력을 제공하도록 강제대단해! 공유해 주셔서 감사합니다. 마지막으로 이것은 매우 중요한 기능은 아니지만 프로그램을 실행하는 버튼을 누른 다음 사용자가 '종료'를 누르지 않아도 자동으로 창이 닫히는 방법이 있는지 알고 있습니까?
Re: 사용자가 범위 내에서 입력을 제공하도록 강제모든 사용자가 액세스할 수 있는 파일 공유의 파일을 참조하면 작동합니다.
기본 JSL 코드 자체에서 실행할 프로그램을 별도의 기능으로 포함할 수도 있습니다.예를 들면 다음과 같습니다.
// First program
program1 = function({},
show("Running program1");
// JSL code for first program
);
// Second program
program2 = function({},
show("Running program2");
// JSL code for second program
);
// Third program
program3 = function({},
show("Running program3");
// JSL code for third program
);
// Fourth program
program4 = function({},
show("Running program4");
// JSL code for fourth program
);
nw = new window("Test Options",
panel box("Click the button to run the desired program",
lineup box(ncol(1),
b1 = button box("First Program",
program1();
),
b2 = button box("Second Program",
program2();
),
b3 = button box("Third Program",
program3();
),
b4 = button box("Fourth Program",
program4();
),
),
),
bexit = button box("Exit",
nw << close window();
),
);
함수에 대한 자세한 내용은 JSL 설명서를 참조하십시오.
Re: 사용자가 범위 내에서 입력을 제공하도록 강제안녕! 그것은 문제에 대한 훌륭한 접근 방식입니다. 그래도 코드가 있는 사람이 버튼에 연결된 동일한 프로그램을 실행할 수 있도록 모든 프로그램 스크립트를 공유할 수 있는지 궁금합니다. 아니면 파일 디렉토리 경로가 .jsl 스크립트를 다운로드하는 모든 사용자에게 고유한 경우 가능하지 않습니까?
Re: 사용자가 범위 내에서 입력을 제공하도록 강제사용자가 선택한 항목(1-4)에 따라 다른 프로그램을 실행하려면 대신 버튼을 사용합니다.다음과 같이 표시됩니다.

코드는 다음과 같습니다.버튼을 둘러싸기 위해 패널 상자를 사용하고 버튼 상자의 양쪽을 정렬하기 위해 라인업 상자를 사용하고 있습니다.실행할 프로그램은 c:\myfiles에 저장되며 program1.jsl, program2.jsl 등으로 이름이 지정됩니다. 상황에 맞게 폴더 및 JSL 프로그램 이름을 변경하십시오.
nw = new window("Test Options",
panel box("Click the button to run the desired program",
lineup box(ncol(1),
b1 = button box("First Program",
include("c:\myfiles\program1.jsl");
nw << close window();
),
b2 = button box("Second Program",
include("c:\myfiles\program2.jsl");
nw << close window();
),
b3 = button box("Third Program",
include("c:\myfiles\program3.jsl");
nw << close window();
),
b4 = button box("Fourth Program",
include("c:\myfiles\program4.jsl");
nw << close window();
),
),
),
bexit = button box("Exit",
nw << close window();
),
);Re: 사용자가 범위 내에서 입력을 제공하도록 강제다시 한 번 감사드립니다. 매우 유용합니다!
Re: 사용자가 범위 내에서 입력을 제공하도록 강제그것은 동일해야하지만 약간 이상하게 보입니다. Scripting Index의 모달 예제 사용:
이 부분은 기본적으로 if의 condition1입니다.
ex = New Window("Dialog() example",
<<MODAL></MODAL>그리고 이것이 결과입니다 1
ex["variable"]
그리고 returnElse:
"CANCEL"
그리고 이러한 결과와 if 조건 결과에 따라 실행될 기본적으로 마지막 줄 때문에 로그에 인쇄됩니다. 다음 두 가지 짧은 스크립트를 사용하여 이를 테스트할 수 있습니다.
a = 1; //will print 1 to Log as this is the only and last row in script
a = 1;
Write(); //will print this as it is the last row of code
그리고 ex 변수가 어떻게 작동하는지 의미했다면 스크립팅 인덱스에서 예제를 실행하고 마지막에 Show(ex)를 추가하여 상당히 쉽게 확인할 수 있습니다.
다음은 대괄호와 주석을 추가하여 if 문을 좀 더 명확하게 만든 예이며 ex 변수에 대한 Show()도 추가했습니다.
Names Default To Here(1);
If(
( //condition1 starts
ex = New Window("Dialog() example",
<<MODAL></MODAL>(Show() "CANCEL"은 취소를 눌렀을 때 코드의 마지막 줄이 아니며 인쇄되지 않기 때문에 취소를 눌러도 변수 값이 업데이트됨을 보여줍니다.)
바라건대 나는 모든 것을 올바르게 설명했습니다. JMP 도움말 및 스크립팅 가이드에서 자세한 정보를 찾을 수 있습니다. 모달 창 구성
Re: 사용자가 범위 내에서 입력을 제공하도록 강제저건 완벽 해! 정말 고맙습니다! :^)
학습 목적으로 코드의 끝은 무엇을 의미합니까? 나는 보통 그것의 If(조건 1, 결과 1, 조건 2, 결과 2, ..... resultElse); 그러나 나는 이것에 익숙하지 않습니다.
ex["button"] == 1;
,
ex["variable"],
"CANCEL
Re: 사용자가 범위 내에서 입력을 제공하도록 강제<< On Validate()를 사용할 수 있다고 생각합니다.
Names Default To Here(1);
If(
ex = New Window("Dialog() example",
<<MODAL></MODAL>
편집하다:
아니면 버튼을 회색으로 표시/비활성화하는 것을 의미합니까?
Names Default To Here(1);
If(
ex = New Window("Dialog() example",
<<MODAL></MODAL>Re: 사용자가 범위 내에서 입력을 제공하도록 강제좋은 생각이야! 불행하게도 사용자가 실수로 6을 입력했지만 실제로는 3을 입력하려는 경우 입력이 자동으로 4로 선택됩니다. 문제가 조금 복잡하다면 죄송합니다.
Re: 사용자가 범위 내에서 입력을 제공하도록 강제값이 1-4가 아닌 경우 사용자가 OK 버튼을 누르고 창을 종료하지 못하도록 하는 방법이 있습니까? 이대로 사용자가 창을 종료하고 입력이 0으로 설정될 것이라고 생각합니다.
Re: 사용자가 범위 내에서 입력을 제공하도록 강제이것을 이전에 본 적이 없었습니다(또는 이미 잊어버렸습니다). << 최소값 설정 및 << 최대값 설정 사용:
Names Default To Here (1);
num = 1;
w = New Window( "Prompt",
<<MODAL></MODAL>
Re: 사용자가 범위 내에서 입력을 제공하도록 강제그런 구현을 위해 Radio Box를 사용하는 것이 더 간단하지 않을까요?
Names Default To Here(1);
New Window("Example", rb = Radio Box({"True", "False", "None of the above"}, Print("Selection Changed")));Re: 사용자가 범위 내에서 입력을 제공하도록 강제안녕하세요, 답장을 보내 주셔서 감사합니다! 사용자의 실수에 따라 코드를 조정하는 대신 사용자가 범위 내의 숫자를 선택하도록 강제하고 싶습니다. 예를 들어, 각 숫자가 실행될 코드 조각과 연결될 것이라고 생각합니다.
Names Default To Here (1);<BR />num = 0;<BR />w = New Window( "Prompt",
<<MODAL></MODAL>
그런 다음 입력 == 1인 경우 이 코드를 실행하고 입력 == 2인 경우 다른 코드를 실행하는 if 문을 코딩합니다. 따라서 내 상황에서는 범위를 벗어나면 숫자가 1 또는 4로 자동 수정되는 것을 원하지 않습니다. 혼란스러웠다면 죄송합니다!
Re: 사용자가 범위 내에서 입력을 제공하도록 강제숫자 편집 상자를 사용하고 입력에 대한 하한 및 상한을 설정하고 경계가 유효한지 여부를 선언할 수도 있습니다. 확인할 표현식이나 함수를 작성할 필요가 없습니다. 이 디스플레이 상자에 이미 내장되어 있습니다.
Re: 사용자가 범위 내에서 입력을 제공하도록 강제다음은 값 1-4만 허용하도록 요구 사항을 처리하는 코드 수정입니다.
Names Default To Here( 1 );
num = 0;
input = 0;
w = New Window( "Prompt",
<<MODAL> 4 | str1 << get < 1,
str1 << set( 0 )
)
)
)
),
H List Box( Button Box( "Cancel" ), Button Box( "OK" ) )
),
);
If( w["button"] == 1,
input = w["str1"]
);
Show( input );</MODAL>Re: 사용자가 범위 내에서 입력을 제공하도록 강제어떤 식으로든 set 함수를 사용할 수 있습니다.
다음은 사용자가 1 미만의 값을 입력하려고 하면 값을 1로, 4 이상을 입력하면 4로 설정한 예입니다.
Names Default To Here (1);
num = 1;
w = New Window( "Prompt",
<<MODAL> 4, this << set(4)
);
))
)
),
);
input = w["str1"];
show(input);</MODAL>