Oracle® Fusion Middleware Oracle Reportsレポート作成のためのユーザーズ・ガイド 11gリリース1(11.1.1) B61376-01 |
|
戻る |
次へ |
この項の各トピックでは、Oracle Reports Builderに組み込まれているレポート・スタイルについて説明します。
グループ上レポートのデータ・モデルには、複数のグループが含まれています。このレポートはマスター/ディテール・レポートで、マスター・グループに大量の情報が含まれていることがあります。マスター・グループごとに、1つ以上のディテール・グループの関連する値がデータベースからフェッチされ、マスターの情報の下に表示されます。
関連項目
グループ左レポートにも、データ・モデルに複数のグループが含まれています。このレポートでは、表の行は列のいずれかの共通する値に基づいて分けられます。このタイプのレポートを使用すると、ある列の値が2回以上続き、関連する列の値が変化する場合に、同じ値を繰り返し表示しないようにすることができます。グループ上レポートとグループ左レポートは、データ・モデルは同じですが、レイアウトが異なります。グループ上レポートではマスター情報が上に表示され、グループ左レポートではブレーク列が横に表示されます。
関連項目
フォーム・レター・レポートでは、ボイラープレート・テキスト(レポート・エディタで入力またはインポートされたあらゆるテキスト)にデータベース値が埋め込まれます。
関連項目
メール・ラベル・レポートでは、各ページに複数列のメール・ラベルが印刷されます。レポート・ウィザードを使用して、メール・ラベルのフォーマットを指定できます。
関連項目
マトリックス(クロス積)レポートは、次の4つのデータ・グループのクロス集計です。
データ・グループの1つは、ページの横方向に表示されます。
データ・グループの1つは、ページの縦方向に表示されます。
データ・グループの1つはクロス積です。これによって、縦方向のデータと横方向のデータが結び付けられる位置がすべて決定し、これらの位置のそれぞれにセルが配置されます。
データ・グループの1つは、セルにデータを供給するフィラーとして表示されます。
このように、マトリックス・レポートを作成するには、データ・モデルに少なくとも4つのグループが必要です。グループの1つはクロス積グループで、この他にラベルを作成するための2つのグループがこのクロス積グループの中に必要です。さらに、セルに情報を供給するグループが少なくとも1つ必要です。これらのグループは、1つの問合せに属することも、複数の問合せに属することもできます。
マトリックス・レポートの特長の1つは、データベースからデータをフェッチするまでは列の数がわからないことです。
Oracle Reports Builderでは、様々なマトリックス・レポートを作成できます。一般的なマトリックス・レポートのタイプは、単純マトリックス、ネストしたマトリックス、ブレークあり複数問合せマトリックスおよびマトリックス・ブレークの4つですが、これ以外のレポートも作成できます。
詳細な例は、第25章「マトリックス・レポートの作成」を参照してください。
マトリックス・データ・モデルを作成するときは、次の点を考慮してください。
問合せの数
グループの構造
サマリーの設定
マトリックス・レポートには、少なくとも4つのグループが常に必要ですが、これらを作成するための問合せの数はいくつでもかまいません。1つの問合せのみを使用するマトリックス・レポート(一般に最も効率のよい構造)を作成する場合は、デフォルトで作成される1つのグループのほかに少なくとも3つのグループを作成する必要があります。複数の問合せ(3つ以上)を使用するマトリックス・レポートを作成する場合も、グループを少なくとも1つ追加する必要があります。次の図は、マトリックス・データ・モデルに対して使用可能な2種類の問合せ構造を示します。
単一問合せデータ・モデルの利点の1つは、一般に、複数の問合せを含むデータ・モデルに基づくレポートよりも効率のよいレポートが作成されることです。
複数問合せマトリックス。複数問合せデータ・モデルを使用することもできます。複数問合せデータ・モデルは、問合せが単純で、同等の単一問合せデータ・モデルよりも保守が容易です。また、マトリックス・レポートのタイプによっては(ネストしたマトリックス・レポートなど)、複数問合せデータ・モデルが必要です。
マトリックス・レポートは、4つ以上のグループを使用して作成します。
2つ以上のディメンション・グループ。ディメンション・グループは、クロス積グループ内に含まれています。レイアウトでは、少なくとも1つのグループの情報がページの横方向に表示され、少なくとも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つの「印刷方向」プロパティが「縦」に設定され、他の繰返し枠の「印刷方向」プロパティが「横」に設定されている必要があります。
詳細は、第2.3.7項「マトリックス・オブジェクトについて」を参照してください。
使用に関する注意
マトリックス・レポートのパフォーマンスは、次のもので改善できます。
少ない問合せ数
WHERE句
注意: クロス積グループを使用すると、必ず先行フェッチが発生します。これは、Oracle Reports Builderがクロス積グループ内のデータをクロス集計するために、最初にすべてのデータをフェッチする必要があるためです。 |
関連項目