대화형 인터페이스에서 데이터 입력<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕,
JSL에서는 사용자가 열에 값을 입력할 수 있는 대화형 인터페이스를 만들고 싶습니다. 열은 연속형 유형이어야 합니다.
예를 들어, 사용자는 열에 값을 입력하는 대화 상자에 값을 입력합니다.
x = 상한, y = 하한
연령명 상한 하한
40 베드로 30 45
누구든지 이 작업을 수행하는 방법에 대한 제안이 있습니까?
- 앤더스
Re: 대화형 인터페이스에서 데이터 입력행별 편집이 괜찮다면 다음 사항도 언급하고 싶었습니다.
이름의 기본값은 여기에 있습니다. ( 1 ) ;
// 새 데이터 테이블과 해당 열을 만듭니다.
dt = 새 테이블 ( "제한" ) ;
dt << 새 열 ( "하한" , 숫자 , 마디 없는 ) ;
dt << 새 열 ( "상한" , 숫자 , 마디 없는 ) ;
dt << 행편집기 ;
이는 USL > LSL 요구 사항을 적용하지 않는다는 단점이 있지만 'dt'에 대한 변경 사항을 구독하면 가능합니다('도움말 > 스크립팅 인덱스'에서 '구독' 검색). 또한 테이블의 열에 열 속성을 추가할 수 있다는 점에 유의하세요. http://www.jmp.com/support/help/Expression_Data.shtml , 여기에는 값에 대한 '범위 확인'이 포함됩니다.
Re: 대화형 인터페이스에서 데이터 입력정말 감사합니다. 이것이 바로 제가 찾고 있던 것 이상이었습니다!
건배
-앤더스
Re: 대화형 인터페이스에서 데이터 입력앤더스,
내가 원하는 것을 따르고 있다면 아래 스크립트는 상한과 하한을 입력하고 이를 데이터 테이블에 추가합니다.예제가 수행하는 작업을 여러분이 볼 수 있도록 스크립트에 주석을 달았습니다.
이름의 기본값은 여기에 있습니다( 1 );
// 새 데이터 테이블과 해당 열을 만듭니다.
dt = 새 테이블( "한계" );
dt << 새 열( "상한값", 숫자, 연속형 );
dt << 새 열( "LowerLimit", 숫자, 연속형 );
// 데이터를 입력할 디스플레이 창을 엽니다.
InputWindow = 새 창( "입력 입력",
// 디스플레이 위치를 구조화하기 위해 수직 목록 상자를 추가합니다.
V 목록 상자(
// 공간 추가
스페이서 박스( 크기( 1, 10 ) ),
// 명령 텍스트를 표시합니다.
텍스트 상자( " 입력 내용을 입력하세요" ),
스페이서 박스( 크기( 1, 10 ) ),
// 다음 디스플레이는 나란히 있어야 합니다.
H 목록 상자(
// 사용자에게 어떤 데이터를 입력할지 알려주는 텍스트를 표시합니다.
텍스트 상자( "하한값을 입력하세요" ),
스페이서 박스( 크기( 10, 1 ) ),
// 숫자 편집 상자를 사용하여 사용자 입력을 캡처하고
// 표시 개체에 "LLimit"이라는 이름을 지정합니다.
LLimit = 숫자 편집 상자( . ),
스페이서 박스( 크기( 10, 1 ) ),
// 사용자에게 어떤 데이터를 입력할지 알려주는 텍스트를 표시합니다.
텍스트 상자( "상한값을 입력하세요" ),
스페이서 박스( 크기( 10, 1 ) ),
// 숫자 편집 상자를 사용하여 사용자 입력을 캡처하고
// 표시 개체에 "ULimit"이라는 이름을 지정합니다.
ULimit = 숫자 편집 상자( . )
),
스페이서 박스( 크기( 1, 10 ) ),
// 제어 버튼 몇 개 추가
H 목록 상자(
// 첫 번째 버튼 상자는 데이터 테이블에 값을 추가합니다.
// 값이 유효합니다.
버튼 상자("값 추가",
If( 누락됨( LLimit << get ) == 0 & 누락됨( ULimit << get ) == 0 & (ULimit << get) > (LLimit << get),
// 값이 유효하면 데이터 테이블에 행을 추가하고 값을 설정합니다.
dt << 행 추가( 1 );
dt:LowerLimit[N Rows( dt )] = LLimit << get;
dt:UpperLimit[N Rows( dt )] = ULimit << get;
,
// 값이 유효하지 않으면 누락으로 설정하고
// 사용자에게 대화 상자를 표시합니다.
LLimit << 설정( . );
ULimit << 설정( . );
Dialog( "입력한 값이 잘못되었습니다:" );
)
),
스페이서 박스( 크기( 10, 1 ) ),
// 이 버튼 상자는 디스플레이 창을 닫습니다.
버튼 상자( "추가 중지", InputWindow << 창 닫기 )
)
)
);
Re: 대화형 인터페이스에서 데이터 입력안녕하세요 Ian님, 빠른 답변에 감사드립니다.
저는 JSL을 처음 접했기 때문에 아직 구문을 완전히 이해하지 못했고 단순히 사용자의 입력을 변수에 저장하는 코드를 작성하려는 모든 시도가 실패했습니다. 그러나 나는 Java 프로그래밍의 몇 가지 기본 사항을 알고 있으며 내가 찾고 있는 해당 기능은 스캐너 클래스입니다.
자바의 예:
스캐너 sc = 새 스캐너(System.in);
Int Upperlimit = scanner.nextInt();
JMP에서는 다음과 같이 작동하고 싶습니다.
내가 상상할 수 있는 한 새 열과 다른 열 모두에 대한 모든 행이 표시될 수 있습니다(아마도 이는 미래에 변경될 것입니다).
노력하다 (
상한 = scanner.nextInt
dt = 현재 데이터 테이블();
dt << 새 열("UpperLimit", 숫자, "연속", 값( UpperLimit ) );
//LowerLimit에서도 동일하게 수행되어야 합니다.
)
if (UpperLimit < LowerLimit, throw ("!Error") );
내 예를 이해하시기 바랍니다.
BR
앤더스
Re: 대화형 인터페이스에서 데이터 입력이를 수행하는 방법에는 여러 가지가 있으며 좋은 UI 디자인은 사용자가 입력 작업을 안정적으로 수행할 수 있도록 사용자에게 표시하려는 정보가 정확히 무엇인지에 따라 달라집니다. 테이블의 모든 행을 표시하시겠습니까, 아니면 한 번에 하나씩 표시하시겠습니까? 하나 이상의 다른 열에도 기존 값을 표시해야 합니까?