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

前
 
次
 

45.2 SQL問合せとXML問合せを使用したレポートの手動作成

レポートは、レポート・ウィザードを使用して作成するか、または独自に作成できます。このレポートを作成するには、SQL問合せとXML問合せという2つの問合せを作成する必要があります。

45.2.1 新規レポートのSQL問合せの作成

SQL問合せを作成するには:

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

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

    オブジェクト・ナビゲータに、新規のレポートが「MODULE 2」などの名前で表示されます。新規レポートのデータ・モデル・ビューも表示されます。

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

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

    SELECT W.WAREHOUSE_ID,
           W.WAREHOUSE_NAME, 
           L.CITY, 
           L.STATE_PROVINCE, 
           C.COUNTRY_NAME
    FROM WAREHOUSES W, 
         HR.LOCATIONS L,
         HR.COUNTRIES C
    WHERE (W.LOCATION_ID = L.LOCATION_ID(+))
      AND (L.COUNTRY_ID = C.COUNTRY_ID(+))  
    ORDER BY C.COUNTRY_NAME, W.WAREHOUSE_NAME
    

    注意:

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

    • 提供されているテキスト・ファイルxmlpds_sql.txtからコードをコピーして、「SQL問合せ文」フィールドに貼り付けます。

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

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


  5. 「OK」をクリックします。


    注意:

    「接続」ダイアログ・ボックスが表示された場合は、ユーザーID、パスワード、およびサンプル・スキーマを含んでいるデータベースの名前を入力します。


    次のようにデータ・モデルがデータ・モデル・ビューに表示されます。

    図45-2 XML PDSの例のSQL問合せで使用するデータ・モデル

    図45-2の説明が続きます
    「図45-2 XML PDSの例のSQL問合せで使用するデータ・モデル」の説明

  6. レポートをinventoryreport_xml_your_initials.rdfという名前で保存します。

これで、レポートのデータを取得するSQL問合せの作成が完了しました。

45.2.2 XMLデータ・ソースへのアクセスに使用するXML問合せの作成

この項では、XMLデータ・ソースにアクセスするための問合せを作成します。提供されている結果のレポートを参照すると、作成した問合せが正しいかどうかを確認できます。ただし、データ定義ファイルへのパスを、提供されているサンプル・ファイルの場所の名前で更新する必要があります。

XML問合せを作成するには:

  1. データ・モデル・ビューで、「挿入」→「問合せ」を選択してデータ・ウィザードを表示します。

  2. 「データ・ウィザードようこそページ」が表示されたら、「次へ」をクリックします。

  3. 「問合せ」ページで「次へ」をクリックします。

  4. 「データ・ソース」ページで、XML Queryをクリックし、「次へ」をクリックします。

  5. 「データ」ページで「問合せ定義」をクリックし、「XML問合せの定義」ダイアログ・ボックスを表示します。

  6. 「XML問合せの定義」ダイアログ・ボックスで、「データ定義」の下の「参照」をクリックして、提供されているXSDファイルwarehouse_inventory.xsdを検索して開きます。

  7. データ・ソース」の下の「参照」をクリックして、提供されているXMLファイルwarehouse_inventory.xmlを検索して開きます。このXMLファイルにはデータが含まれています。

    作成したデータ定義をオラクル社提供のデータ定義と比較する場合は、データ定義の場所を、作成したファイルの場所で置き換えてください。

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

  9. データ・ウィザードで、「データ」ページを開いたまま「次へ」をクリックします。

  10. 「グループ」ページで「次へ」をクリックします。

  11. 終了」をクリックして、データ・モデル・ビューにデータ・モデルを表示します。次の例のようになります。

    図45-3 XML問合せとSQL問合せを含むXML PDSの例のデータ・モデル

    図45-3の説明が続きます
    「図45-3 XML問合せとSQL問合せを含むXML PDSの例のデータ・モデル」の説明

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

これで、提供されているXMLデータ・ソースにアクセスするためのXML問合せが作成されました。

45.2.3 2つの問合せ間のデータ・リンクの作成

次に、SQL問合せとXML問合せをリンクして、企業データと各ローカル倉庫のデータにアクセスできるようにする必要があります。

データ・リンクを作成するには:

  1. データ・モデル・ビューで、ツール・パレットの「データ・リンク」ツールをクリックします。

  2. 最初の問合せ(Q_1)で、「WAREHOUSE_ID」列をクリックします。

  3. カーソルをそのまま2番目の問合せ(Q_2)の「WAREHOUSE_ID1」列までドラッグします。

    その結果、データ・モデルは次のようになります。

    図45-4 SQL問合せとXML問合せ間にデータ・リンクが作成されたデータ・モデル

    図45-4の説明が続きます
    「図45-4 SQL問合せとXML問合せ間にデータ・リンクが作成されたデータ・モデル」の説明

    WAREHOUSE_ID列がQ_1の下部でハイライトされ、そこから伸びた線がWAREHOUSE_ID1列を指していることがわかります。

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

