ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Reportsレポート作成のためのユーザーズ・ガイド
11gリリース1(11.1.1)
B61376-01
  ドキュメント・ライブラリへ
ライブラリ
製品リストへ
製品
目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

35.2 単純な目次の作成

この項の手順では、複数のページで構成される大規模なレポートに対して、基本的な目次を作成する方法について説明します。作成する目次は次のようになります。

図35-3 単純な目次

図35-3の説明は次にあります。
「図35-3 単純な目次」の説明

35.2.1 TOCデータを格納するデータベース表の作成

この項の手順では、目次に表示するレコードのページ番号を格納する表をデータベースに作成する方法について説明します。データベースに表を作成する権限があるか不明な場合は、データベース管理者に問い合せてください。

データベースに表を作成するには:

  1. SQL*Plusを起動します。

    • (Windowsの場合)「スタート」メニューで、「プログラム」→「Oracle Application Server - oracle_home_name」→「Application Development」→「SQL Plus」を選択します。

    • (UNIXの場合)sqlplusと入力します。

  2. 接続文字列sh/sh@<データベース名>などを使用して、データベースのSales Historyスキーマに接続します。

  3. SQLプロンプトに次の行を入力します。

    create table toc_example (topic varchar2(100), page number);
    
  4. [Enter]を押します。

    表が作成されたことを示す通知が表示されます。

  5. SQL*Plusを終了します。

35.2.2 グループ上レポートの作成

この項の手順では、Reports Builderで単純なグループ上レポートを作成する方法について説明します。このグループ上レポートでは、国名を表示し、各国名の下にその国の顧客と顧客の電子メール・アドレスを表示します。目次は、このレポートに出力される国名に基づいて作成されます。

単純なグループ上レポートを作成するには:

  1. Reports Builderで、「ファイル」→「新規」→「レポート」を選択し、手動によるレポートの作成を選択します。

  2. 表示されるデータ・モデル・ビューで、キャンバスを右クリックして、ポップアップ・メニューから「レポート・ウィザード」を選択します。

  3. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

  4. 「スタイル」ページで、「グループ上」を選択し、「次へ」をクリックします。

  5. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

  6. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

    SELECT ALL COUNTRIES.COUNTRY_NAME,
               CUSTOMERS.CUST_LAST_NAME,
               CUSTOMERS.CUST_FIRST_NAME,
               CUSTOMERS.CUST_email
    FROM CUSTOMERS, COUNTRIES
    WHERE (CUSTOMERS.COUNTRY_ID = COUNTRIES.COUNTRY_ID) 
    

    注意:

    この問合せは、次のいずれかの方法で入力できます。
    • 提供されているテキスト・ファイルtoc_index_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

    • クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

    • データ・ソース定義」フィールドにコードを入力します。


  7. 次へ」をクリックします。


    注意:

    データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第35.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

  8. グループ」ページで、「COUNTRY_NAME」をクリックし、「>」ボタンをクリックして、このフィールドを「グループ・フィールド」リストに移動します。

  9. 次へ」をクリックします。

  10. フィールド」ページで、「>>」ボタンをクリックしてすべてのフィールドを「表示フィールド」リストに移動し、「次へ」をクリックします。

  11. 合計」ページで「次へ」をクリックします。

  12. ラベル」ページで「次へ」をクリックします。

  13. テンプレート」ページで、「終了」をクリックします。

  14. ツールバーの「データ・モデル」ボタンをクリックします。作成したデータ・モデルは次のようになります。

    図35-4 グループ上レポートのデータ・モデル

    図35-4の説明は次にあります。
    「図35-4 グループ上レポートのデータ・モデル」の説明

  15. ツールバーの「ペーパー・レイアウト」ボタンをクリックします。ペーパー・レイアウト・ビューは次のようになります。

    図35-5 グループ上レポートのペーパー・レイアウト・ビュー

    図35-5の説明は次にあります。
    「図35-5 グループ上レポートのペーパー・レイアウト・ビュー」の説明

  16. レポートをtoc_<自分のイニシャル>.rdfという名前で保存します。これで、レポートのデータ・モデルと基本的なレイアウトの作成が完了しました。

35.2.3 After Parameter Formトリガーとフォーマット・トリガーの作成

