스크립트를 순차적으로 실행하려면 어떻게 해야 합니까?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />현재 JSL 스크립트를 단계별로 실행하면 완벽하게 작동하지만 실행 시 일부 오류가 발생할 수 있습니다.wait() 함수를 넣어서 이 문제를 어느 정도 처리할 수 있지만 항상 작동하는 것은 아닙니다.스크립트 상단에서 순차적으로 실행되도록 호출할 수 있는 간단한 함수가 있습니까?
Re: 스크립트를 순차적으로 실행하려면 어떻게 해야 합니까?글쎄요, 제가 기대했던 것만큼 장밋빛은 아닌 것 같습니다. 해당 onclose() 명령에서 일부 코드가 제대로 실행되지 않습니다.내부 onclose()에서 'dt << sort(...)'가 제대로 작동하지 않았지만 내부 onclose()에 주석을 달면 제대로 작동했습니다.
Re: 스크립트를 순차적으로 실행하려면 어떻게 해야 합니까?답장을 보내 주셔서 감사합니다. 함수로 설정을 시도했지만 여전히 사용자 입력을 기다리지 않았습니다.리코딩 및 값 순서 지정 질문에 대해서는 익숙하지만 다음과 같이 실행(또는 실제로는 기본 기능)하는 데 더 중점을 두었어야 했습니다. 모달 나는 다음 코드 줄로 넘어가기 전에 함수를 완료하는 방식으로 실행되기를 바랐습니다.
jsl을 사용하여 직접 코딩하는 것과 관련하여 말씀하신 내용을 확인했습니다. 하지만 jsl과 기본 UI를 혼합하여 다른 작업과 항상 동일한(하드 코딩된 스크립팅도 괜찮음) 여러 일반적인 작업을 실행하기를 바랐습니다. 입력/출력이 변경되어 값 순서 지정 및 기록과 같은 기본 UI에 적합합니다. 나는 찾았다 지난 3월 크레이지의 게시물 그는 이 작업을 수행할 수 있는 것을 게시했지만 열 이름 -> 함수 창 이름 지정으로 인해 약간 제한적입니다. 내 경우에는 맨 위에 문자열로 열 이름이 있으므로 괜찮습니다. 여기서는 2가지 수준의 상호작용을 위해 수정되었습니다. JMP13 표준에서 테스트되었습니다.
dt = Open( "$sample_data/big class.jmp" );
dt << Go To( :sex ) << Recode; // First interactivity, as a test, change "F" to "Female"
Window( "Recode" ) << onclose(
dt << Go To( :sex );
main menu("column info"); // second interactivity, as a test, change value ordering properties.
Window( "sex" ) << onclose(
dt:Sex[ dt << Get Rows Where( :Sex == "M" )] = "Male";
);
);Re: 스크립트를 순차적으로 실행하려면 어떻게 해야 합니까?상당히 복잡한 스크립트를 코딩할 때 일반적으로 코드에 다음 구조를 사용합니다.
Main = Expr(
returna = A(passing variables);
returnb = B(passing variables);
);
A = Function({Passed variables},
processing code
);
B = Function({Passed variables},
processing code
);
// Enter the script by executing the Main section
Main;
Recode 및 Col Info 항목에 대한 질문에 대한 대답은 No와 Yes입니다. 대화형 JMP에서 Recode 요소를 실행하는 직접적인 기능은 없습니다. 이는 개방형 JSL에서 기능을 복제하는 것이 더 쉽기 때문입니다.
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
dt:Sex[ dt << Get Rows Where( :Sex == "F" )] = "Female";
dt:Sex[ dt << Get Rows Where( :Sex == "M" )] = "Male";
// or
For Each Row(
If( :Sex == "F", :Sex = "Female",
:Sex = "Male"
);
열 정보 대화 상자의 항목에 대해서는 형식 지정, 값 순서 지정, 사양 제한 등과 같은 열 속성을 모두 JSL에서 변경해야 하는 항목으로 변경할 수 있습니다.
이 모든 내용은 스크립팅 가이드에서 다룹니다.
도움말==>도서==>스크립팅 가이드
및/또는 스크립팅 색인
도움말==>스크립팅 색인
Re: 스크립트를 순차적으로 실행하려면 어떻게 해야 합니까?
@txnelson 썼다:
내가 사용하는 방법은 스크립트를 기능적 구성 요소로 나눈 다음 스크립트의 제어 섹션에서 스크립트를 단계적으로 진행하고 필요할 때 구성 요소를 호출하는 것입니다.나는 일반적으로 코드를 EXPR(() 섹션에 배치합니다.EXPR()에 배치된 코드는 제어 섹션에서 호출될 때까지 실행되지 않습니다.
필요할 때 구성 요소를 호출한다는 것은 제어 섹션 내에서 표현식을 호출하여 바로 실행한다는 의미입니까, 아니면 이전 기능이 완료되도록 수동으로 개별적으로 호출해야 합니까? 전자의 경우 실제로 기다릴 수 있도록 제어 섹션은 어떻게 구성되어 있습니까?
레코드 및 열 정보(값 순서 변경)와 같은 기본 함수를 모달 창/함수로 호출하는 방법이 있습니까?
감사해요,
마이크
Re: 스크립트를 순차적으로 실행하려면 어떻게 해야 합니까?어떤 테이블이 현재 활성 테이블인지 추적하는 것보다 실행할 플랫폼에 대한 메시지를 데이터 테이블에 전달하는 것이 가장 좋습니다.그래서보다는 :
dt = 데이터 테이블( "데이터 테이블 xxx" ) ;
dt << 선택 지우기;
dt<<창을 앞으로 가져오기;
이변량(X(......
dt = 데이터 테이블( "데이터 테이블 xxx" ) ;
dt << 이변량(X(........
"dt"가 참조하는 데이터 테이블에서 Bivariate Pllatform이 실행되도록 보장합니다.
Re: 스크립트를 순차적으로 실행하려면 어떻게 해야 합니까?스크립트를 자동으로 실행할 때 몇 가지 오류가 발생했지만 수동으로 테스트했을 때는 괜찮았습니다.
이러한 유형의 오류는 일반적으로 잘못된 테이블에 플롯 기반을 작성하려고 할 때 발생합니다.
이제 스크립트에서 플롯/차트를 수행하기 전에 해당 줄을 추가합니다.
dt = 데이터 테이블( "데이터 테이블 xxx" ) ;
dt << 선택 지우기;
dt<<창을 앞으로 가져오기;
Re: 스크립트를 순차적으로 실행하려면 어떻게 해야 합니까?여기서 문제가 발생하니 안타깝습니다.
우리의 목표는 기다리다() 스크립트를 실행하려면. 우리는 UI의 다양한 요소(창, 플랫폼 등)가 JSL의 나머지 부분에 적절하게 응답하기 전에 완전히 인스턴스화되는 데 시간이 필요한 경우가 있다는 것을 알고 있습니다. 그러나 우리는 이러한 상황을 내부적으로 해결하여 JSL에서 걱정할 필요가 없도록 하려고 합니다.
따라서 다음을 추가하여 해결되는 상황을 겪을 때 기다리다() 귀하의 코드에 제출해 주세요. 기술 지원 , 이를 추적하고 해결할 수 있습니다.
감사해요!
-제프
Re: 스크립트를 순차적으로 실행하려면 어떻게 해야 합니까?나는 넣었다 기다려(0); 순차적으로 실행하고 싶은 코드 섹션 사이의 명령문.
Re: 스크립트를 순차적으로 실행하려면 어떻게 해야 합니까?내가 사용하는 방법은 스크립트를 기능적 구성 요소로 나눈 다음 스크립트의 제어 섹션에서 스크립트를 단계적으로 진행하고 필요할 때 구성 요소를 호출하는 것입니다.나는 일반적으로 코드를 EXPR(() 섹션에 배치합니다.EXPR()에 배치된 코드는 제어 섹션에서 호출될 때까지 실행되지 않습니다.