[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() 不起作用。但我真的不需要这那么花哨。
感谢您的聆听。
乔尔