この項に示す手順に従って、2つのトリガーを作成します。最初のトリガーは、ビルトイン・プロシージャSRW.SET_FORMAT_ORDERを使用してレポートのメイン・セクションを最初にフォーマットし、その後ヘッダー・セクションとトレーラ・セクションをフォーマットします。2番目のトリガーは、それぞれの国名が表示されているページの番号をフェッチして、第35.2.1項「TOCデータを格納するデータベース表の作成」で作成した表にその情報を格納します。

35.2.3.1 After Parameter Formトリガーの作成

After Parameter Formトリガーは、パラメータ・フォームの実行後に実行されるファンクションです。この項では、このトリガーを設定してレポートの実行順序を変更し、メイン・セクションが最初に実行されるようにします。

After Parameter Formトリガーを作成するには:

  1. オブジェクト・ナビゲータで、対象のレポート名(TOC_<自分のイニシャル>)の下にある「レポート・トリガー」ノードを開きます。

  2. AFTER PARAMETER FORM」を右クリックし、ポップアップ・メニューで「PL/SQLエディタ」を選択します。

  3. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

    function AfterPForm return boolean is
    begin
      srw.set_format_order(srw.main_section, srw.header_section, srw.trailer_     section);  
      return (TRUE);
    end;
    

    注意:

    提供されているファイルtoc_index_code.txtからコードをコピーして貼り付けることもできます。

  4. コンパイル」をクリックします。

  5. コードがコンパイルされた後、「閉じる」をクリックします。

35.2.3.2 フォーマット・トリガーの作成

この項では、F_COUNTRY_NAMEフィールドに基づいたフォーマット・トリガーを作成します。このフィールドには国名が表示されます。このフォーマット・トリガーでは、それぞれの国名のページ番号をフェッチします。これにより、ユーザーが目次に表示されている国名に基づいて、レポートの様々な部分に移動できるようになります。

フォーマット・トリガーを作成するには:

  1. オブジェクト・ナビゲータで、レポートの「ペーパー・レイアウト」ノードを開き、「メイン・セクション」→「ボディ」→「M_G_1_GRPFR」→「R_G_1」までナビゲートして、「F_COUNTRY_NAME」をクリックします。


    ヒント:

    このフィールドが見つからない場合は、オブジェクト・ナビゲータの上部にある「検索」フィールドを使用してください。

  2. ツール」→「プロパティ・インスペクタ」を選択し、このフィールドのプロパティ・インスペクタを表示します。

  3. 拡張レイアウト」で、「フォーマット・トリガー」プロパティ・フィールドをダブルクリックし、PL/SQLエディタを表示します。

  4. PL/SQLエディタで、次のコードを入力します。

    function F_COUNTRY_NAMEFormatTrigger return boolean is
    pageNum number;
    begin
      -- get current page number
      srw.get_page_num(pageNum);
      -- insert row into table
      insert into toc_example
      values (:country_name, pageNum);  
      return (TRUE);
    end;
    

    注意:

    提供されているファイルtoc_index_code.txtからコードをコピーして貼り付けることもできます。

  5. コンパイル」をクリックします。

  6. コードがコンパイルされた後、「閉じる」をクリックしてプロパティ・インスペクタを閉じます。

  7. レポートを保存します。

35.2.4 データ・モデルでの2番目の問合せの作成

この項の手順では、各国名の下にあるデータのページ範囲を計算する式列を持つ2番目の問合せをデータ・モデルで作成する方法について説明します。この問合せでは、第35.2.1項「TOCデータを格納するデータベース表の作成」で作成したデータベース表から情報をフェッチします。その後、表形式のレイアウトを作成し、この情報を目次に表示します。

