スクリプトでカラムに値をセットして ItemChanged を呼び出す

PowerBuilder Tips

方法

スクリプトでデータウィンドウのカラムに値を設定後、ItemChanged イベントを呼び出すには SetText 関数と AcceptText 関数を利用します。

データウィンドウのカラムに SetItem 関数やドット表記で値をセットした場合、ItemChanged イベントが発生しません。スクリプトで ItemChanged イベントを呼び出すには、SetText 関数で値をセットした後に AcceptText 関数を呼び出します。

SetText 関数は現在フォーカスのあるカラムに対して値を入力するため、事前に SetRow、SetColumn 関数で値を入力するカラムにフォーカスをセットします。また、引数は文字列型なので、数値型や日付型の場合も文字列に変換してから設定します。

【例】

long ll_row
string ls_column
decimal ldc_value

// 値を設定する行とカラム
ll_row = 10
ls_column = "quantity"

// 設定する値
ldc_value = 123.45

// カラムにフォーカスを移動
dw_1.SetRow( ll_row )
dw_1.SetColumn( ls_column )

// 値を設定
dw_1.SetText( String( ldc_value ) )

// 入力値を確定し、ItemChanged イベントを呼び出す
dw_1.AcceptText()

ただし、SetText 関数はタブ順が 0 に設定されているカラムや「プロテクト」プロパティでフォーカス移動を不可に設定されているカラムには値を設定することができません。このようなカラムに対しては、SetItem 関数やドット表記で値を設定後、直接 ItemChanged イベントを呼び出します。

 

Tips情報

プロダクト :PowerBuilder

バージョン :2017R3

Tips 一覧を見る
PowerBuilder マイグレーション
PowerBuilderとは? ~デキる大人へ変身できる?ローコード開発ツール~