Oracle® Fusion Middleware Oracle Reportsレポート作成のためのユーザーズ・ガイド 12c (12.2.1.3.0) E90221-01 |
|
![]() 前へ |
![]() 次へ |
この項の各トピックでは、Oracle Reports Builderに組み込まれているレポート・スタイルについて説明します。
グループ上レポートのデータ・モデルには、複数のグループが含まれています。グループ上レポートはマスター/ディテール・レポートで、マスター・グループに多くの情報が含まれる場合があります。各マスター・グループに対して、ディテール・グループの関連する値がデータベースからフェッチされ、マスター情報の下に表示されます。
関連項目
グループ左レポートにも、データ・モデルに複数のグループが含まれています。このレポートでは、表の行は列のいずれかの共通する値に基づいて分けられます。関連する列の値が変化する間、列の同じ値が何度も表示されないようにする場合に、このタイプのレポートを使用します。グループ上レポートとグループ左レポートは、データ・モデルは同じですが、レイアウトが異なります。グループ上レポートではマスター情報が上に表示され、グループ左レポートではブレーク列が横に表示されます。
関連項目
フォーム・レター・レポートでは、ボイラープレート・テキスト(レポート・エディタで入力またはインポートされたあらゆるテキスト)にデータベース値が埋め込まれます。
関連項目
メール・ラベル・レポートでは、各ページに複数列のメール・ラベルが印刷されます。レポート・ウィザードを使用して、メール・ラベルのフォーマットを指定できます。
関連項目
マトリックス(クロス積)レポートは、次の4つのデータ・グループのクロス集計です。
データ・グループの1つは、ページの横方向に表示されます。
データ・グループの1つは、ページの縦方向に表示されます。
データ・グループの1つはクロス積です。これによって、縦方向のデータと横方向のデータが結び付けられる位置がすべて決定し、これらの位置のそれぞれにセルが配置されます。
データ・グループの1つは、セルにデータを供給するフィラーとして表示されます。
このように、マトリックス・レポートを作成するには、少なくとも4つのグループがデータ・モデルに必要です。その中の1つはクロス積グループである必要があります。また、ラベルを付けるために、クロス積グループ内にあるグループが2つ必要です。さらに、セルに挿入される情報を集計するグループが少なくとも1つ必要です。これらのグループがすべて同じ問合せに属していなくてもかまいません。
マトリックス・レポートの特長の1つは、データベースからデータをフェッチするまでは列の数がわからないことです。
Oracle Reports Builderでは、様々なマトリックス・レポートを作成できます。一般的なマトリックス・レポートのタイプは、単純マトリックス、ネストしたマトリックス、ブレークあり複数問合せマトリックスおよびマトリックス・ブレークの4つですが、これ以外のレポートも作成できます。
詳細な例は、第25章「マトリックス・レポートの作成」を参照してください。
マトリックス・データ・モデルを作成するときは、次の点を考慮してください。
問合せの数
グループの構造
サマリーの設定
マトリックス・レポートには、少なくとも4つのグループが常に必要ですが、これらを作成するための問合せの数はいくつでもかまいません。1つの問合せのみを使用するマトリックス・レポート(一般に最も効率のよい構造)を作成する場合は、デフォルトで作成される1つのグループのほかに少なくとも3つのグループを作成する必要があります。複数の問合せ(3つ以上)を使用するマトリックス・レポートを作成する場合も、グループを少なくとも1つ追加する必要があります。次の図は、マトリックス・データ・モデルに対して使用可能な2種類の問合せ構造を示します。
単一問合せデータ・モデルの利点の1つは、一般に、複数の問合せを含むデータ・モデルに基づくレポートよりも効率のよいレポートが作成されることです。
複数の問合せからなるマトリックス。単純な問合せが複数ある場合や、1つの問合せからなる同等のデータ・モデルよりも維持が容易な場合は、複数の問合せからなるデータ・モデルを使用できます。さらに、マトリックスの種類によっては(一部のネストされたマトリックス・レポートなど)、複数の問合せからなるデータ・モデルが必要です。
マトリックス・レポートは、4つ以上のグループを使用して作成します。
2つ以上のディメンション・グループ。ディメンション・グループは、クロス積グループ内に含まれます。レイアウトでは、縦方向と横方向に、それぞれ1つ以上のグループの情報が表示されることでグリッドが形成されます。これらのグループの情報は、マトリックスの列ラベルおよび行ラベルとして表示されるため、マトリックス・ラベルと呼ばれることがあります。
1つ以上のクロス積グループ。クロス積グループは、ディメンション・グループの値のすべての可能な組合せを表します。レイアウトでは、クロス積グループは横方向と縦方向のディメンション・グループに対応する繰返し枠の共通部分として示されます。レポートを実行するとレポートが拡張し、データの共通部分の各インスタンスは個別のセルになります。次の図は、この概念をわかりやすくグラフィカルに示します。四角形がセルで、それぞれ部門と職種の有効な組合せを示しています。
1つのセル(フィラー)グループ。セル・グループの内容は、クロス積の各セルによって表される実際の情報です。ディメンション・グループの値の共通部分(セル)のそれぞれに対して、セル・グループは0個、1個または複数の値を保持しています。レポートを実行すると、これらの値は該当するセルに表示されます。
次の図は、単一問合せデータ・モデルと複数問合せデータ・モデルでのグループの関連をグラフィカルに示します。
各データ・モデルにおいて、クロス積グループは大きい四角形で表され、ディメンション・グループはその中の小さい四角形で表され、セル・グループはクロス積グループの外にあります。
マトリックスのサマリーの作成には、他の種類のレポートのサマリーを作成するよりも多くの情報が必要です。マトリックスのサマリー列を作成するときは、次のことを指定する必要があります。
サマリーの頻度。頻度では、どのディメンション・グループのサマリーを計算するかを指定します。
サマリーを計算する順序。順序では、マトリックスのどの方向にサマリーを計算するかを指定します(上から下または左から右)。
Oracle Reports Builderでは、サマリーの「積順序」プロパティを設定してこの情報を指定します。クロス積グループによって所有されるすべてのサマリーに「積順序」が指定されている必要があります。次のようなマトリックス・レポートがあるとします。
これはネストされたマトリックス・レポートです。グループG_YEARにはYEAR列、G_DEPTにはDEPTNO列、G_JOBにはJOB列が含まれています。G_CROSSはクロス積グループです。
職種別給与のサマリーを作成し、各職種のマトリックスの最下部に表示するには、G_CROSSにサマリー列を作成し、次のようにプロパティを設定します。
これらの設定によって、G_JOBグループの職種ごとにサマリーを計算し、G_JOBグループの職種ごとにサマリーを0にリセットすることを指定します。
年度別給与のサマリーを作成し、マトリックスの右側のボイラープレートの線のすぐ下に表示するには、G_CROSSにサマリー列を作成し、次のようにプロパティを設定します。
これらの設定によって、G_YEARグループの年度ごとにサマリーを計算し、G_YEARグループの年度ごとにサマリーを0にリセットすることを指定します。年度と部門別給与のサマリーを作成し、値が含まれている部門の行ごとにマトリックスの右側に表示するには、G_CROSSにサマリー列を作成し、次のようにプロパティを設定します。
この設定は、G_YEARの各レコードにあるG_DEPTのレコードごとにサマリーを計算することを指定します。このレポートではG_DEPTがG_YEARよりも頻繁に変化するため、「積順序」ではG_YEARの後にG_DEPTを指定します。G_YEARの方が頻繁に変化する場合は(部門ごとに年度が一覧表示される場合など)、「積順序」を「G_DEPT, G_YEAR」とする方が有効です。
このサマリーは、G_DEPTグループのレコードごとに0にリセットされます。「積順序」に複数のグループを指定した場合に、サマリーが累積されないようにするには、リセット・グループが「積順序」の最後のグループと同じになるようにします。「積順序」に複数のグループを指定した場合に、サマリーが累積されるようにするには、リセット・グループには「積順序」の最後のグループ以外のものを指定します。
次の図は、単純な2次元のマトリックスを構成するオブジェクトを示します。ボイラープレートのフィールド・ラベルを除き、これらのオブジェクトはすべてマトリックスに必要です。
マトリックスのレイアウト・モデルは、次のレイアウト・オブジェクトで構成する必要があります。
少なくとも3つの繰返し枠。1つは「印刷方向」プロパティを「縦」に設定し、もう1つは「横」に設定します。最後の1つはマトリックス・オブジェクト内のセル用です。
いくつかのグループ枠、ヘッダー枠およびフッター枠(サマリーが含まれる場合)。
クロス積グループ用に作成された1つのマトリックス・オブジェクト。この中にマトリックスのセルがあります(たとえば、前述の図の四角の中にF_SUMSALがあります)。
値の各行と各列、およびサマリー(たとえば、JobとDeptno)に対応するボイラープレート。ボイラープレートの表示はオプションですが、Oracle Reports Builderではデフォルトで生成されます。
注意: マトリックス・オブジェクトが含まれているJSPベースのWebレポートを実行する場合、JSP<rw:include> タグは、そのマトリックス・オブジェクトが1ページのみにフォーマットされることを前提とします。ただし、交差した繰返し枠にあるセルが拡張されている場合、マトリックスの列のヘッダーは、ページのサイズに関係なく、次のページに移動する場合があります。したがって、これらのマトリックス・ヘッダーは、レポート出力に表示されません。さらにこの状況では、ヘッダー・フィールドは後続のページに移動しますが、セルの値は最初のページに残るので、ペーパー・レイアウトは正しく表示されません。この状況に対処するには、交差した繰返し枠で利用可能なスペースで最大値を表示できるようにし、交差した繰返し枠の「垂直拡張度」プロパティを「固定」に設定するよう、レポート・エディタで注意深く定義することが重要になります。 |
マトリックス・オブジェクトは、2つ以上の繰返し枠の共通部分を定義します。繰返し枠はマトリックスのディメンションで、マトリックス・オブジェクトにはフィラーまたはセル・グループの値を保持する繰返し枠が含まれます。レイアウト内の交差する繰返し枠の組合せごとに、1つのマトリックス・オブジェクトが必要です。マトリックスを形成するには、繰返し枠の1つは「印刷方向」プロパティを「縦」に、もう1つは「印刷方向」プロパティを「横」に設定する必要があります。
詳細は、第2.3.7項「マトリックス・オブジェクトについて」を参照してください。
使用に関する注意
マトリックス・レポートのパフォーマンスは、次のもので改善できます。
少ない問合せ数
WHERE句
注意: クロス積グループでは、必ず事前フェッチが発生します。これは、Oracle Reports Builderがクロス積グループ内のデータをクロス集計するために、最初にすべてのデータをフェッチする必要があるためです。 |
関連項目