关闭当前打开的窗口,同时更改电源构建器中的另一个窗口

时间:2009-07-01 09:33:58

标签: data-binding concurrency powerbuilder

我目前正在使用powerbuilder 6.5 在我的应用程序中,我想创建一个代码,其中一个窗口中的任何更改应该重新放弃另一个窗口。两个窗口使用相同的表。如果我们在一个窗口中调用,如果另一个窗口先前打开,它就不会在另一个窗口中反射。能做什么?

3 个答案:

答案 0 :(得分:2)

了解您想要完成的任务可能会有所帮助。两个窗口是否在同一个用户的屏幕上同时打开?或者,一个用户可以使用一个窗口,第二个用户是否可以查看更新?

数据窗口本身不会在对基础表的更新时自动检索。实际上,如果您已正确配置数据窗口,则更新规则应提供一些并发保护,并且不会让第二个dw在第一次更新后更新同一个表。 DataWindow2将感知到已经发生了变化,并将尝试防止破坏DataWindow1的更改。但同样,如果在您的上下文中第二个窗口是只读的,这可能不是问题。

您可以让第一个窗口完成更新,然后检查是否存在第二个窗口并让它检索。更好的是,使用非可视业务对象作为中间处理程序(并且还将令人讨厌的跨窗口通信代码保留在GUI之外)。当第一个窗口的更新成功时,它会告诉业务对象它已完成,然后该对象可以告诉第二个窗口进行检索。但是如果你的第二个窗口是可更新的,那就需要做更多的工作。

答案 1 :(得分:1)

使用datawindow ShareData方法共享两个数据窗口的内容(当你说表时,你的意思是数据窗口,对吧?)。

顺便说一句,我觉得你不得不使用那种PB 6.5恐龙。 OTOH,我们刚刚从PB 10迁移到闪亮的新PB 11.5,它有我用过的最差的IDE 。作为程序员,我很尴尬地看到这样糟糕的软件。 Sybase应该为自己感到羞耻,发布这样一个糟糕的产品。

答案 2 :(得分:0)

@ eran

不,我只是表。

两个窗口正在使用不同的数据窗口,对于这些数据窗口,它使用相同的表格。

因此,如果我们在一个窗口中进行更改,则在打开其中一个窗口时,它不会反映其他窗口中的更改。