2024年7月25日木曜日

各種レポートでのソート設定について

Oracle APEXで一般に使用されている対話モード・レポート、対話グリッド、クラシック・レポートでは、ソースのSQL問合せにORDER BY句を含めず、列に対してソートの設定を行なうことが推奨されています。

以下より、サンプル・データセットのEMP/DEPTに含まれる表EMPをソースとした対話グリッド、対話モード・レポート、クラシック・レポートのそれぞれで、給与の降順で10人だけをレポートに表示する設定を紹介します。

対話グリッド


ソースSQL問合せを以下とします。

select * from emp


SALユーザーの有効化ソートオンにします。


対話グリッドの属性ページ区切りタイプページにします。スクロールの場合、対話グリッドに表示される行数はリージョンの大きさで決まります。ページにすると表示される行数を指定できます。


対話グリッドのアクションデータからソートを開きます。


ソート列としてSalを追加し、方向降順選択して保存します。


アクション書式ページごとの行数を開き、10を選択します。


これでレポートに給与の降順で10行が(最初に)表示されるようになりました。

アクションレポート保存を実行し、デフォルトのレポート形式として設定します。




対話モード・レポート



ソースSQL問合せを以下とします。

select * from emp


SALユーザーの有効化ソートオンにします。


対話モード・レポートのアクションデータからソートを開きます。


1番目のSal方向降順を選択し、適用します。


アクション書式ページごとの行数を開き、10を選択します。


これでレポートに給与の降順で10行が(最初に)表示されるようになりました。

アクションレポートレポートの保存を開きます。


保存(開発者にのみ表示)デフォルトのレポートとして保存を選択し、適用します。


デフォルトレポート・タイプとしてを選択し、適用します。


これで、現在のレポートがデフォルトの表示形式として保存されました。


クラシック・レポート



ソースSQL問合せを以下とします。

select * from emp


SALを選択し、ソートデフォルト順序方向降順を設定します。ユーザーによるソート方向の変更を許可しない場合は、ソート可能オフにします。

クラシック・レポートではレポートの表示形式を保存することができず、デフォルトの表示形式というのもありません。ソート順を限定する場合は、他の列のソートソート可能オフにする必要があります。


クラシック・レポートの属性レイアウト行数のタイプ静的値を選択し、行数として10を設定します。


これでレポートに給与の降順で10行が(最初に)表示されるようになりました。


クラシック・レポートではOrder by項目(並替え基準)を設定できます。並替え基準については以下の記事で紹介しています。

APEX 22.1の新機能 - 並替え基準を使う