これで、2つの問合せのWAREHOUSE_ID列間にデータ・リンクが作成されました。

45.2.4 レポート・ウィザードを使用したレポートのレイアウトの作成

レポートを実行するには、事前にレイアウトを定義する必要があります。それには、レポート・ウィザードを使用する方法が最も簡単です。

ペーパー・レイアウトを作成するには:

  1. データ・モデル・ビューで、キャンバスを右クリックして「レポート・ウィザード」を選択します。

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

  3. スタイル」ページで「グループ上」を選択します。

  4. 「グループ」ページで、G_WAREHOUSE_IDG_WAREHOUSE_ID1グループが、「グループ・フィールド」リスト内で印刷方向が「縦」としてリストされていることを確認します。

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

  6. ラベル」ページで、必要に応じてラベルを調整します。

  7. 「テンプレート」ページで、「事前定義テンプレート」を選択し、「Beige」をクリックします。次に「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次の例のようになります。

    図45-5 XML PDSレポートのペーパー・デザイン・ビュー

    図45-5の説明が続きます
    「図45-5 XML PDSレポートのペーパー・デザイン・ビュー」の説明

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

これでペーパー・レポートのレイアウトが完成しました。


注意:

提供されているレポートinventory_report.rdfを実行することもできます。このレポートを実行するには、事前にデータ・モデル・ビューでXML問合せをダブルクリックし、XMLデータ・ソースとして該当のXSDファイルおよびXMLファイルを指定します。


45.2.5 レポートの行カラーの交互適用

レポートの作成が完了したので、次にサマリー列を使用して行に異なるカラーを交互に適用することで、ユーザーが見やすいレポートにします。

