
Clicked イベント、DragWithin イベントを利用することで、単一データウィンドウ内においてドラッグ&ドロップにより行を移動させることが可能です。
以下の方法では、移動させたい行をドラッグしている間もリアルタイムで行が移動するので、視覚的にわかりやすい操作が可能になります。
[Instance Variables]
long il_row
[clicked イベント](データウィンドウ)
IF row > 0 THEN // クリックされた行を選択 this.SelectRow(0, false) this.SelectRow(row, true) // 移動元の行番号を保持 il_row = row Drag(Begin!) END IF
[dragwithin イベント](データウィンドウ)
long ll_target_row IF row <> 0 AND il_row <> row THEN //ドラッグして行を移動 IF row > il_row THEN // 下に移動する場合 ll_target_row = row + 1 ELSE // 上に移動する場合 ll_target_row = row END IF // 行を移動 this.RowsMove(il_row, il_row, Primary!, this, ll_target_row, Primary!) // 移動後の行番号を保持 il_row = row this.SelectRow(row, true) END IF
さらに、ドラッグ時のアイコンを変更することで、操作時の見た目がよりわかりやすくなるので、ぜひお試しください。
ウィンドウに配置したデータウィンドウコントロールのプロパティ [ その他 ] タブの「ドラッグ アイコン」から設定が可能です。

Tips情報
プロダクト :PowerBuilder
バージョン :2022R3