2

ユーザーが特定の文字 (セント記号、''、""、および (括弧)) を PowerBuilder のデータウィンドウ カラムに入力するたびに、メッセージ ボックスをスローする必要があります。

私は試した :

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

しかし、入力されたテキスト (ls_text) を解析して上記の文字を検索する方法がわかりません。

これに関する助けをいただければ幸いです。

前もって感謝します

4

2 に答える 2

1

幸いなことに、これを行うには多くの選択肢があります。別の文字列で特定の文字列を見つけるには、次の関数を使用できます。

上記の関数は大文字と小文字を区別することに注意してください。たとえば、文字列の最初の「コンマ」を見つけたい場合:

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. ガボール

于 2013-04-27T06:23:01.337 に答える
0

getItemString()この目的には使用しないでください。dataイベントへの引数を使用しますitemChanged

DW フィールドに文字列「before」が含まれていて、ユーザーが「after」と入力getItemString()すると、itemChangedイベントでは「before」が返されます。DW 列には、itemChangedイベントが発生するまでユーザーが入力したデータは含まれません (ゼロ以外のリターン コードを返しませんでした)。

于 2013-04-27T19:38:21.547 に答える