我从 PB 应用程序调用了一个运行时间较长的存储过程。我希望 UI 显示它正在处理的指示器,但我不知道确切的进度。也就是说,我不能说它是完成了 10% 还是 90%。我只知道什么时候完成。
为了给用户一些可以看的东西,我想在某处的窗口上放置一个“Inderterminate”(水平)进度条。我查看了内置 HProgressBar 控件的文档,但没有看到如何强制执行此行为。
除了编写我自己的控件或导入另一个控件之外,有没有办法做到这一点?
我从 PB 应用程序调用了一个运行时间较长的存储过程。我希望 UI 显示它正在处理的指示器,但我不知道确切的进度。也就是说,我不能说它是完成了 10% 还是 90%。我只知道什么时候完成。
为了给用户一些可以看的东西,我想在某处的窗口上放置一个“Inderterminate”(水平)进度条。我查看了内置 HProgressBar 控件的文档,但没有看到如何强制执行此行为。
除了编写我自己的控件或导入另一个控件之外,有没有办法做到这一点?
Powerbuilder 不包含执行此操作的内置方法,但您可以使用 Win32 控件。这里有一篇很好的文章(其中包括进度条的示例!):
这是一篇较旧的文章,但仍适用于较新版本的 Powerbuilder。
有点难以控制的局面。由于 PowerBuilder 不是多线程的,因此在存储过程运行时应用程序 UI 将无法正确更新。
在返回控制之前,它必须等待操作完成。
过去,我展示了一个动画来说明一个长时间运行的操作正在进行中。如果您使用动画控件,它将在 SP 运行时继续播放。