테이블 스크립트 실행녹색 재생 아이콘을 통해 테이블 스크립트를 실행하는 것의 차이점은 무엇입니까?

... 그리고 실행 버튼을 통해?

자동화 및 스크립팅Re: 테이블 스크립트 실행차이가 있다고 의심할 이유가 있나요? 예를 들어 스크립트 "창"에서 강조 표시하여 별도의 부분을 실행할 수 있습니다.
Re: 테이블 스크립트 실행그들은 일반적으로 같은 일을 합니다.
작은 녹색 화살표는 한 번의 클릭으로 더 빠릅니다.

Re: 테이블 스크립트 실행테이블 스크립트의 "타이밍 문제"에 대한 세 번째 "솔루션"을 발명한 후 - 불행하게도 실제 성공은 없었습니다.
... 실제 차이점은 다음과 같습니다.
- 재생 아이콘을 통해 스크립트 실행 → 문제
- 스크립트 창을 열고 - [새 코드를 시도하거나 아무것도 시도하지 않음] - 실행 버튼을 클릭하고 → 문제가 없습니다.
Re: 테이블 스크립트 실행녹색 실행 화살표를 클릭하여 실행하면 연결된 데이터 테이블에서 스크립트가 실행됩니다.
편집 창에서 스크립트를 실행하면 현재 활성 데이터 테이블에서 스크립트가 실행됩니다. 이 테이블은 스크립트가 저장된 데이터 테이블이 아닐 수도 있습니다.
Re: 테이블 스크립트 실행나도 그렇게 생각했는데...
Re: 테이블 스크립트 실행좋은 생각,
그러나 실제로 "편집" 모드에서는 실행을 클릭하기 전에 "내 테이블"이 활성화되도록 주의를 기울였습니다.
그리고: 작동하는 "편집" 모드입니다 
아마도 코드 어딘가에 있는 현재 데이터 테이블()과 관련이 있을 수 있습니다. 스크립트가 재생 아이콘을 통해 시작되거나 실행 버튼을 통해 시작되면 다르게 작동할 수 있습니다.
그냥 넣어:) 현재 데이터 table()을 테이블 스크립트에 직접 넣는 것은 두 접근 방식 사이의 차이를 보여주지 않았습니다.
하지만 내 코드는 JSL, 기본 메뉴(" ... "), 파일 열기, 결합, 연결 등의 긴 체인입니다.
차이점을 보여주기 위해 복잡성을 줄이거나 익명화된 예를 생성하려고 노력할 것입니다.
Re: 테이블 스크립트 실행추가해 보았습니다
current data table();
스크립트가 저장된 데이터 테이블을 다시 가리키는지 확인하려고 했으나 그렇지 않았습니다. 스크립트는 현재 데이터 테이블이 무엇이든 상관없이 실행되었습니다.
Re: 테이블 스크립트 실행이러한 경우에는 Current Data Table()을 신뢰할 수 없습니다. 녹색 삼각형을 누른 후 즉시 새 테이블이 열리면 스크립트가 실행되기 전에 현재 테이블이 변경될 수 있습니다(녹색 실행 버튼을 사용하면 발생할 가능성은 거의 없지만 그럴 수 있습니다). 이와 같은 스크립트로 테스트하기가 매우 쉽습니다.
wait(1);
Caption(Current Data Table() << get name);
녹색 삼각형을 눌러 스크립트를 실행하고 즉시 Ctrl+N을 눌러 새 테이블을 만듭니다.
Current Data Table()을 그대로 두면 스크립트가 실행된 테이블에서 트리거되는 것 같습니다(두 경우 모두).
wait(1);
Current Data Table() << New Column("A");
대
wait(1);
New Column("A");
Re: 테이블 스크립트 실행내 문제에 관해서
사실 결국 타이밍 문제 였지
...Jarmo가 설명한 것처럼 - 하지만 약간 반대입니다.
사용자 정의된 AddIn을 사용하여 파일을 로드합니다.
그리고 메인 메뉴는 반환 값을 반환할 수 없으므로
,
새로 생성된 테이블에 액세스하기 위해 현재 데이터 테이블()을 사용했습니다.
이게 아이디어였어...
//<FONT face="courier new,courier">열기( "$SAMPLE_DATA/Big Class.jmp" );</FONT><BR />Main Menu("load_");
// wait(1);
dt= current data table(); // the idea: myDT
caption(dt << get name())
a) Open( "$SAMPLE_DATA/Big Class.jmp" ) 만 사용하면 모든 것이 원활해집니다.
반면에 Main Menu("load_") 를 통해 데이터 테이블을 연 후,
현재 데이터 테이블은 여전히 내 기본 테이블(!)을 참조합니다.
wait(1) 을 활성화하면 1초의 벌금으로 문제가 해결되었습니다.
b) 보다 강력하고 빠르게 만들기 위해 FUNC 내에 테이블 참조 :::load_:myTable을 만들고 현재 데이터 table()을 통해 원래 접근 방식 대신 dt=:::load_:myTable을 사용했습니다.
흥미로운:
:::load_:myTable을 통한 접근 방식은 wait(1) 없이 작동합니다.
이는 현재 데이터 table() 을 가져오기 전에 이미 새 테이블과 통신할 수 있음을 의미합니다!
따라서 데이터 테이블이 현재 데이터 테이블을 얼마나 빨리 가져오는지 조사해 볼 가치가 있습니다.
...그리고 차이점이 있는 이유도 설명합니다.
Re: 테이블 스크립트 실행토론의 시작으로 돌아가서 녹색 재생 아이콘과 편집 창의 "실행" 버튼 사이의 차이점은 다음과 같습니다.
@Byron_JMP는 다음 과 같이 썼습니다.
그들은 일반적으로 같은 일을 합니다.
작은 녹색 화살표는 한 번의 클릭으로 더 빠릅니다.

