ループ処理で順番にデータウィンドウのカラム値を取得する
2020/12/15
方法
データウィンドウに取り込まれたデータは 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