2016-12-02 77 views
0

在DataWindow的ItemChanged事件上,我必須提示錯誤輸入的消息。 問題是:當我使用messagebox()時,它會正確提示消息,但是字段不是空白,並且通過按Tab鍵,控件正在轉移到下一個字段。 (指其接受按一次Tab鍵錯誤的值) 這裏是上述方案簡單的代碼:PowerBuilder在ItemChanged上自定義錯誤消息

if lb_error = true then 
     messagebox('Info','Only Digits Are Allowed ~nAll Digits Cannot Be 0') 
     this.object.payer_phone[1] ='' 
    end if 

然後我試圖修改財產,其工作正常,但是否有可能改變其標題和圖標??我正在使用以下代碼,請幫助我。

if lb_error = true then 
     this.Modify("payer_phone.ValidationMsg='Only Digits Are Allowed ~nAll Digits Cannot Be 0'") 
     this.object.payer_phone[1] ='' 
     return 1 
    end if 

我使用的PowerBuilder 12.0。

回答

1

從PowerBuilder的幫助:

返回值 設置返回代碼,以影響事件的結果:

0(默認)接受數據值

1拒絕數據值並且不允許焦點改變

2拒絕數據值但允許焦點改變

所以在你的情況下,你需要從itemchanged事件返回1。

由於您正在處理itemchanged中的此錯誤,因此您需要繞過itemerror事件。你可以在這裏放置一個RETURN 1。

通過在itemchanged事件觸發的錯誤,您可以創建自定義錯誤消息框或使用系統默認和控制標題,圖標,按鈕等

0

假設payer_phone的領域正在編輯,我相信你需要SetText()而不是在數據集中設置基礎值。

爲了理解這種差異,您需要知道,對於數據輸入,有一個控件在數據窗口上方「浮動」,從焦點移動到字段。當輸入的數據被接受時,浮動控制中的值被刷新到DW的數據集。 GetText()和SetText()處理該浮動控件。您的代碼正在更改DW數據集。第一次錯誤發生後,下次按下Tab鍵時,檢測不到控件的任何更改,因此不會發生數據更改時觸發的功能,並且錯誤代碼也不會啓動。

祝你好運。

0

您可以通過使用相同功能的MessageBox與不同的簽名修改圖標和標題: 的MessageBox(標題,文字{,圖標{,按鈕{默認}}})

HTH, 阿里

0

您可以通過使用相同功能的MessageBox與不同的簽名修改圖標和標題:的MessageBox(標題,文字,圖標,按鈕,默認)

HTH,阿里