2024年10月22日火曜日

APEX 24.1の対話グリッドに追加されたselectionStateItemの使い方

Oracle APEX 24.1より対話グリッドにselectionStateItemというオプションが追加されました。このオプションにページ・アイテムを指定することで、対話グリッド上で選択した行の主キーの値をページ・アイテムに設定できます。

以前は対話グリッドのイベント選択の変更[対話グリッド]で呼び出される動的アクションを作成し、JavaScriptコードにて対話グリッド上の選択されたレコードの取得とページ・アイテムへの主キー値の設定を実施する必要がありました。

この実装方法については、記事「レポート上で選択した行のIDをページ・アイテムに設定する」で紹介しています。この記事ではクラシック・レポートでの実装も紹介していますが、Oracle APEX 24.1からはテンプレート・コンポーネント属性行選択単一選択複数選択)が追加されたため、こちらもコーディングはほぼ不要になっています。

対話グリッドでのselectionStateItemの設定は、初期化JavaScriptファンクション内で行います。

ページ・アイテムを作成し、そのページ・アイテムを以下のようなコードの記述によりselectionStateItemとして設定します。

function( config ) {
    config.defaultGridViewOptions = {
        selectionStateItem: "P1_SELECTION"
    };
    return config;
}

対話グリッドで行を選択すると、以下のように動作します。一般的にはページ・アイテムは非表示にしますが、あえてページ・アイテムの値を表示させています。


今回の記事は以上です。

簡単なアプリケーションですが、エクスポートを以下に置きました。
https://github.com/ujnak/apexapps/blob/master/exports/sample-grid-selectionstateitem.zip

Oracle APEXのアプリケーション作成の参考になれば幸いです。