スクリプトでカラムに値をセットして ItemChanged を呼び出す
2021/03/03
方法
スクリプトでデータウィンドウのカラムに値を設定後、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