테이블의 마지막 행으로 이동하는 스크립팅안녕하세요 여러분,
테이블을 열 때 사용자를 테이블의 마지막 행(또는 특정 행)으로 이동시키는 JSL 스크립트를 설정하려고 합니다. On Open 스크립트 속성과 Go To Row() 메시지를 사용하여 독립형 테이블에 대해 작업했습니다. 그러나 테이블이 스크립트(예: 사용자 지정 형식 지정 스크립트가 포함된 독립형 SQL 쿼리)에서 절차적으로 생성되는 경우에는 이것이 작동하지 않는다는 것을 발견했습니다.
다음/이전 선택과 결합된 Go To Row() 및 Select Rows()를 모두 시도했지만 예상된 효과가 없습니다. 대상 행이 선택되지만 선택한 행을 표시하기 위해 테이블이 스크롤되지 않습니다. 디버거 로그에 오류가 발생하지 않으므로 라인이 제대로 실행된다고 가정합니다.
JMP13에서 테이블 메시지를 실행하는 데 별도의 트릭이 있습니까?
Re: 테이블의 마지막 행으로 이동하는 스크립팅아니요, JMP는 코드를 동기식으로 실행하지 않습니다. 가능한 한 빨리 각 함수를 시작하므로 이후 함수가 호출될 때 이전 함수의 결과를 사용할 수 없는 상황이 발생할 수 있으며 이는 해당 결과에 따라 달라질 수 있습니다.
Wait( 0 )는 Wait() 이후 다음 함수를 호출하기 전에 JMP가 '따라잡게' 합니다.
Re: 테이블의 마지막 행으로 이동하는 스크립팅때때로 JMP는 다음 명령을 계속하기 전에 명령을 완료해야 하므로 wait 문을 추가하면 이전 명령을 완료할 수 있습니다.
Re: 테이블의 마지막 행으로 이동하는 스크립팅고마워요. 효과가 있었지만 왜 그런지 혼란 스럽습니다.
스크립트 시간 측면에서 보면 스크립트 전체가 완전히 실행되는 데 ~4-6초가 걸립니다. Go To Row 명령은 스크립트 끝에 있었고 테이블은 그 사이에 성공적으로 실행되는 여러 테이블 메시지와 함께 처음에 생성되었습니다. JMP가 다음 줄로 이동하기 전에 각 줄/메시지를 완료하는지 알고 계십니까? 그렇다면 wait 명령이 왜 아무 작업도 수행하지 않았는지 알 수 없습니다. 아니면 JSL의 특이한 점인가요?
Re: 테이블의 마지막 행으로 이동하는 스크립팅wait 문을 추가해 보세요. 예를 들어:
dt=Open("mypath\table.jmp");
기다려(0);
dt<<행으로 이동(nrow(dt));