ループ処理で順番にデータウィンドウのカラム値を取得する

PowerBuilder Tips

方法

データウィンドウに取り込まれたデータは Object.Data プロパティに 2 次元配列のように格納され、このプロパティから行と列を指定して取得することができます。

dw_1.object.data[行, 列]

たとえば、3 行目の 2 番目のカラムに格納されている値を取得するには以下のようになります。

【例】

Integer li_gyo, li_retsu

li_gyo = 3
li_retsu = 2
dw_1.Object.Data[li_gyo, li_retsu]

指定行の全カラムのデータを順番に取得するにはカラムの数だけループします。 カラムの数は データウィンドウのObject.DataWindow.Column.Count プロパティから取得可能です。

なお、カラムに格納されている値のデータ型が不明な場合は Any データ型を使用できます。 Any データ型は、標準データ型、オブジェクト データ型、構造体、および配列など、複数の異なるデータ型の値を保持できます。 Any データ型はその状況に応じて姿を変えるカメレオンのようなもので、代入された値のデータ型を使用します。

【例】

any la_data[]
integer li_columncount, li_gyo, li_retsu

// DataWindow (dw_1) のカラム数の取得
li_columncount = Integer(dw_1.Object.DataWindow.Column.Count)

// 2 行目に格納されているすべてのカラムの値を順次取得する
li_gyo = 2

FOR li_retsu = 1 TO li_columncount
    // 行番号とカラムインデックスを指定して、カラム値を取得する
    la_data[li_retsu]  = dw_1.Object.Data[li_gyo, li_retsu]
NEXT

 

Tips情報

プロダクト :PowerBuilder

バージョン :2017R3

Tips 一覧を見る
PowerBuilder 2019 R3 日本語版リリース
PowerBuilder マイグレーション