Oracle® Fusion Middleware Oracle Reportsレポート作成のためのユーザーズ・ガイド 11gリリース1(11.1.1) B61376-01 |
|
戻る |
次へ |
この章では、複数階層の目次があるレポートについて学習します。
注意: 目次の生成は、マトリックス・レポートではサポートされていません。 |
この章の手順に従うと、図36-1および図36-2に示すようなレポート出力を生成できます。
概要
この章では、レポートの基本的なデータ・モデルとレイアウトの作成方法を理解していることを前提とし、目次の作成方法について重点的に説明します。データ・モデルとペーパー・レイアウトの作成方法がわからない場合は、Oracle Reportsオンライン・ヘルプを参照してください。また、特定の手順を確認するには、このマニュアルの該当する章を参照してください。
大規模なペーパー・レポートを作成する場合、目次(TOC)を作成することによって、ユーザーが各ページの情報間を移動しやすくなります。第35章では、顧客情報を国別に分類し、目次に国名とページ範囲を表示する基本的な目次の作成方法を学習しました。また、これらの情報の索引を作成する方法についても学習しました。
この章では、複数階層を使用した目次の作成方法について学習します。この階層によって、さらに情報を分類し、ユーザーが特定の情報を見つけやすくすることができます。
第35章と同様に、After Parameter Formトリガーでビルトイン・プロシージャSRW.SET_FORMAT_ORDERを使用することによって、ヘッダー・セクションとトレーラ・セクションの生成前にレポートのメイン・セクションを生成します。これにより、レポートのメイン・セクションでページ番号を作成してから、ヘッダー・セクションの目次にそのページ番号を表示できるようになります。
注意: SRW.SET_FORMAT_ORDERを使用してレポートのフォーマット順序を変更しても、レポートの表示順序は変更されません。つまり、最初にヘッダー・セクション、次にメイン・セクション、最後にトレーラ・セクションが表示されます。SRW.SET_FORMAT_ORDERを使用すると、レポートのフォーマット順序を変更できますが、各セクションの表示順序は変更できません。 |
また、レポート内のサブカテゴリに基づいたフォーマット・トリガーも作成します。このフォーマット・トリガーでは、ビルトイン・パッケージSRW.GET_PAGE_NUMを使用して各レコードのページ番号を取得し、作成したデータベース表にその番号を一時的に格納します。さらにこのフォーマット・トリガーでは、指定した各サブカテゴリのページ番号も取得します。最後にSQL問合せを使用して、レポートの最初に表示される複数階層を使用した目次に、必要な情報を表示します。
Oracle ReportsのSRWビルトイン・パッケージの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。
使用例
ここでは、ある会社が販売しているすべての衣料品を掲載した長大なペーパー・カタログを例にとります。このカタログでは、単純なレポートにすべての項目が一覧表示されています。製品の種類が以前よりもはるかに多くなったため、現在のカタログのレポートは700ページを超えています。そのため、部門(男性用、女性用など)ごとに衣料品を分類する複数階層を使用した目次を作成し、各カテゴリの下にそのカテゴリの各項目を一覧表示することにします。
このサンプル・レポートの作成過程では、次を行います。
SQL*Plusを使用したTOCデータを格納するデータベース表の作成(第1層と第2層のカテゴリとページ番号)。
レポート・セクションの実行順序を変更し、各カテゴリ、サブカテゴリおよびレコードのページ番号をフェッチするための、PL/SQLエディタを使用したAfter Parameter Formトリガーとフォーマット・トリガーの作成。
作成したテーブルに格納されている情報を取得するためのデータ・モデルでの2番目の問合せの作成。
ヘッダー・セクションに2階層のヘッダーを表示するグループ上レポート・ブロックを作成するための、レポート・ブロック・ウィザードを使用した、目次を表示するレポート・ブロックの作成。また、レポートの各ヘッダーのページ番号を表示するフィールドをレイアウトに追加します。
複数階層の目次があるレポートのサンプルを表示するには、サンプル・フォルダmultileveltoc
を開き、multilevel_toc.rdf
を開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。この章で使用されているサンプル・ファイルのリストと説明を表36-1に示します。