2025年2月4日火曜日

APEX 24.2の複数選択とポップアップLOVの機能追加について

Oracle APEX 24.2では、ページ・アイテムのタイプの複数選択ポップアップLOVに機能が追加されました。
  • APEX 24.2の複数選択では、選択された項目の個数が表示されるようになりました。
  • APEX 24.2のポップアップLOVでは検索の設定が変更され、1つ選択複数選択およびコンボボックスと同じ設定になりました。
APEX 24.2では以下のように動作します。APEX 24.2では国旗のアイコンが追加されているため、国の選択時に表示できます。複数選択で数値が表示されています。また、ポップアップLOVは、検索が複数選択と同じくらい速くなっています。


APEX 24.1では、同様に作成したアプリケーションでも国旗がない分、寂しい感じがします。複数選択では数値は表示されず、ポップアップLOVの検索も若干遅いです。


以下に確認に使用したアプリケーションの作成手順と、APEX 24.2で変更された設定を紹介します。

アプリケーションが使用するデータ・ソースとして、サンプル・データセットをインストールします。


複数選択ポップアップLOVで使用するLOVを、共有コンポーネントとして作成します。

新規に空のAPEXアプリケーションを作成し、共有コンポーネントLOVを開きます。


作成をクリックします。


LOVの作成最初からとします。へ進みます。


名前LOV_COUNTRIESとします。ソースとしてSQL問合せを設定する予定なので、タイプDynamicです。

へ進みます。


ソース・タイプSQL問合せを選択し、SQL SELECT文を入力に以下を記述します。列REGION_NAMEグループに使用します。列ICONは国旗のアイコンですが、APEX 24.2でのみ意味を持ちます。
select
    c.country_id
    , c.name country_name
    , c.country_code
    , c.iso_alpha2
    , c.capital capital_name
    , c.population
    , r.name region_name
    , s.name sub_region_name
    , 'fa-flag-' || lower(c.iso_alpha2) icon
from eba_countries c join eba_country_regions r on c.region_id = r.id
     join eba_country_sub_regions s on c.sub_region_id = s.id
へ進みます。


戻り列COUNTRY_ID表示列COUNTRY_NAMEです。グループアイコンは、後で追加表示列として設定する必要があります。

以上で作成します。


作成されたLOV_COUNTRIESを開きます。


列のマッピンググループREGION_NAMEアイコンICONを割り当てます。

追加表示列列の選択をクリックします。


グループアイコンなど、列のマッピングに含めた列は必ず追加表示列に含めます。今回の例ではREGION_NAMEICONです。

更新をクリックします。


REGION_NAMEICONグループアイコンとして使用するため追加表示列に含めますが、表示や検索の対象にはしません。表示可能検索可能については、いいえにします。

以上で変更の適用をクリックします。


LOVの準備ができました。


最初に複数選択の機能拡張について確認します。


APEX 24.2では、値の表示形式カンマ区切りリストのとき、選択されている数が表示されるようになりました。


数をクリックすると、選択されている要素が表示されます。


通常は、設定デフォルトの使用オンでも、この数値は表示されます。


これは、共有コンポーネントコンポーネント設定にて、複数選択のデフォルトが設定されているためです。


コンポーネント設定複数選択を開きます。


設定値の表示方式カンマ区切りリストになっていれば、デフォルトでこのAPEX 24.2の新機能が有効になります。


APEX 24.2のポップアップLOVには、プロパティに検索の項目が新設されました。


ポップアップLOVより後に追加されたタイプである、コンボボックス1つ選択および複数選択は、すべてプロパティとして検索を持っています。

以下は、複数選択の例です。


ポップアップLOVについても、検索の設定はこれらの新しいコンポーネントと同じになりました。

そのためAPEX 24.2以前にあった、入力時に検索は無くなりました。


代わりに、他のコンポーネントと同じく検索時にフェッチが追加されています。


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

簡単なアプケーションですが、今回作成したアプリケーションのエクスポートを以下に置きました。
https://github.com/ujnak/apexapps/blob/master/exports/apex242-new-feature-select-many-popup-lov.zip

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