2025年2月13日木曜日

APEX 24.2のテンプレート・コンポーネントのグループ化のサポートとアバターの複数対応について

Oracle APEX 24.2のテンプレート・コンポーネントの以下の新機能を確認します。
  • グループ化のサポート
  • Content Rowのグループ・ヘッダー
  • Avatorの複数(レポート)対応
これらの機能を確認するために、サンプル・データセットのデータを使用します。

APEX 24.2で新設されたレポート・グループが定義されているテンプレート・コンポーネントであれば、グループ化できます。標準のテンプレート・コンポーネントではContent Rowだけがグループ化をサポートしているようです。

以下よりテンプレート・コンポーネントの新機能を確認します。

空のAPEXアプリケーションを作成し、ホーム・ページにタイプContent Rowのリージョンを作成します。

ソースSQL問合せに以下を設定します。
select
    c.country_id
    ,c.name country_name
    ,'fa-flag-' || lower(c.iso_alpha2) icon
    ,c.capital
    ,c.population
    ,r.name region_name
from eba_countries c join eba_country_regions r 
    on c.region_id = r.id

グループ化を適用するには、グループ化する列を選択し、外観グループオンにします。SELECT文のGROUP BY句に与える列にあたります。

今回の例では列REGION_NAMEでグループ化します。


グループ化を設定した場合、主キー列の設定が必須になります。今回の例では列COUNTRY_IDソース主キーオンにします。


Content Rowのリージョンの属性を設定します。グループ化するため、外観表示複数(レポート)になります。設定Title&COUNTRY_NAME.Descriptionに以下を記述します。

Capital: &CAPITAL. Population: &POPULATION.

Display Avatarオンにし、AvatarTypeIconIcon&ICON.ShapeNo ShapeSizeLargeを設定します。これらの設定は、それぞれの行に適用されます。

グループ化の設定は、Groupingのセクションで行います。この部分がAPEX 24.2の新機能のContent Row Group Headers(Content Rowのグループ・ヘッダー)の設定です。

Title&REGION_NAME.Iconfa-map-oを設定します。


一般にグループ化する場合、並替え基準(SELECT文のORDER BY句)も設定します。今回は並替え基準タイプ静的値を選択し、ORDER BY句REGION_NAME,COUNTRY_NAMEを設定しています。最初に現れる列はグループオンにした列である必要があります。


以上の設定を行うと、Content Rowのリージョンは以下のように表示されます。


Avatarについても、同じSQL問合せを設定して確認します。


Avatarの属性を開きます。属性表示複数(レポート)を選択します。APEX 24.2以前は、単一(部分)のみでした。


設定SpacingAutoのときは、配置されているAvatar(今回は国旗のアイコン)が、リージョンの横幅に合わせて均等に配置されます。


SpacingStackのときは、Avatarが重なります。


Avatarのようにグループ化をサポートしていないテンプレート・コンポーネントに対してグループを設定すると、以下のようにグループ・テンプレートがない、というエラーが発生します。


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

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

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