ヘッダーをスキップ

Oracle Reports レポート作成ガイド
10gリリース2(10.1.2)
B25068-01
目次
目次
索引
索引

戻る 次へ

22
条件付きフォーム・レター・レポートの作成

この章では、条件に応じて、異なる複数のフォーム・レターの生成が可能なレポートについて学習します。この章の手順に従うと、図22-1および図22-2に示すようなレポート出力を生成できます。

図22-1    条件付きフォーム・レター・レポートの出力、基本バージョン


画像の説明

図22-2    条件付きフォーム・レター・レポートの出力、追加バージョン


画像の説明

概要

データ・リレーションシップ

このレポートでは、1つの問合せを使用してすべてのデータを選択します。

レイアウト

このレポートでは、フォーム・レター・レイアウト・スタイルを使用します。また、レターを構成する各種ボイラープレートを作成します。これらのボイラープレート・オブジェクトの印刷を制御するには、垂直方向に縮小するアンカーとPL/SQLフォーマット・トリガーを使用して、指定した条件を満たす従業員に条件ごとに異なるフォーム・レターを作成します。

使用例

このサンプルでは、全従業員を会社主催のピクニックに招待するフォーム・レターを作成します。ただし、成績上位の営業担当者に送るフォーム・レターには、ディナー・パーティへの特別招待を加えます。一方、その他の従業員には、ディナーへの招待のかわりに感謝の文言を加えます。

このサンプル・レポートの作成過程では、次を行います。

条件付きフォーム・レター・レポートのサンプルを表示するには、サンプル・フォルダcondformを開き、Oracle Reportsのサンプルcondforml.rdfを開きます。アクセス方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

22.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のSCOTTサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

22.2 データ・モデルとレイアウトの作成

この例のように、単一問合せレポートを作成する場合、レポート・ウィザードを使用して、データ・モデルとレイアウトを同時に作成できます。

データ・モデルとレイアウトを作成するには:

  1. Reports Builderを起動します。すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択します。

  2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

  3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

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

  5. 「スタイル」ページでレポートのタイトルを入力し、「フォーム・レター」を選択して「次へ」をクリックします。

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

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

    SELECT ENAME, COMM FROM EMP
    ORDER BY ENAME
    


    注意

    この問合せは、次のいずれかの方法で入力できます。

    • 提供されているテキスト・ファイルcondform_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

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

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

     

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


    注意

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


  9. 「フォーム・レター・テキスト」ウィンドウに、レターの最初の段落を次のように入力します。

    Dear Employee  &<ENAME>,
    
    Mark your calendar! You are invited to
    attend the Summit Sporting Goods annual
    picnic on June 15, from 11:00 AM to
    6:00 PM.  Be prepared for lots of food,
    lots of entertainment, and lots of fun.
    

    ヒント

    各行の終わりには、必ず強制改行を挿入してください。 

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

  11. 「テンプレート」ページで、「テンプレートなし」を選択し、「終了」をクリックしてペーパー・デザイン・ビューでレポート出力をプレビューします。

  12. レポートをcondform1_<自分のイニシャル>.rdfという名前で保存します。

22.3 テキストの追加

レポート・ウィザードで基本的なテキストを追加したら、追加テキストを作成する必要があります。このテキストは繰返し枠の内側に収まる必要があります。そのため、テキストを追加する前に、繰返し枠のサイズを変更しておきます。

繰返し枠のサイズを変更するには:

  1. ツールバーの「ペーパー・レイアウト」ボタンをクリックして、ペーパー・レイアウト・ビューを表示します。

  2. オブジェクト・ナビゲータで、「検索」フィールドにR_G_ENAMEと入力し、それを検索します。

  3. R_G_ENAME」をクリックして選択します。ペーパー・レイアウト・ビューでも、その繰返し枠が同時に選択されます。

  4. レポート・エディタのタイトル・バーをクリックして、アクティブなウィンドウにします。

  5. R_G_ENAMEの下部のハンドルをクリックして、約4インチ(10 cm)下にドラッグします。

