2012-12-03 95 views
1

功能我已經注意到在PB12和PB12.5(包括補丁)之間行爲的改變。 我有很少數據窗口與他們的全局功能。在以前的PB版本中,只有當數據窗口獲得焦點(getfocus事件)時纔會觸發這些函數 - 這完全適合應用程序。PowerBuilder的12.5 - 在數據窗口

的功能現在似乎被解僱所有的時間(這似乎是在mousemove事件 - 但我不能肯定)。

有其他人注意到了相同的 - 並且是有什麼解決辦法? 感謝

+0

記得用PB 11.5我不得不這樣做隱藏/顯示數據窗口,迫使它重新評估。如果有更多的事情導致它重新評估,我不會感到驚訝。哪些是調用全局函數的表達式?他們在計算領域或對象屬性? –

+0

datawindows中的全局函數通常是一個糟糕的主意。通常可以通過在結果集中添加額外的列來模擬它們,並在這些隱藏的列上編寫表達式。你的全球功能是做什麼的? – NoazDad

+0

全局函數在計算域中。它們往往是相當簡單的sql命令(比如查找某個東西的描述,或者轉換爲另一種語言(應用程序具有翻譯查找表))。 – Peter

回答

1

其實,我發現完全相反:他們一直解僱往往不僅僅是GetFocus。鑑於表達式可以包含像FirstOnPage和LastOnPage這樣的值,他們必須這樣做。從Powersoft的/的Sybase/SAP

諮詢一直在表達謹慎使用全局的功能,因爲他們開火非常頻繁。 (我明確記得聽到他的意見在第一PowerBuilder的會議在聖地亞哥/科羅納之一,這將提出的忠告附近的PB3發佈日期。)如果PB12只GetFocus解僱,這可能是一個非常特殊版本的bug,如它會打破許多應用程序,所以它會很快修復。

祝你好運,

特里。

+0

感謝您的回覆。我謹慎使用它們,我從不在報告中使用它們。我只在用戶正在修改數據窗口上的單行的情況下使用它們。在我注意到這個問題的情況下,數據輸入有很大的dw。用戶可以根據此dw打印表單。彈出另一個窗口來處理打印選項。當用戶返回到dw時,dw上的函數會觸發以返回上次打印表單時的「日期和用戶名」。它需要運行一個數據庫查詢來獲取這個信息,它曾經用來啓動一次,現在它會一直觸發 - 導致大量不必要的數據庫流量。 – Peter

+0

我是否應該徹底拋棄dw上的全局函數,並將它們編寫在激活或getfocus事件中? – Peter

+0

激活也可能太頻繁了,包括次時代的另一個應用程序抓住你的焦點(我發現電子郵件通知器和其他「背景」過程臭名昭着)。從描述中,爲什麼不在打印對話框關閉時執行Modify()?做得對,甚至可以縮小到用戶實際打印的時間,不包括他從對話框中消除的時間。 – Terry