阻止用户将特定字符输入DataWindow列

时间:2013-04-27 02:46:26

标签: powerbuilder

每当用户在PowerBuilder的DataWindow列中输入特定字符(美分符号,'',“和(括号))时,我都需要抛出一个消息框。

我试过了:

ls_text = dw_1.getitemstring(1,'column')

但不知道如何解析输入的文本(ls_text)并搜索上面提到的那些字符。

对此有任何帮助将不胜感激。

提前致谢

2 个答案:

答案 0 :(得分:1)

幸运的是,有很多选择可以做到这一点。要在另一个字符串中查找特定字符串,您可以使用以下函数:

请记住,上述功能是CASE SENSITIVE。 例如,如果您想在字符串中找到第一个“逗号”:

integer li_ret

li_ret = Pos("Luke, I am your father :)", ",") // li_ret will be 5
If( li_ret > 0 )then
    Messagebox("Warning", "I'm Darth Vader!")
end if

如果您需要更多内容,并且想要搜索“正则表达式”,则可以使用:

  • Match()

您还有很多可能进行此项检查:

  • ItemChanged活动
  • EditChanged活动
  • Datawindow的验证表达式和验证消息

ItemChanged事件中,如果有必要,您可以拒绝该值!

我希望这有帮助!随意要求更多。

溴。的Gabor

答案 1 :(得分:0)

请勿将getItemString()用于此目的。使用data事件的itemChanged参数。

如果DW字段包含字符串“之前”,并且您的用户键入“之后”,则getItemString()事件中的itemChanged将返回“之前”。 DW列不包含用户键入的数据,直到itemChanged事件触发后(并且您没有返回非零返回码)