行を数えるためのサマリー列を作成するには:

  1. データ・モデル・ビューで、ツール・パレットの「サマリー列」ツールをクリックします。

    ペーパー・デザイン・ビューがまだ表示されている場合は、ツールバーの「データ・モデル」ボタンをクリックしてデータ・モデル・ビューを表示します。

  2. XML問合せグループ(G_WAREHOUSE_ID1)内をクリックして、サマリー列を作成します。

  3. 新しいサマリー列オブジェクト(CS_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

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

    • 」で、「列タイプ」プロパティを「サマリー」、「データ型」プロパティを「Number」に設定します。

    • サマリー」で、「ファンクション」プロパティを「カウント」、「ソース」プロパティを「PRODUCT_NAME」に設定します。

行カラーを変更するプロシージャを作成するには:

  1. オブジェクト・ナビゲータで、レポートの「プログラム・ユニット」ノードをクリックします。

  2. ツールバーで「作成」ボタンをクリックして、「新規プログラム・ユニット」ダイアログ・ボックスを表示します。

  3. 新規プログラム・ユニット・ダイアログ・ボックスで、「名前」フィールドにlinecolorsと入力します。

  4. プロシージャ」を選択し、「OK」をクリックして新しいプログラム・ユニットのPL/SQLエディタを表示します。

  5. PL/SQLエディタで、交互の行のテキスト・カラーを青に変更する次のPL/SQLコードを入力します。

    PROCEDURE LineColors IS
    BEGIN
      if (:LineNo mod 2=0) then
            srw.set_text_color('blue');
      else 
        srw.set_text_color('black');
            end if; 
    END; 
    

    注意:

    xmlpds_code.txtファイルに含まれているプロシージャから、このコードをコピーして貼り付けることもできます。その場合は、Line Colors Procedureの下のテキストをコピーしてください。


  6. コンパイル」をクリックしてプロシージャをコンパイルします。

    エラーが表示された場合は、コードが正しいこと、および前述の手順でサマリー列を作成済であることを確認します。

  7. 閉じる」をクリックします。


    注意:

    または、前述の項の手順に従い、次のPL/SQLコードを使って、交互の行の塗りつぶしカラーを変更することもできます。このサンプル・コードでは、交互の行の塗りつぶしカラーを赤と青に変更しています。

    PROCEDURE LineColors IS
    BEGIN
      if (:LineNo mod 2=0)
       then
         srw.set_foreground_fill_color('blue');
         srw.set_fill_pattern('solid');
      else
       srw.set_foreground_fill_color('red');
       srw.set_fill_pattern('solid');
      end if;
    END; 
    

プロシージャをコールする各フィールドにフォーマット・トリガーを作成するには:

  1. オブジェクト・ナビゲータで、レポート名の下の「ペーパー・レイアウト」ノードを展開し、「メイン・セクション」→「ボディ」→「M_G_WAREHOUSE_ID_GRPFR」→「R_G_WAREHOUSE_ID」→「M_G_WAREHOUSE_ID1_GRPFR」→「R_G_WAREHOUSE_ID1」までナビゲートします。

  2. R_G_WAREHOUSE_ID1」で「F_PRODUCT_ID」をダブルクリックしてプロパティ・インスペクタを表示します。


    注意:

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


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

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

    function F_PRODUCT_IDformatTrigger return Boolean is
    begin
      LineColors;
      return (TRUE);
    end;
    

    注意:

    太字のテキストには触れないでください。太字テキストの下のコードを入力して、フォーマット・トリガーを作成します。xmlpds_code.txtファイルに含まれているプロシージャから、このコードをコピーして貼り付けることもできます。その場合は、Format Trigger Codeの下のテキストをコピーしてください。


  5. 前述の手順で使用したものと同じコードを使用して、次の各フィールドのフォーマット・トリガーを追加します。コードの先頭行を削除しないようにしてください。この行には、フォーマット・トリガー名が定義されています。

    • F_PRODUCT_NAME

    • F_QUANTITY_ON_HAND

    • F_WAREHOUSE_ID1

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

  7. ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックして、ペーパーを対象としてレポートを実行します。レポートの表示は次のようになります。

    図45-6 交互の行カラーを適用したXML PDSレポート

    図45-6の説明が続きます
    「図45-6 交互の行カラーを適用したXML PDSレポート」の説明

これで、レポートに対する行カラーの交互適用が完了しました。

45.2.6 グループ・フィルタを使用したXMLデータのフィルタリング

XMLファイルに大量のデータが含まれている場合は、データのソートやフィルタリングが必要になることがあります。グループ・フィルタと階層を作成することで、ソートとフィルタリングが可能となります。この項の手順では、ユーザーが定義した数量の在庫品目のみを表示するフィルタの作成方法について説明します。このフィルタが基づくパラメータは、ユーザーが実行時に入力できます。そして、データ・モデルで階層を作成することによって、レポート内のデータをグループ化します。

ユーザー・パラメータとグループ・フィルタを作成するには:

  1. オブジェクト・ナビゲータで、「ユーザー・パラメータ」ノードの下に、データ型が「Number」、幅20、初期値50の新しいユーザー・パラメータP_MAXQTYを作成します(第4.11.2項「ユーザー・パラメータの作成」を参照)。

  2. データ・モデル・ビューで、XML問合せの「G_WAREHOUSE_ID1」グループをダブルクリックして、このグループのプロパティ・インスペクタを表示します。

  3. プロパティ・インスペクタの「グループ上」で、次の操作を行います。

    • 「フィルタ・タイプ」プロパティを「PL/SQL」に設定します。

    • 「PL/SQLフィルタ」プロパティ・フィールドをクリックして、PL/SQLエディタを表示します。

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

    function G_WAREHOUSE_ID1GroupFilter return boolean is
    begin
      if :quantity_on_hand < :P_maxqty then
         return (TRUE);
      else
             return (false);
      end if;
    end;
    

    注意:

    提供されているファイルxmlpds_code.txtからこのコードをコピーして貼り付けることもできます。「Group Filter Code」というヘッダーの下のコードをコピーします。


  5. コンパイル」をクリックして、エラーがあれば修正します。


    注意:

    PL/SQLのコンパイル方法がわからない場合は、PL/SQLのリファレンス・マニュアルを参照してください。


  6. コードが正常にコンパイルされたら、「閉じる」をクリックします。

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

  8. ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックして、ペーパーを対象としてレポートを実行します。パラメータ・フォームが表示されます。このフォームで、レポートに表示される品目の数量を調整できます。

    提供されているレポートinventoryreport.rdfを実行し、その結果をReports Builderで参照することもできます。

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

XML問合せに階層を作成するには:

  1. データ・モデル・ビューで、XML問合せの「PRODUCT_ID」列をクリックし、そのまま問合せ名と「G_WAREHOUSE_ID1」グループの間にドラッグします。

    作成したデータ・モデルは次のようになります。

    図45-7 グループ階層を持つデータ・モデル

    図45-7の説明が続きます
    「図45-7 グループ階層を持つデータ・モデル」の説明


    注意:

    前述の図で、G_WAREHOUSE_ID1の上に緑色の円が表示されていることに注意してください。この円は、そのグループに対してグループ・フィルタが作成されていることを表します。


  2. レポートを保存します。これで、レポート内のデータをソートするグループ階層が完成しました。