2025年2月6日木曜日

APEX 24.2で追加された対話モード・レポートのページ区切りの保持について

Oracle APEX 24.2では動的アクションリフレッシュ設定として、ページ区切りの保持が新設されました。


APEX 24.2では対話モード・レポートに限定されますが、リージョンのリフレッシュ時に表示されているページ区切り(ページ位置)が維持されます。

この新機能の最初の印象は「もともと、そういう動きをしていなかった?」です。なので、24.2でページ区切りの保持オンにして動作を確認した後、24.2以前の動作も確認してみました。

最初に24.2でページ区切りの保持オンにしたときの動作を確認しました。

サンプル・データセットの表EMPをソースとした、フォーム付き対話モード・レポートのページを作成しました。


ページ区切りを有効にするため、ページごとの行数を設定します。


1ページのレポートに5行表示されるようになりました。次のページを2回クリックします。


レポートには11から14行目が表示されます。(誰でもよいのですが)従業員TURNERCommission100に変更するため、編集フォームを開きます。


Commission100に変更し、変更の適用をクリックします。


対話モード・レポートは行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に変更します。


レポートの高さが200ピクセルだと、ページごとの行数が10でも表示されるのは最大6行です。レポート全体を表示するにはレポートをスクロールさせます。

最も下の行が表示されるようにスクロールし、従業員MILLERの給与を更新します。


給与を変更し、変更の適用をクリックします。


ページ区切りの保持オンであれば、レポートのリフレッシュ後もスクロール位置は変わりません。


APEX 24.2以前、またはページ区切りの保持オフであれば、スクロール位置は先頭に戻ります。


今回の記事は以上になります。