モデリング用の小さな更新/進行ウィンドウをスクリプト化する方法に関する提案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」だけを更新したいと思います。
モデリング スクリプトはデータ テーブルに組み込まれており、一度に 1 行ずつ巨大なチューニング テーブルを実行するため、独自の FOR ループがあります。imax はこのチューニング テーブルの NRows() であり、24k+ 行程度になる可能性があります。 メインの for ループに、独身画面上に留まり、NRows() のどのステップ "i" にあるかをユーザーに通知するウィンドウ。 (データテーブルをスクロールするのは面倒ですが、これは合理的な解決策のように思えます。)
進行状況バーなどは必要ありません。メインの FOR ループの反復ごとに変化する単純な数値だけです。 ところで、FOR ループは 1 つだけです。
ご提案いただきありがとうございます。
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>