APEX 24.2では対話モード・レポートに限定されますが、リージョンのリフレッシュ時に表示されているページ区切り(ページ位置)が維持されます。
この新機能の最初の印象は「もともと、そういう動きをしていなかった?」です。なので、24.2でページ区切りの保持をオンにして動作を確認した後、24.2以前の動作も確認してみました。
最初に24.2でページ区切りの保持をオンにしたときの動作を確認しました。
サンプル・データセットの表EMPをソースとした、フォーム付き対話モード・レポートのページを作成しました。
対話モード・レポートは行11から14までが表示されています。TURNERのCommissionは100に変更されています。
もともと、こういう動きだと思い込んでいたので、24.1で同じ作業をしてみます。
24.1のリフレッシュにはページ区切りの保持という設定がありません。
同じ作業を行うと、ページが先頭に戻りました。
もともと、そういう動きでした。
Oracle APEX 22.1からですが、リリース・ノートにIdeas App Implementationsのセクションが含まれています。このセクションにはOracle APEXのIdeasアプリケーションに登録されたものの中から、実際に実装されたものが一覧されています。
この機能はFR-1843 Refresh Region: Keep Pagination and Scroll Positionとして登録されたアイデア(つまりエンハンスメント・リクエスト)です。
少し気になったので、従業員の追加を行ってみました。ページ区切りが保持されると、追加した従業員はどこに表示されるのか確認します。
レポートは従業員名の昇順で一覧するように設定されているので、追加した従業員はその条件で表示されます。今回は従業員名をALLEEとしたので、先頭ページに表示されます。
従業員の追加直後のレポートではページ区切りは保持され、それまで10行目から14行目にあったデータが、11行目から15行目としてレポートに表示されています。
また、ページ区切りの保持をオンにすると、レポートの高さが固定されているときのスクロール位置も保持されます。
レポートの高さを固定するには、属性のヘッダーの固定にリージョンを選択し、最大のレポートの高さとしてピクセル数を設定します。今回は200とします。
ページごとの行数を10に変更します。
最も下の行が表示されるようにスクロールし、従業員MILLERの給与を更新します。
APEX 24.2以前、またはページ区切りの保持がオフであれば、スクロール位置は先頭に戻ります。
今回の記事は以上になります。
完