모델링을 위한 작은 업데이트/진행 창을 스크립팅하는 방법에 대한 제안친애하는 JMP 커뮤니티 여러분,
현재 실행 중인 단계(수천 개 중)를 보여주기 위해 모델 구축 스크립트를 실행할 때 팝업되는 작은 창을 스크립팅하는 데 관심이 있습니다. 작동하지만 매번 새 창을 만드는 다음 스크립트와 같은 작업을 수행하려고 합니다.
Names Default To Here( 1 );
imax = 5;
For( i = 1, i <= imax, i++,
update_window = New Window( "Progress Update",
Text Box( " Current step " || Char( i ) || " of " || Char( imax ), <<SET font="" size=""></SET>
물론 내 imax는 5보다 훨씬 큽니다. 이것은 단지 테스트 스크립트일 뿐입니다. 다음의 각 반복에서 출력을 얻습니다(이 경우 5개의 창).

그러나 언급한 바와 같이 이것은 내가 원하지 않는 수천 개의 창을 만들 것입니다. 합계의 "i" 단계만 업데이트하고 싶습니다.
모델링 스크립트는 데이터 테이블에 내장되어 있으며 거대한 튜닝 테이블을 한 번에 한 줄씩 실행하므로 자체 FOR 루프가 있습니다. imax는 이 튜닝 테이블의 NRows()이며 대략 24k+ 행일 수 있습니다. 메인 for 루프에 다음을 생성하는 스크립트를 삽입하고 싶습니다. 하나의 화면에 남아 사용자에게 NRows()에서 어떤 단계 "i"에 있는지 알려주는 창입니다. (데이터 테이블을 스크롤하는 것은 지루한 작업이며 이 방법이 합리적인 해결책인 것 같습니다.)
진행률 표시줄이나 그와 유사한 것은 필요하지 않습니다. 기본 FOR 루프가 반복될 때마다 변경되는 간단한 숫자만 있으면 됩니다. FOR 루프는 BTW 하나만 있습니다.
제안해 주셔서 감사합니다!
DS
Re: 모델링을 위한 작은 업데이트/진행 창 스크립팅 방법에 대한 제안업데이트:
내가 참조한 게시물에서 JSL을 수정한 후 진행률을 막대(시각적)와 실제 걸음 수 X/Y로 표시하는 이 테스트 창을 만들 수 있었습니다. 이것은 재미있었다!
Names Default To Here( 1 );
i = 1;
imax = 100;
dlgStatus = New Window( "Overall Modeling Progress",
V List Box(
dlg_gb = Graph Box(
Title( "Overall Modeling Progress" ),
FrameSize( 150, 15 ),
X Scale( 0, 100 ),
Y Scale( 0, 1 ),
yaxis( show major ticks( 0 ), show minor ticks( 0 ) ),
xname( "% complete" ),
yname( "" )
),
tb = Text Box(
" Current step " || Char( i ) || " of " || Char( imax ),
<<SET font="" size=""></SET>
Re: 모델링을 위한 작은 업데이트/진행 창 스크립팅 방법에 대한 제안안녕 @Mark_Bailey ,
이에 대한 빠른 답변에 감사드립니다. 완벽한 솔루션!
이 게시물을 읽은 후 이 방향으로 이동했습니다. https://community.jmp.com/t5/Discussions/JMP-script-progress-indicator/mp/6057#M6056 . 그러나 나는 여전히 몇 걸음 떨어져 있었다. 테스트 스크립트의 경우 FOR 루프가 너무 빨라서 Wait()를 추가해야 했습니다. 모델링은 각 단계에서 더 오래 걸리므로 이에 대해 걱정하지 않습니다.
이것의 향후 버전에서는 위 게시물의 다른 사용자가 수행한 작업을 수정하여 "진행률 표시줄"로 변경할 수 있습니다.
다시 한 번 감사드립니다!,
DS
Re: 모델링을 위한 작은 업데이트/진행 창 스크립팅 방법에 대한 제안업데이트가 있는 창을 별도로 그리고 반복이 시작되기 전에 엽니다. 텍스트 상자에 대한 참조를 변수에 저장합니다. << Set Text( "new text" ) 메시지를 반복 내부의 참조로 보냅니다.
Names Default To Here( 1 );
imax = 5;
update_window = New Window( "Progress Update",
tb = Text Box( "Initial message", <<SET font="" size=""></SET>