[JMP 17.0.0]
제가 작업하고 있는 프로젝트 파일에는 많은 데이터 테이블이 있고 각 테이블에는 출력으로 저널을 생성하는 데 사용하는 상대적으로 오래 실행되는 스크립트가 있습니다.다른 테이블에는 각각의 개별 테이블 스크립트를 호출하는 별도의 스크립트가 있으며, 그런 다음 개별 저널을 단일 저널로 모아 최종 보고서를 만듭니다.[아마도 이 접근 방식을 훨씬 더 깔끔하게 만들 수 있었을 것입니다. 그러나 저는 전체(또는 심지어 부분) 타임코더는 아닙니다.]
나는 각 개별 테이블 스크립트 실행 후 실행 진행 상황을 추적하기 위해 일종의 "X/Y 완료" 업데이트 진행률 표시줄/메시지 상자를 구현하고 싶었습니다.
이것은 내가 어떻게 현재의 솔루션을 갖게 되었는지에 대한 이야기입니다.
TL;DR – 나 혼자만의 영리한 접근 방식을 고안하는 데 하루를 보낸 후 가장 쉬운 방법이었을 Caption()을 발견했습니다.
하지만 프로젝트 환경 내에서 창을 어떻게 조작할 수 있는지에 대한 몇 가지 일반적인 질문이 여전히 남아 있습니다. 관심이 있으시면 저에게 연락해 주세요.
토론을 검색하는 동안 다음과 같은 몇 가지 훌륭한 구현 아이디어를 발견했습니다.
https://community.jmp.com/t5/Uncharted/Progress-Bar/ba-p/21160
https://community.jmp.com/t5/Uncharted/Progress-Bar-with-Cancel-Button/ba-p/433560#U433560
https://community.jmp.com/t5/Discussions/Suggestion-on-how-to-script-a-small-update-progress-window-for/mp/250419
그러나 프로젝트 환경 내에서 이러한 솔루션을 구현하려고 하면 생성되는 새 진행률 표시줄이 항상 프로젝트에 새 탭으로 생성됩니다. 시리즈의 다음 스크립트가 시작되면 스크립트와 관련된 후속 데이터 테이블 조작으로 인해 진행률 표시줄 창이 숨겨지므로 업데이트된 진행률 메시지가 표시되지 않습니다.
일반적인 질문 #1: 모달 창이 아닌 메시지 상자로 "팝아웃" 창을 만드는 방법을 알 수 없습니다.내 이해는 사용자가 창과 상호 작용할 때까지 모달 창에서 스크립트를 일시 중지한다는 것입니다. 이는 내가 원하지 않는 것입니다.새 탭이 아닌 "팝아웃"으로 새 비모달 창을 만드는 방법에 대해 제가 놓친 부분이 있습니까?
[이제 다시 Caption()이라는 것이 있다는 것을 깨달았습니다.하지만 프로젝트의 모든 새 창을 팝업 창이 아닌 새 탭으로 열어야 하는지에 대한 일반적인 질문이 여전히 남아 있습니다.]
일반적인 질문 #2: 그렇다면 제 생각에는… 새로 생성된 진행률 표시줄 창을 프로젝트 레이아웃의 다른 위치에 도킹하여 나머지 작업과 분리할 수 있는 방법이 있을 것입니다. 예를 들어 New Window() << Dock( “ 오른쪽").그러나 나는 그런 것을 찾지 못했습니다.창의 도킹 위치를 스크립트하는 방법이 있습니까?
그런 다음 프로젝트 레이아웃의 작동 방식과 스크립트 작성 방법을 배우는 데 많은 시간을 보냈습니다.나는 그 운동을 통해 많은 것을 배웠다.결국, 프로젝트 레이아웃을 일시적으로 변경하여 "최근 파일" 창을 내가 찾고 있는 작업을 수행하는 사용자 정의 "진행 업데이트" 창으로 교체한 다음 "최근 파일" 창으로 다시 되돌리는 스크립트를 생각해냈습니다. " 창문.여러분이 상상할 수 있듯이 이는 꽤 서투른 스크립트이지만 작업은 완료됩니다.나는 그것을 최대한 일반화하려고 노력했고, 그것이 어떻게 작동하는지 보고 싶은 사람이 있을 경우를 대비해 여기에 첨부했습니다.
하루 중 어느 시점에서 나는 개별 스크립트에 의해 생성된 새 창을 보이지 않게 하여 진행률 표시줄 창이 맨 위에 유지되도록 하여 이 작업을 수행할 수 있는 방법이 있다는 것을 깨달았습니다.하지만 미리 생각했다면 더 좋았을 것입니다.이 시점에서 이 옵션을 달성하려면(가능한 경우) 수백 번의 스크립트 편집을 수행해야 합니다.
결국, 나는 오늘 아침에 이 모든 이야기를 들려주기 위해 출근했고 거의 즉시 Caption()을 발견했습니다. 이는 기본적으로 두 개의 간결한 코드 줄로 내가 하고 싶었던 모든 작업을 수행합니다.나는 그것을 더 일찍 깨달았더라면 좋았을 뿐입니다.텍스트뿐만 아니라 진정한 진행 "바"를 정말로 원한다면 Caption()이 작동하지 않을 수도 있습니다.그러나 나는 이것이 그렇게 화려할 필요는 없었습니다.
들어 주셔서 감사합니다.
조엘