計算フィールドをキーとしてデータウィンドウをソートすると異常終了する
2019/09/24
集計関数を使用している計算フィールドをデータウィンドウのソートキーに指定している場合、データウィンドウの描画が行われていない状態のままデータの変更と Sort 関数の呼び出しを行うとアプリケーションが異常終了する事象が確認されています。
Bug ID | 660 | ||||||
---|---|---|---|---|---|---|---|
Product | PowerBuilder EN/JP | ||||||
ステータス | [EN] PowerBuilder 2019 GA (Build 2082) で修正済み | ||||||
発生バージョン | EN | 12.6以前 | 2017 | 2017 R2 | 2017 R3 | 2019 | |
JP | 12.6以前 | - | 2017 R2 | 2017 R3 |
※ :発生バージョン :解決済み、未発生 :未確認
詳細
Sum、Avg、Max などの集計関数を使用している計算フィールドをデータウィンドウのソートキーに指定しているとき、SetRedraw 関数での描画停止中やウィンドウの Open イベント中 (画面の表示が行われる前)、データウィンドウが非表示 (visible = false) の場合などデータウィンドウが描画されていない状態で、Retrieve 関数によるデータの検索や InsertRow、SetItem 関数などによるデータの変更と、Sort 関数の呼び出しを行うとアプリケーションが異常終了します。
回避策
本不具合に関する回避策は以下となります。
- 描画を更新してから Sort 関数を呼び出す
- 描画停止中 / 画面表示前に処理を行っている場合は、データの検索や変更を行った後で一度画面の描画を更新してから Sort 関数を呼び出してください。Open イベントで事象が発生する場合は Sort 関数を POST 呼び出しに変更することで回避することができます。
- 表示されている状態で Sort 関数を呼び出す
- 非表示のデータウィンドウで処理を行っている場合は、データの検索や変更を行った後で一時的にデータウィンドウを表示してから Sort 関数を呼び出すか、データウィンドウを非表示にせずウィンドウの表示領域外に配置してください。