[JMP 17.0.0]
我一直在處理一個專案文件,其中有許多資料表,每個資料表都有一個相對長時間運行的腳本,我用它來產生日誌作為輸出。我在另一個表中有一個單獨的腳本,它調用每個單獨的表腳本,然後將各個日記帳整理成一個日記帳以建立最終報告。[我可能可以使這種方法更加簡潔,但我不是一個全職(甚至部分)時間編碼員。]
我想實現某種“X of 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() 不起作用。但我真的不需要這那麼花俏。
感謝您的聆聽。
喬爾