2016-12-02 78 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,阿里