每當用戶在PowerBuilder的DataWindow列中輸入特定字符(美分符號,'',「」和(圓括號))時,我需要拋出一個消息框。防止用戶在DataWindow列中輸入特定字符
我想:
ls_text = dw_1.getitemstring(1, '列')
,但不知道如何解析輸入的文本(ls_text)並搜索上面提到的這些字符。
任何幫助,將不勝感激。
在此先感謝
每當用戶在PowerBuilder的DataWindow列中輸入特定字符(美分符號,'',「」和(圓括號))時,我需要拋出一個消息框。防止用戶在DataWindow列中輸入特定字符
我想:
ls_text = dw_1.getitemstring(1, '列')
,但不知道如何解析輸入的文本(ls_text)並搜索上面提到的這些字符。
任何幫助,將不勝感激。
在此先感謝
幸運的是,有很多選擇可以做到這一點。要在另一個字符串,您可以使用以下功能查找特定的字符串:
請記住,上面的功能是區分大小寫的。 例如,如果你想找到一個字符串的第一個「逗號」:
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
事件在你有拒絕的值,如果有必要的可能性ItemChanged
事件!
我希望這個幫助!隨意要求更多。
Br。 Gábor
請勿爲此使用getItemString()
。使用data
參數來itemChanged
事件。
如果DW字段包含字符串「before」,並且用戶在「after」後鍵入,事件中的getItemString()
將返回「before」。 DW列不包含用戶輸入的數據,直到itemChanged
事件觸發後(並且您沒有返回非零返回碼)
感謝Paul的說明。 – ama 2013-05-03 01:02:25
好點NoazDad。這是正確的,檢查itemchanged事件中的值需要正確完成。我會補充,不要依賴itemchanged事件來保證數據的完整性。通常你會在更新之前檢查數據,許多框架有一個驗證或(ue_validate)事件,如果數據不好,你可以防止更新發生。 – 2013-05-08 08:27:36
謝謝Br。加博爾,這很有幫助。 – ama 2013-05-03 01:01:53