テキストを追加するには:

  1. ツール・パレットの「テキスト」ツールをクリックします。

  2. 最初のテキスト・オブジェクトの約0.25インチ(0.5 cm)下をクリックします。

  3. 次のテキストを入力します。

    Because you're one of our top sales
    representatives, we would like to
    invite you to a celebration dinner
    after the picnic. Employees such as
    yourself brought in over $10 million
    in increased revenues this year, a
    15% increase over last year. The
    dinner will be held at the City Inn
    from 7:00 PM to midnight. Dinner will
    be served at 7:30 PM. Please reply to
    Human Resources if you plan to
    attend.
  4. ペーパー・レイアウト・ビューの空き領域を1回クリックします。

  5. 「ツール」→「プロパティ・インスペクタ」を選択して、ボイラープレート・テキスト・オブジェクトのプロパティ・インスペクタを表示します。

    • 「一般情報」で、「名前」プロパティを「B_SALESREP」に設定します。

  6. レポート・エディタのタイトル・バーをクリックして、再度アクティブなウィンドウにします。

  7. 前述の手順を繰り返しますが、今度は次のテキストを使用して、名前をB_ALL2とします。

    We would also like to take this
    opportunity to thank you for all of
    your efforts over the last year.  As
    a result of your hard work, company
    revenues increased 15%.
  8. 再度、前述の手順を繰り返しますが、今度は次のテキストを使用して、名前を B_ALL3とします。

    I look forward to seeing you there!
    
    J. King
    President
    Summit Sporting Goods
  9. 元のテキスト・オブジェクトを選択して「ツール」→「プロパティ・インスペクタ」を選択して「名前」プロパティを設定し、このオブジェクトの名前をB_ALLに変更します。

22.4 テキストのロジックの追加

B_SALESREPおよびB_ALL2のテキストは、それぞれ特定の従業員にのみ該当します。したがって、各テキストを表示するかどうかを決定する条件を適用する必要があります。また、オブジェクト(B_SALESREP、B_ALL2など)が印刷されないときは、その下のオブジェクト(B_ALL2、B_ALL3など)がレイアウトで上に移動する必要があります。移動しないと、表示されないオブジェクトがある従業員のレポート出力には、大きな空白ができます。この問題を解決するには、テキスト・オブジェクトをアンカーで連動します。

縮小アンカーを作成するには:

  1. ペーパー・レイアウト・ビューで、ツール・パレットの「アンカー」ツールをクリックします。

  2. B_SALESREP(2番目のテキスト・オブジェクト)の左上隅の線をクリックして、B_ALL(最初のテキスト・オブジェクト)の左上隅までドラッグします。ダブルクリックして、新しいアンカー・オブジェクトを作成します。

  3. 「ツール」→「プロパティ・インスペクタ」を選択して、アンカー・オブジェクトのプロパティ・インスペクタを表示します。

    • 「子の枠の割合(%)」プロパティと「親の枠の割合(%)」プロパティを「0」に設定します。

    • 「垂直方向に縮小」プロパティを「はい」に設定します。

  4. レポート・エディタのタイトル・バーをクリックして、再度アクティブなウィンドウにします。

  5. 前述の手順を繰り返しますが、今度はB_ALL2の左上隅からB_SALESREPの左上隅にドラッグします。

  6. 再度、前述の手順を繰り返しますが、今度はB_ALL3の左上隅からB_ALL2の左上隅にドラッグします。

    図22-3    アンカーのプロパティが表示されているプロパティ・インスペクタ


    画像の説明

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

  1. ペーパー・レイアウト・ビューで、「B_SALESREP」をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

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

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

    function B_SalesrepFormatTrigger return boolean is
    begin
      if :comm >= 500 then return(TRUE);
       else return(FALSE);
      end if;
    end;

    このボイラープレートは、コミッションが$500より多い従業員のレターにのみ印刷されます。

  3. 前述の手順を繰り返しますが、今度はB_ALL2に対して次のPL/SQLを入力します。

    function B_ALL2FormatTrigger return boolean is
    begin
       if ((:comm < 500) or (:comm is null)) then
         return(TRUE);
       else return(FALSE);
       end if;
    end;

    このロジックによって、B_SALESREPが印刷されないレターにのみB_ALL2が印刷されます。

    図22-4    変更したレポートのペーパー・レイアウト・ビュー


    画像の説明

  4. レポートをコンパイルして保存し、実行します。ディナーへの招待があるフォーム・レターと感謝のメッセージがあるフォーム・レターがあることを確認します。

    ヒント

    特定の宛先タイプでこのレポートのプレビューするには、ペーパー・デザイン・ビューで「ファイル」→「プレビュー・フォーマット」を選択して、宛先タイプを選択します。このレポート出力では、画面表示フォントではなくプリンタ・フォントと同じように表示されるので、印刷されたレポートの外観(行の折返しなど)を確認しやすくなります。

    また、条件付きフォーム・レター・レポートを冒頭の図のように便箋に印刷するときは、レイアウトの作成時に、レターのテキストが便箋全体のデザインに合うようにレターヘッドの位置なども考慮する必要があります。 

22.5 まとめ

これで、すべての作業が完了しました。条件付きフォーム・レター・レポートは正常に作成されました。この章で学習した内容は次のとおりです。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第3.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Reports BuilderまたはOracle Technology Network(OTN)から表示できます。


戻る 次へ
Oracle
Copyright © 2003, 2005 Oracle.

All Rights Reserved.
目次
目次
索引
索引