문제는 현재 데이터 table()을 잘 정의하는 것이 하나도 없다는 사실로 귀결됩니다!
녹색 재생 버튼을 사용하여 결과 창을 확인하면 다음 순서를 볼 수 있습니다.
1) AddIn이 테스트를 열고 현재 데이터 테이블이 테스트 용으로 변경되었음을 보고합니다.
2) 메인 테이블은 여전히 check_current_data_table 이 현재 데이터 테이블이라고 생각합니다(!!!)
3) wait(0) 후에는 더 잘 알고 test 를 반환합니다.
반면에 편집 창의 RUN 버튼을 통해 스크립트가 시작되면 3개의 결과 창 모두 현재 데이터 테이블() 과 동일한 테이블을 표시합니다.
주요 스크립트:
Names Default To Here( 1 );
Main Menu( "load_" );
win = new window("1 ",Text Box ("main table (1):\!n" ||
(current data table() << get name())));
wait(1);
win = new window("2 ",Text Box ("main table (2):\!n" ||
(current data table() << get name())));짐_:
Names Default To Here( 1 );
dt = open("C:\temp\test.csv");
Caption( {100, 200}, "postprocessing ...");
win = new window("addIn", text box("inside the addin:\!n" ||(current data table()<< get name())));
// win << moveWindow( 100, 100 );
Caption( remove );
더 자세히 살펴보면 AddIn 내부에서 << moveWindow를 활성화하거나 캡션 명령 중 하나를 비활성화하는 것과 같은 작은 세부 사항이 동작에 영향을 미친다는 것을 알 수 있습니다.
Re: 테이블 스크립트 실행그런데 같은 문제는 다음과 같습니다.
현재 데이터 테이블()을 잘 정의하는 것이 하나도 없습니다!
이 게시물을 촉발한 문제이기도 했습니다: ThisDataTable() ?
동일한 버그 수정으로:
대기 추가 ( 0 )
앞에
dt = 현재 데이터 테이블()!