Oracle® Fusion Middleware Oracle Reportsレポート作成のためのユーザーズ・ガイド 12c (12.2.1.3.0) E90221-01 |
|
前へ |
次へ |
レポートは、レポート・ウィザードを使用して作成するか、または独自に作成できます。このレポートを作成するには、SQL問合せとXML問合せという2つの問合せを作成する必要があります。
SQL問合せを作成するには:
Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。
「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「新規レポートを手動で作成」を選択して「OK」をクリックします。
オブジェクト・ナビゲータに、新規のレポートが「MODULE 2」などの名前で表示されます。新規レポートのデータ・モデル・ビューも表示されます。
データ・モデル・ビューで、ツール・パレットの「SQL問合せ」ツールをクリックし、データ・モデル・ビューの空いている場所をクリックして、「SQL問合せ文」ダイアログ・ボックスを表示します。
「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
注意: この問合せは、次のいずれかの方法で入力できます。
|
「OK」をクリックします。
注意: 「接続」ダイアログ・ボックスが表示された場合は、ユーザーID、パスワード、およびサンプル・スキーマを含んでいるデータベースの名前を入力します。 |
次のようにデータ・モデルがデータ・モデル・ビューに表示されます。
レポートをinventoryreport_xml_
your_initials
.rdf
という名前で保存します。
これで、レポートのデータを取得するSQL問合せの作成が完了しました。
この項では、XMLデータ・ソースにアクセスするための問合せを作成します。提供されている結果のレポートを参照すると、作成した問合せが正しいかどうかを確認できます。ただし、データ定義ファイルへのパスを、提供されているサンプル・ファイルの場所の名前で更新する必要があります。
XML問合せを作成するには:
データ・モデル・ビューで、「挿入」→「問合せ」を選択してデータ・ウィザードを表示します。
「データ・ウィザードようこそページ」が表示されたら、「次へ」をクリックします。
「問合せ」ページで「次へ」をクリックします。
「データ・ソース」ページで、XML Queryをクリックし、「次へ」をクリックします。
「データ」ページで「問合せ定義」をクリックし、「XML問合せの定義」ダイアログ・ボックスを表示します。
「XML問合せの定義」ダイアログ・ボックスで、「データ定義」の下の「参照」をクリックして、提供されているXSDファイルwarehouse_inventory.xsd
を検索して開きます。
「データ・ソース」の下の「参照」をクリックして、提供されているXMLファイルwarehouse_inventory.xml
を検索して開きます。このXMLファイルにはデータが含まれています。
作成したデータ定義をオラクル社提供のデータ定義と比較する場合は、データ定義の場所を、作成したファイルの場所で置き換えてください。
「OK」をクリックします。
データ・ウィザードで、「データ」ページを開いたまま「次へ」をクリックします。
「グループ」ページで「次へ」をクリックします。
「終了」をクリックして、データ・モデル・ビューにデータ・モデルを表示します。次の例のようになります。
レポートを保存します。
これで、提供されているXMLデータ・ソースにアクセスするためのXML問合せが作成されました。
次に、SQL問合せとXML問合せをリンクして、企業データと各ローカル倉庫のデータにアクセスできるようにする必要があります。
データ・リンクを作成するには:
データ・モデル・ビューで、ツール・パレットの「データ・リンク」ツールをクリックします。
最初の問合せ(Q_1)で、「WAREHOUSE_ID」列をクリックします。
カーソルをそのまま2番目の問合せ(Q_2)の「WAREHOUSE_ID1」列までドラッグします。
その結果、データ・モデルは次のようになります。
WAREHOUSE_ID列がQ_1の下部でハイライトされ、そこから伸びた線がWAREHOUSE_ID1列を指していることがわかります。
レポートを保存します。
これで、2つの問合せのWAREHOUSE_ID列間にデータ・リンクが作成されました。
レポートを実行するには、事前にレイアウトを定義する必要があります。それには、レポート・ウィザードを使用する方法が最も簡単です。
ペーパー・レイアウトを作成するには:
データ・モデル・ビューで、キャンバスを右クリックして「レポート・ウィザード」を選択します。
レポート・ウィザードの「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。
「スタイル」ページで「グループ上」を選択します。
「グループ」ページで、G_WAREHOUSE_IDとG_WAREHOUSE_ID1グループが、「グループ・フィールド」リスト内で印刷方向が「縦」としてリストされていることを確認します。
「フィールド」ページで、「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動します。
「ラベル」ページで、必要に応じてラベルを調整します。
「テンプレート」ページで、「事前定義テンプレート」を選択し、「Beige」をクリックします。次に「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次の例のようになります。
レポートを保存します。
これでペーパー・レポートのレイアウトが完成しました。
注意: 提供されているレポートinventory_report.rdf を実行することもできます。このレポートを実行するには、事前にデータ・モデル・ビューでXML問合せをダブルクリックし、XMLデータ・ソースとして該当のXSDファイルおよびXMLファイルを指定します。 |
レポートの作成が完了したので、次にサマリー列を使用して行に異なるカラーを交互に適用することで、ユーザーが見やすいレポートにします。
行を数えるためのサマリー列を作成するには:
データ・モデル・ビューで、ツール・パレットの「サマリー列」ツールをクリックします。
ペーパー・デザイン・ビューがまだ表示されている場合は、ツールバーの「データ・モデル」ボタンをクリックしてデータ・モデル・ビューを表示します。
XML問合せグループ(G_WAREHOUSE_ID1)内をクリックして、サマリー列を作成します。
新しいサマリー列オブジェクト(CS_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。
「一般情報」で、「名前」プロパティを「LineNo」に設定します。
「列」で、「列タイプ」プロパティを「サマリー」、「データ型」プロパティを「Number」に設定します。
「サマリー」で、「ファンクション」プロパティを「カウント」、「ソース」プロパティを「PRODUCT_NAME」に設定します。
行カラーを変更するプロシージャを作成するには:
オブジェクト・ナビゲータで、レポートの「プログラム・ユニット」ノードをクリックします。
ツールバーで「作成」ボタンをクリックして、「新規プログラム・ユニット」ダイアログ・ボックスを表示します。
新規プログラム・ユニット・ダイアログ・ボックスで、「名前」フィールドにlinecolors
と入力します。
「プロシージャ」を選択し、「OK」をクリックして新しいプログラム・ユニットのPL/SQLエディタを表示します。
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 の下のテキストをコピーしてください。 |
「コンパイル」をクリックしてプロシージャをコンパイルします。
エラーが表示された場合は、コードが正しいこと、および前述の手順でサマリー列を作成済であることを確認します。
「閉じる」をクリックします。
注意: または、前述の項の手順に従い、次の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; |
プロシージャをコールする各フィールドにフォーマット・トリガーを作成するには:
オブジェクト・ナビゲータで、レポート名の下の「ペーパー・レイアウト」ノードを展開し、「メイン・セクション」→「ボディ」→「M_G_WAREHOUSE_ID_GRPFR」→「R_G_WAREHOUSE_ID」→「M_G_WAREHOUSE_ID1_GRPFR」→「R_G_WAREHOUSE_ID1」までナビゲートします。
「R_G_WAREHOUSE_ID1」で「F_PRODUCT_ID」をダブルクリックしてプロパティ・インスペクタを表示します。
注意: 特定のフィールドが見つからない場合は、オブジェクト・ナビゲータの上部にある「検索」フィールドを使用してください。 |
プロパティ・インスペクタの「拡張レイアウト」で、「フォーマット・トリガー」プロパティ・フィールドをダブルクリックし、PL/SQLエディタを表示します。
PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。
function F_PRODUCT_IDformatTrigger return Boolean is
begin
LineColors;
return (TRUE);
end;
注意: 太字のテキストには触れないでください。太字テキストの下のコードを入力して、フォーマット・トリガーを作成します。xmlpds_code.txt ファイルに含まれているプロシージャから、このコードをコピーして貼り付けることもできます。その場合は、Format Trigger Code の下のテキストをコピーしてください。 |
前述の手順で使用したものと同じコードを使用して、次の各フィールドのフォーマット・トリガーを追加します。コードの先頭行を削除しないようにしてください。この行には、フォーマット・トリガー名が定義されています。
F_PRODUCT_NAME
F_QUANTITY_ON_HAND
F_WAREHOUSE_ID1
レポートを保存します。
ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックして、ペーパーを対象としてレポートを実行します。レポートの表示は次のようになります。
これで、レポートに対する行カラーの交互適用が完了しました。
XMLファイルに大量のデータが含まれている場合は、データのソートやフィルタリングが必要になることがあります。グループ・フィルタと階層を作成することで、ソートとフィルタリングが可能となります。この項の手順では、ユーザーが定義した数量の在庫品目のみを表示するフィルタの作成方法について説明します。このフィルタが基づくパラメータは、ユーザーが実行時に入力できます。そして、データ・モデルで階層を作成することによって、レポート内のデータをグループ化します。
ユーザー・パラメータとグループ・フィルタを作成するには:
オブジェクト・ナビゲータで、「ユーザー・パラメータ」ノードの下に、データ型が「Number」、幅20、初期値50の新しいユーザー・パラメータP_MAXQTY
を作成します(第4.11.2項「ユーザー・パラメータの作成」を参照)。
データ・モデル・ビューで、XML問合せの「G_WAREHOUSE_ID1」グループをダブルクリックして、このグループのプロパティ・インスペクタを表示します。
プロパティ・インスペクタの「グループ上」で、次の操作を行います。
「フィルタ・タイプ」プロパティを「PL/SQL」に設定します。
「PL/SQLフィルタ」プロパティ・フィールドをクリックして、PL/SQLエディタを表示します。
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」という見出しの下のコードをコピーします。 |
「コンパイル」をクリックして、エラーがあれば修正します。
注意: PL/SQLのコンパイル方法がわからない場合は、PL/SQLのリファレンス・マニュアルを参照してください。 |
コードが正常にコンパイルされたら、「閉じる」をクリックします。
レポートを保存します。
ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックして、ペーパーを対象としてレポートを実行します。パラメータ・フォームが表示されます。このフォームで、レポートに表示される品目の数量を調整できます。
提供されているレポートinventoryreport.rdf
を実行し、その結果をReports Builderで参照することもできます。
レポートを保存します。
XML問合せに階層を作成するには:
データ・モデル・ビューで、XML問合せの「PRODUCT_ID」列をクリックし、そのまま問合せ名と「G_WAREHOUSE_ID1」グループの間にドラッグします。
作成したデータ・モデルは次のようになります。
注意: 前述の図で、G_WAREHOUSE_ID1の上に緑色の円が表示されていることに注意してください。この円は、そのグループに対してグループ・フィルタが作成されていることを表します。 |
レポートを保存します。これで、レポート内のデータをソートするグループ階層が完成しました。