式列を持つ2番目の問合せを作成するには:

  1. データ・モデル・ビューで、ツール・パレットの「SQL問合せ」ツールをクリックし、問合せQ_1の右にあるデータ・モデル・ビューの空いている場所をクリックして、「SQL問合せ文」ダイアログ・ボックスを表示します。

  2. SQL問合せ文」フィールドに、次のSELECT文を入力します。

    SELECT 
        TOPIC, 
        MIN(PAGE) FROMPAGE,
        MAX(PAGE) TOPAGE
    FROM TOC_EXAMPLE
    GROUP BY TOPIC
    

    注意:

    この問合せは、次のいずれかの方法で入力できます。
    • 提供されているテキスト・ファイルtoc_index_code.txtからコードをコピーして「SQL問合せ文」フィールドに貼り付けます。

    • クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

    • SQL問合せ文」フィールドにコードを入力します。


  3. OK」をクリックします。作成したデータ・モデルは次のようになります。

    図35-6 2番目の問合せを持つデータ・モデル

    図35-6の説明は次にあります。
    「図35-6 2番目の問合せを持つデータ・モデル」の説明

  4. データ・モデル・ビューで、ツール・パレットの「式列」ツールをクリックし、2番目の問合せのグループ(G_TOPIC)内をクリックします。

  5. 式列が選択されている状態で、「ツール」→「プロパティ・インスペクタ」を選択してプロパティ・インスペクタを表示します。

  6. 一般情報」で、「名前」プロパティを「TOC_pages」、「データ型」プロパティを「Character」に設定します。

  7. プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。

  8. PL/SQLエディタで、テンプレートを使用して次のコードを入力します。

    function TOC_pagesFormula return Char is
    begin
      if :fromPage = :toPage then
      return (:fromPage);
      else
      return (:fromPage ||'-'|| :toPage);
      end if;
    end;
    

    注意:

    提供されているファイルtoc_index_code.txtからコードをコピーして貼り付けることもできます。

  9. コンパイル」をクリックします。

  10. コードがコンパイルされた後、「閉じる」をクリックします。

  11. レポートを保存します。

35.2.5 目次を表示するレポート・ブロックの作成

この項の手順では、レポートのヘッダー・セクションに表形式のレポート・ブロックを作成する方法について説明します。このレポート・ブロックには、目次のヘッダー(この例では国名)と、レポート内でその情報がある場所を示すページ範囲を表示します。

ヘッダー・セクションに表形式のレポート・ブロックを作成するには:

  1. ペーパー・レイアウト・ビューで、ツールバーの「ヘッダー・セクション」ボタンをクリックします。

  2. ツール・パレットの「レポート・ブロック」ツールをクリックし、ペーパー・レイアウト・ビューで約5インチ(12.5 cm)×約1.5インチ(4 cm)の長さの領域を描画します。マウス・ボタンを放すと、レポート・ブロック・ウィザードが表示されます。

  3. 「スタイル」ページで、「表形式」を選択し、「次へ」をクリックします。

  4. 「グループ」ページで、「G_TOPIC」をクリックし、「」をクリックして、このフィールドを「表示グループ」リストに移動し、「次へ」をクリックします。

  5. 「フィールド」ページで、「使用可能フィールド」リストの次の各フィールドをクリックし、「>」ボタンをクリックしてそれらのフィールドを「表示フィールド」リストに移動して、「次へ」をクリックします。

    • TOPIC

    • TOC_pages

  6. 「ラベル」ページで「次へ」をクリックします。

  7. 「テンプレート」ページで、「終了」をクリックします。

    ペーパー・レイアウト・ビューでのレポート・ブロックは次のように表示されます。

    図35-7 ヘッダー・セクションのペーパー・レイアウト・ビュー

    図35-7の説明は次にあります。
    「図35-7 ヘッダー・セクションのペーパー・レイアウト・ビュー」の説明

  8. レポートを保存します。

35.2.6 ペーパーを対象とした単純な目次を使用するレポートの実行

ペーパーに対してレポートを実行するには:

  • ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックします。


    注意:

    目次(TOC)を生成する場合は、「ペーパー・レイアウトを実行」ボタンをクリックする必要があります。「ペーパー・デザイン」ボタンをクリックしてもフォーマット順序の変更は有効にならないため、TOCは生成されません。

次のような目次がレポートの最初のページに表示されます。

図35-8 レポートの目次ページ

図35-8の説明は次にあります。
「図35-8 レポートの目次ページ」の説明

レポート内の様々なページに移動することによって、各国の顧客データを参照できます。たとえば1ページに移動すると、アルゼンチンの顧客の電子メール・アドレスが表示されます。

図35-9 アルゼンチンの顧客の出力結果

図35-9の説明は次にあります。
「図35-9 アルゼンチンの顧客の出力結果」の説明


注意:

作成したレポートは、提供されているサンプル・ファイルtoc.rdfと比較できます。「プログラム」→「コンパイル」→「すべて」を選択してPL/SQLをコンパイルしてから、ペーパーに対してレポートを実行します。

複数階層を持つ目次の作成の詳細は、第36章「複数階層の目次を使用したペーパー・レポートの作成」を参照してください。