Oracle Reports レポート作成ガイド 10gリリース2(10.1.2) B25068-01 |
|
この章では、Oracle ReportsのコンポーネントであるReports Builderの基本的な概念について説明します。この章の各項は、Oracle Reportsオンライン・ヘルプの「基本的な概念」の項にも含まれています(第3.1.1項「Oracle Reportsオンライン・ヘルプの使用」を参照)。
トピックは次の各項に分類されています。
この項の各トピックでは、Reports Builderの機能について説明します。
Reports Builderは、Oracle Reports Developer(Oracle Developer Suiteのコンポーネント)のコンポーネントの1つで、企業でレポートを作成するための強力なツールです。Oracleデータベース、JDBC、XML、テキスト・ファイル、Oracle OLAPなど、あらゆるデータ・ソースからWebおよびペーパー形式の高度なレポートを短時間で作成して配布できます。作成したレポートは、JSPやXMLなどの最新のJ2EEテクノロジを活用することにより、様々なフォーマット(HTML、XML、PDF、デリミタ付きテキスト、Postscript、PCL、RTFなど)で、あらゆる出力先(電子メール、Webブラウザ、OracleAS Portal、ファイル・システムなど)に、スケーラブルで効率的な方法で公開できます。
Reports Builderは、Webパブリッシングとペーパー・パブリッシングの違いを認識するため、WebおよびE-Businessの要求を満たす高品質の出力を開発できるのみでなく、より正確な印刷レポートも生成できます。Reports Builderには、次の機能があります。
このリリースにおける新機能、および非推奨とされた、または廃止および変更された機能とコンポーネントの詳細は、Oracle Reportsオンライン・ヘルプの「概要」の項のトピック「このリリースについて」を参照してください。また、OTN(http://www.oracle.com/
technology/products/reports/index.html)のOracle Reports 10gのページを参照してください。
この項の各トピックでは、レポートの基本的な概念について説明します。高度な概念は、第2.1項「レポート」を参照してください。
レポートは次のオブジェクトから構成されており、これら全体が1つのレポートを定義します。
プロパティ・インスペクタを使用して、レポートのプロパティを定義します。ドキュメントの分類(種別)プロパティ(「タイトル」、「作成者」、「件名」および「キーワード」)は、レポート・ドキュメントのカタログ化と検索に役立ちます。
Reports Builderを起動したときに、既存のレポートを開くか、レポート・ウィザードを使用して新規レポートを作成するか、手動で新規レポートを作成するかを選択できます。
レポート・ウィザードを使用すると、Webとペーパーの両方のレイアウトに対応したレポートを作成する手順を簡単かつ迅速に実行できます。
新規レポートを手動で作成することを選択した場合は、Reports Builderによって新しいデフォルトのレポート定義が作成されます。最初に表示されるウィンドウは、オブジェクト・ナビゲータと呼ばれます。このウィンドウには、すべてのレポート・オブジェクトのリストが表示されます。まず、レポート定義の一部としてReports Builderによって作成されたすべてのオブジェクトが表示されます。レポートを定義するときは、レポートのすべてのオブジェクトにオブジェクト・ナビゲータからアクセスし、変更することができます。これらのオブジェクトには、連結ライブラリ、トリガーおよびプログラム・ユニットも含まれます。オブジェクト・ナビゲータ・ビューを変更して、オブジェクトを階層表示したり、オブジェクト・タイプごとに表示したりできます。
Webパブリッシングに重点を置くことにより、Oracle Reportsでは、包括的なパブリッシング・ソリューションとしての役割がさらに強化されました。以前のリリースでは、Reports BuilderのWeb機能は、単にペーパー・レポート(複数のページ)をHTMLまたはPDFで表示するものでした。これによって企業のデータをWebに移行することが可能となりましたが、作成されるHTMLはサイズが大きく、あまり柔軟性がありませんでした。
ペーパーベースのレポートについてのWebレポートに関するこれまでの機能はそのまま残されていますが(第3.6.10項「ペーパーベースのレポートへのWebリンクの追加」を参照)、Oracle ReportsではJavaServer Pages(JSP)が基盤テクノロジとして使用されており、Reports Builderを使用して取り出した情報をWebページに組み込むこともできます。これに伴ってレポートのWebソース・ビューが導入され、1つのレポートでJSPベースの定義とペーパーベースの定義の両方を作成できるようになりました。つまり、ペーパー・レポートを様々な出力形式でWebに公開することも、Webソース・ビューにJSPコーディングを追加してWebの機能をさらに活用することもできるようになります。たとえば、1つのレポートでペーパーのPDFバージョンとJSPベースのWebバージョンを作成する場合に、どちらを選択するかは、要件に応じて、およびWebソース・ビューとペーパー・デザイン・ビューのどちらがより目的の出力を容易に作成できるかによって決定できます。
Oracle Reportsにはサーブレット・テクノロジも採用されています。サーブレットは、CGIにかわるJavaベースのプログラムです。サーブレットを利用すると、プラットフォームに依存せずにWebベースのアプリケーションを構築でき、CGIプログラムでのパフォーマンスの制限もありません。
Webレポートは、次のいずれかの方法で作成できます。
Webブラウザでレポート出力をプレビューするには、「プログラム」→「Webレイアウトを実行」を使用します。プレビューを使用すると、変更がレポートの出力にどのように影響するかをすぐに確認できます。
第1.9.4項「Webレポートのパラメータ・フォームについて」
第3.7.16.4項「Webブラウザでのレポート出力の表示」
この項の各トピックでは、Reports Builderに組み込まれているレポート・スタイルについて説明します。
表形式レポートは、最も基本的なタイプのレポートです。各列は、データベースから選択された列に対応しています。
グループ上レポートのデータ・モデルには、複数のグループが含まれています。このレポートはマスター/ディテール・レポートで、マスター・グループに大量の情報が含まれていることがあります。マスター・グループごとに、1つ以上のディテール・グループの関連する値がデータベースからフェッチされ、マスターの情報の下に表示されます。
グループ左レポートにも、データ・モデルに複数のグループが含まれています。このレポートでは、表の行は列のいずれかの共通する値に基づいて分けられます。このタイプのレポートを使用すると、ある列の値が2回以上続き、関連する列の値が変化する場合に、同じ値を繰り返し表示しないようにすることができます。グループ上レポートとグループ左レポートは、データ・モデルは同じですが、レイアウトが異なります。グループ上レポートではマスター情報が上に表示され、グループ左レポートではブレーク列が横に表示されます。
フォーム形状レポートでは、1ページにレコード1つが表示され、フィールド・ラベルの右にフィールドの値が表示されます。
フォーム・レター・レポートでは、ボイラープレート・テキスト(レポート・エディタで入力またはインポートされたあらゆるテキスト)にデータベース値が埋め込まれます。
メール・ラベル・レポートでは、各ページに複数列のメール・ラベルが印刷されます。レポート・ウィザードを使用して、メール・ラベルのフォーマットを指定できます。
マトリックス(クロス積)レポートは、次の4つのデータ・グループのクロス集計です。
このように、マトリックス・レポートを作成するには、データ・モデルに少なくとも4つのグループが必要です。グループの1つはクロス積グループで、この他にラベルを作成するための2つのグループがこのクロス積グループの中に必要です。さらに、セルに情報を供給するグループが少なくとも1つ必要です。これらのグループは、1つの問合せに属することも、複数の問合せに属することもできます。
マトリックス・レポートの特長の1つは、データベースからデータをフェッチするまでは列の数がわからないことです。
Reports Builderでは、様々なマトリックス・レポートを作成できます。一般的なマトリックス・レポートのタイプは、単純マトリックス、ネストしたマトリックス、ブレークあり複数問合せマトリックスおよびマトリックス・ブレークの4つですが、これ以外のレポートも作成できます。
詳細な例は、第25章「マトリックス・レポートの作成」を参照してください。
マトリックス・データ・モデルを作成するときは、次の点を考慮してください。
マトリックス・レポートには、少なくとも4つのグループが常に必要ですが、これらを作成するための問合せの数はいくつでもかまいません。1つの問合せのみを使用するマトリックス・レポート(一般に最も効率のよい構造)を作成する場合は、デフォルトで作成される1つのグループのほかに少なくとも3つのグループを作成する必要があります。複数の問合せ(3つ以上)を使用するマトリックス・レポートを作成する場合も、グループを少なくとも1つ追加する必要があります。次の図は、マトリックス・データ・モデルに対して使用可能な2種類の問合せ構造を示します。
単一問合せデータ・モデルの利点の1つは、一般に、複数の問合せを含むデータ・モデルに基づくレポートよりも効率のよいレポートが作成されることです。
複数問合せマトリックス。複数問合せデータ・モデルを使用することもできます。複数問合せデータ・モデルは、問合せが単純で、同等の単一問合せデータ・モデルよりも保守が容易です。また、マトリックス・レポートのタイプによっては(ネストしたマトリックス・レポートなど)、複数問合せデータ・モデルが必要です。
マトリックス・レポートは、4つ以上のグループを使用して作成します。
次の図は、単一問合せデータ・モデルと複数問合せデータ・モデルでのグループの関連をグラフィカルに示します。
各データ・モデルにおいて、クロス積グループは大きい四角形で表され、ディメンション・グループはその中の小さい四角形で表され、セル・グループはクロス積グループの外にあります。
マトリックスのサマリーの作成には、他の種類のレポートのサマリーを作成するよりも多くの情報が必要です。マトリックスのサマリー列を作成するときは、次のことを指定する必要があります。
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次元のマトリックスを構成するオブジェクトを示します。ボイラープレートのフィールド・ラベルを除き、これらのオブジェクトはすべてマトリックスに必要です。
マトリックスのレイアウト・モデルは、次のレイアウト・オブジェクトで構成する必要があります。
マトリックス・オブジェクトは、2つ以上の繰返し枠の共通部分を定義します。繰返し枠はマトリックスのディメンションで、マトリックス・オブジェクトにはフィラーまたはセル・グループの値を保持する繰返し枠が含まれます。レイアウト内の交差する繰返し枠の組合せごとに、1つのマトリックス・オブジェクトが必要です。マトリックスを形成するには、繰返し枠の1つの「印刷方向」プロパティが「縦」に設定され、他の繰返し枠の「印刷方向」プロパティが「横」に設定されている必要があります。
詳細は、第2.3.7項「マトリックス・オブジェクトについて」を参照してください。
マトリックス・レポートのパフォーマンスは、次のもので改善できます。
Reports Builderに含まれているウィザードを利用すると、レポートの定義とオブジェクトの追加をすばやく簡単に行うことができます。この項の各トピックでは、Reports Builderの各ウィザードについて説明します。
レポート・ウィザードを利用すると、Webレイアウトとペーパー・レイアウトのどちらの場合も単一問合せレポートをすばやく簡単に定義できます。Reports Builderでは、ウィザードの各ページで指定された内容でレポートのデータ・モデルとレイアウトが作成されます。ウィザードによってレポートが作成された後に、レポート・エディタのビューを使用してレポートを変更できます。第1.6.1項「レポート・エディタについて」を参照してください。
既存のレポートに対してレポート・ウィザードを再実行するには:
ウィザードのタブ・ページのフィールドに関するヘルプを参照するには、タブ・ページの下部にある「ヘルプ」をクリックします。
レポート・ブロック・ウィザードは、レポート・ウィザードのバージョンの1つです。既存のHTMLドキュメント(Webページ)を開き、レポート・ブロック・ウィザードを使用してWebページにレポートを埋め込み、データのレイアウトを指定できます。
レポート・ブロック・ウィザードを表示するには:
ウィザードのタブ・ページのフィールドに関するヘルプを参照するには、タブ・ページの下部にある「ヘルプ」をクリックします。
データ・ウィザードを利用すると、複数問合せレポートの問合せ、ブレーク・グループおよび合計をすばやく簡単に定義できます。ウィザードによってデータ・モデルが作成された後、次の操作を行うことができます。
データ・ウィザードを表示するには:
既存の問合せに対してデータ・ウィザードを再実行するには、次のいずれかの操作を行います。
ウィザードのタブ・ページのフィールドに関するヘルプを参照するには、タブ・ページの下部にある「ヘルプ」をクリックします。
グラフ・ウィザードを使用すると、ペーパーベースおよびJSPベースのWebレポートに、多様なグラフを簡単に追加できます。Reports Builderでは、ウィザードの各ページでユーザーが指定する情報に基づいて、XML定義が作成されます。このXML定義により、グラフが記述され、実行時のグラフのルック・アンド・フィールがレンダリングされます。
グラフ・ウィザードを使用してグラフの属性値およびレイアウトの作成や編集ができますが、グラフ・ウィザードでは指定できない属性もあります。グラフ・ウィザードでは指定できない部分に関してグラフのXML定義をカスタマイズするには、グラフの「グラフ設定」プロパティ(ペーパーベースのレポートの場合)またはWebソース・ビュー(JSPベースのWebレポートの場合)で、XMLを直接編集します。使用できる全属性のリストは、DTDファイルgraph.dtd
にあります。
以前のバージョンのOracle Reportsで作成され、Oracle Graphics 6iチャートが含まれるレポートでも、同じマシンの別のORACLE_HOME
にOracle Graphics 6iランタイムをインストールすれば、引き続き実行できます。ただし、この構成はサポート対象外であり、オラクル社ではこの構成によりバグが発生しても修正を行いません。
<rw:graph id="CT_1" src="G_EMPNO" groups="ENAME" dataValues="SAL"> <?xml version="1.0" ?> <Graph version="3.2.0.22" depthAngle="50" depthradius="8" pieDepth="30" pieTilt="20"/> ... --> </rw:graph>
一般的なグラフの場合は、次のプライマリ・グラフ・タイプでデータを最適に表現できます。
次のタイプは、特定のデータ型に関連付けられた特殊用途(特殊なグラフ)に使用されたり、独特のデータを表示する方法として使用されます。
ペーパー・レポートに対するグラフ・ウィザードを表示するには:
JSPベースのWebレポートに対するグラフ・ウィザードを表示するには:
ペーパー・レポートに含まれている既存のグラフに対してグラフ・ウィザードを再実行するには:
JSPベースのWebレポートに含まれている既存のグラフに対してグラフ・ウィザードを再実行するには:
ウィザードのタブ・ページのフィールドに関するヘルプを参照するには、タブ・ページの下部にある「ヘルプ」をクリックします。
この項の各トピックでは、Reports Builderのオブジェクト・ナビゲータについて説明します。
オブジェクト・ナビゲータには、レポートまたはテンプレートのすべてのオブジェクト(連結ライブラリやプログラム・ユニットも含む)が階層表示されます。
オブジェクト・ナビゲータを使用すると、次の操作を実行できます。
オブジェクト・ナビゲータを表示するには:
オブジェクト・ナビゲータを利用すると、オブジェクトを所有関係に従って階層表示したり、オブジェクト・タイプ別に表示したりすることができます。
この項の各トピックでは、レポート・エディタおよびレポート・エディタでのレポートの様々なビューについて説明します。
レポート・エディタは、レポートのオブジェクトを直接操作したり、プロパティ・インスペクタでプロパティを変更したりできる作業領域です。「レポート・エディタ」ウィンドウでは、レポートについて、データ・モデル・ビュー、ペーパー・レイアウト・ビュー、ペーパー・デザイン・ビュー、ペーパー・パラメータ・フォームおよびWebソース・ビューという異なるビュー間をナビゲートできます。
レポート・エディタのデータ・モデル・ビューは、レポートで使用するデータ・モデル・オブジェクト(問合せ、グループ、式列、サマリー列、プレースホルダ列、システム・パラメータ、ユーザー・パラメータおよびデータ・リンク)を作成、定義および変更する作業領域です。このビューでは、オブジェクトとそのプロパティ設定が記号で表示され、オブジェクトのタイプとリレーションシップがハイライトされます。データ・モデルの問合せオブジェクトを作成するには、レポート・ウィザード、データ・ウィザードまたはツール・パレットの問合せツールを使用できます。
Reports Builderでは、データ・モデルを使用してレポートに取り出すデータが決定されます。データベースから取り出されたデータは、レポートの出力に表示されることも表示されないこともあります。
データ・モデル・ビューを表示するには:
レポート・エディタのペーパー・レイアウト・ビューは、ペーパー・レポートのフォーマットを変更できる作業領域です。レポートのデフォルトのフォーマットは、レポート・ウィザードで指定した情報によって定義されます。レイアウト・オブジェクト(ボイラープレート・テキストとグラフ・オブジェクト、枠、繰返し枠、グラフ、フィールド、アンカー、ファイル・リンク、レポート・ブロックなど)を操作して、フォーマットを変更できます。このビューでは、オブジェクトとそのプロパティ設定が記号で表示され、オブジェクトのタイプとリレーションシップがハイライトされます。
ペーパー・レイアウト・ビューは、レポートのフォーマットを変更できる作業領域であるという点でペーパー・デザイン・ビューに類似しています。ただし、ペーパー・デザイン・ビューはレポートの実行時にのみ表示され、このビューでレポートをプレビューし、同時に実際の(ライブ)データを操作できます。ペーパー・デザイン・ビューでは、対話形式でレポートをカスタマイズできます。つまり、変更を行うたびにその結果をすぐに確認できます。
ペーパー・レイアウト・ビューを表示するには:
レポート・エディタのペーパー・デザイン・ビューは、ペーパー・レポートをプレビューでき、実際の(ライブ)データを同時に操作できる作業領域です。ペーパー・デザイン・ビューでは、対話形式でレポートをカスタマイズできます。つまり、変更を行うたびにその結果をすぐに確認できます。
列サイズの変更など、レポートを編集するには、ペーパー・デザイン・ビューがフレックス・モードである必要があります。
ペーパー・デザイン・ビューは、レポートを実行するたびに表示されます。オブジェクト・ナビゲータまたはエディタからレポートを実行するには、ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックするか、「プログラム」→「ペーパー・レイアウトを実行」を選択します。レポート・ウィザードからレポートを実行するには、「終了」をクリックします。
ペーパー・デザイン・ビューは、次の方法で表示することもできます。
レポートの実行速度を上げるには、レポート出力をペーパー・デザイン・ビューに送信するときに先行フェッチが行われないようにします。次の項目が依存しているデータよりも先にこれらの項目が参照されたときに、先行フェッチが発生します。
マトリックス(クロス積)グループを使用するときも、先行フェッチが発生します。Reports Builderでは、データをクロス集計するために、最初にすべてのデータをフェッチする必要があります。
これらの項目があるとペーパー・デザイン・ビューの処理が遅くなりますが、ファイルなどの出力先に書き出すときのパフォーマンスには影響しません。
レポート・エディタのペーパー・パラメータ・フォーム・ビューは、レポートのランタイム・パラメータ・フォームのフォーマットを定義する作業領域です。フォーマットを定義するには、パラメータ・フォーム・オブジェクト(フィールドとボイラープレート)を定義および変更します。「パラメータ・フォーム・ビルダー」を使用して、事前定義されたシステム・パラメータを選択してレポートで使用することも、独自のパラメータを作成することもできます。
レポートを実行するとき、Reports Builderではペーパー・パラメータ・フォーム・ビューがランタイム・パラメータ・フォームのテンプレートとして使用されます。フィールドとボイラープレートは、ペーパー・パラメータ・フォーム・ビューで表示されているとおりにランタイム・パラメータ・フォームに表示されます。ペーパー・パラメータ・フォーム・ビューでランタイム・パラメータ・フォームを定義しない場合は、実行時にデフォルトのランタイム・パラメータ・フォームが表示されます。
注意 実行時にランタイム・パラメータ・フォームが表示されるのは、ペーパー・レポート・レイアウトを実行する場合のみです。JSPベースのWebレポートの場合は、ランタイム・パラメータ・フォームはデバッグを目的としてReports Builderからレポートを実行したときに表示されますが、実行時には表示されません。詳細は、第1.9.4項「Webレポートのパラメータ・フォームについて」を参照してください。 |
ペーパー・パラメータ・フォーム・ビューを表示するには:
レポート・エディタのWebソース・ビューには、HTMLタグ、JSPタグおよびXMLタグを含む、JSPベースのWebレポートのソース・コードが表示されます。このビューはWebページで、レポート・ブロック・ウィザードを使用して動的レポート・ブロックを表示および追加したり、グラフ・ウィザードを使用してグラフを表示および追加したりすることができます。熟練したWeb開発者であれば、JSPタグ、HTML、JavaおよびXMLを使用して、このビューで直接Webソースを編集できます。
Webソース・ビューを表示するには、次のいずれかの操作を行います。
uifont.ali
にReports Builder用のフォント名を次のとおり設定します。[rwbuilder]
.....AR8MSWIN1256="Courier New"
.....CL8MSWIN1251="Courier New"
.....EE8MSWIN1250="Courier New"
.....EL8MSWIN1253="Courier New"
.....IW8MSWIN1255="Courier New"
.....JA16SJIS="MS Gothic"
.....TH8TISASCII="Andale Duospace WT"
.....TR8MSWIN1254="Courier New"
Andale Duospace WT(固定幅)フォントのコピーは、Metalink(http://metalink.oracle.com
)からダウンロードできます。ARU番号は2638552です。
第2.2.1項「JavaServer Pages(JSP)とサーブレットについて」
第3.6.3項「既存のWebページ(HTMLファイル)へのレポート・データの追加」
第3.9.8.2.2項「JSPベースのWebレポートへのグラフの追加」
Oracle Reportsオンライン・ヘルプの「リファレンス」の項のトピック「Oracle ReportsのJSPタグ」
ツール・パレットとツールバーには、レポート・エディタのビュー(Webソース・ビューを除く)でオブジェクトを手動で作成または操作するためのツールがあります。各ツールは、アイコンとして表示されます。「選択」ツールなど、レポート・エディタのすべてのビューのツール・パレットに共通するツールもあります。その他のツールは、ツールが表示されるビューに固有のものです。Reports Builderでは、ツールの上にカーソルを移動すると、どのようなツールかを示すヒント・テキストが表示されます。
ツール・パレットの位置は、レポート・エディタのビューの左側です。ツールをクリックするとそのツールがアクティブ化されて1つの操作を実行でき、ダブルクリックするとロックされて複数の操作を実行できます。「表示」→「ツール・パレット」を選択し、ツール・パレットを選択解除して非表示にできます。
ツールバーの位置は、レポート・エディタのビューの上部です。ツールバーのツールを使用するには、目的のツールをクリックして処理を実行します。ツールバーのすべてのツールには、対応するメニューもあります。オブジェクトのグループに対して処理を実行するように設計されたツールの場合は、1つ以上のオブジェクトを選択するまではグレー表示されます。ツールをクリックすると、選択されているオブジェクトに対して処理が実行されます。
この項の各トピックでは、データ・モデル・オブジェクトの基本的な概念について説明します。高度な概念は、第2.3項「データ・モデル・オブジェクト」を参照してください。
問合せによって、レポートで使用するデータが取得されます。問合せは、レポート・ウィザードやデータ・ウィザードを使用して作成するか、データ・モデルのツール・パレットの問合せツールを使用して手動で作成します。問合せでは、あらゆるデータ・ソース(Oracle、XML、JDBC、テキスト、Oracle OLAP Server、Oracle OLAPまたはプラッガブル・データ・ソース(PDS)APIからアクセスできる独自のデータ・ソース)からデータを選択できます。また、REF CURSOR
を使用して問合せを作成することもできます(第2.6.10項「REFカーソル問合せについて」を参照)。
1つの問合せを使用して作成されたレポートは、最も単純なレポートです。単一問合せレポートで最もよく使用されるフォーマットは、表、メール・ラベル、フォーム・レターおよびブレーク(グループ上またはグループ左)です。1つのレポートに、同じ問合せのデータを何回でも表示できます。それぞれが異なるフォーマットでもかまいません。問合せで取得したデータが、レポート出力に含まれないようにすることもできます。これは、複数の問合せ間にリレーションシップを確立する場合や、計算を実行する場合などに便利です。
次の図は、様々な方法でフォーマットされた1つの問合せのデータを示します。
最後のレポート・スタイル(グループ左ブレーク)では、最初の3つとはまったく異なる問合せを使用してデータを取得しているように見えます。ただし、最後のスタイルで表示されるデータは最初の3つでは非表示で、逆に最初の3つに表示されているデータは最後のスタイルでは非表示となっています。Reports Builderでは、問合せで取得したデータが、レポート出力に含まれないようにすることもできます。これは、複数の問合せ間にリレーションシップを確立する場合や、計算を実行する場合などに便利です。
1つのレポートに含まれる問合せの数に制限はありません。複数問合せレポートは、次の場合に便利です。
SELECT
文や結合がある複雑な問合せを使用するレポートは、複数の単純な問合せをリンクしたものを使用して作成することもできます。多くの場合、後者のほうが他の開発者が理解しやすく保守も容易です)。
複数の問合せを使用するレポートを作成する場合は、問合せどうしを関連付けずにおくことも、データ・リンクを使用して問合せ間のリレーションシップを確立することもできます。
問合せどうしをリンクしない場合は、マルチパート非関連型問合せレポート(一般にマスター/マスター・レポートと呼ばれます)が作成されます。このようなタイプのレポートには、互いに関連がないデータのリストが表示されます。たとえば、次に示すレポートでは、1つの問合せで製品を選択し、別の問合せで顧客を選択しています。製品と顧客の間には、リレーションシップはありません。
多くのレポートでは、レポートのある部分にフェッチされるデータは、別の部分にフェッチされるデータによって決まります。これは、マスター/ディテールまたは親子リレーションシップと呼ばれ、2つの問合せ間のデータ・リンクで定義されます。マスター/ディテール・レポートを実行すると、マスター(または親)問合せの行ごとにディテール(または子)問合せが実行され、一致する行のみが取り出されます。
単一問合せレポートの場合、Reports Builderはカーソルを1つのみ開いてすべてのマスター・レコードとディテール・レコードをフェッチします。2つの問合せを使用するレポートの場合、Reports Builderはディテール問合せのリンクをディテール問合せのWHERE句に付加した後、2つのカーソル(問合せごとに1つ)を開きます。したがって、Reports Builderは、マスター問合せでフェッチされたマスター・レコードごとにディテール問合せをリバインドして実行し、データをフェッチする必要があります。
グループは、レポート内の列を編成するために作成します。グループを使用すると、1つの問合せのデータをいくつかのセットに分けることと、問合せのデータをフィルタすることの2つが可能となります。
問合せを作成すると、その問合せによって選択される列を含むグループが自動的に作成されます。レポートのブレーク・レベルを作成するためのグループを追加するには、データ・モデル・ビューで手動で作成するか、レポート・ウィザードを使用してグループ上レポートまたはグループ左レポートを作成します。
グループは、一部の列を他の列とは異なる方法で処理する場合に作成します。たとえば、次のような場合にグループを作成します。
クロス積グループを除き、ユーザーが作成したグループはすべてブレーク・グループと呼ばれます。
ブレーク・グループは、小計を作成する場合、列を別の方向に印刷する場合、ブレークを作成する場合などに作成します。ブレーク・グループを使用すると、連続するレコードの重複する値は抑制されます。たとえば、レコードごとに部門番号を選択することができますが、重複する部門番号は印刷されません。
クロス積グループは、クロス積の演算を行う場合に作成し、一般にマトリックス・レポートを作成するときに使用されます。
フィルタを利用すると、問合せで選択されたレコードを条件に応じて除去することができます。グループに設定できるフィルタには、次の2種類があります。
データベース列は、問合せによって選択される列を表し、レポートで使用されるデータ値が格納されています。問合せで選択する列ごとに、レポートのデータ・モデルに列が自動的に作成されます。データベース列の値に対してサマリーや計算を実行するには、データ・モデル・ビューで新しい列を手動で作成するか(サマリー列および計算式列の場合)、レポート・ウィザードを使用します(サマリー列の場合)。作成したグループに列を再び割り当てることもできます。
従来の列型(日付、数値、文字など)に加えて、Reports Builderではグラフィックまたはイメージの列もサポートされています。この列の値は次のいずれかです。
データ・リンク(または親子リレーションシップ)は、複数の問合せの結果を関連付けます。データ・リンクによって、次のようなリレーションシップを確立できます。
データ・リンクを作成すると、親グループのインスタンスごとに子問合せが1回実行されます。子問合せが実行されるときは、親で使用された主キーの値が使用されます。
データ・リンクがあるレポートを実行すると、データ・リンクはSQL句に変換され(リンクのプロパティ・インスペクタで指定されたとおりに)、子問合せに付加されます。ただし、Reports Builderによってこの問合せの解析が可能な場合に限ります。
重要な注意: 問合せを解析できない場合は、問合せは変更されません(たとえば、プラッガブル・データ・ソースに対して定義されている問合せでは、データをフェッチする方法をReports Builderが変更することはできません)。
リンクは一般に等価結合ですが(たとえば、WHERE DEPTNO=DEPTNO
)、SQLの様々な句(WHERE
、HAVING
、START WITH
)と条件でリンクを作成できます。データベースにデータベース制約がある場合は、制約からSQL句と条件を導出するデータ・リンクを作成できます。個々の親問合せと子問合せのSELECT
文はReports Builderで表示できますが、定義したデータ・リンクによって作成される句を含むSELECT
文を表示することはできません。
次に示すレポートには、次のリンクが定義されています。
マスター問合せのデフォルト・グループ(列「Order ID」と列「Customer」を含む)は親グループで、ディテール問合せ(「Item」、「Product」および「Amount」が属している問合せ)は子問合せです。
クエリー・ビルダーは、アナリストや管理者などのビジネス・プロフェッショナル向けに設計された、使いやすいデータ・アクセス・ツールです。組織のデータベースに格納されている情報に論理的かつ直感的にアクセスする手段として、分析やレポート作成に利用できます。
クエリー・ビルダーは、コンピュータ・プログラミングやデータベースの経験がない専門家でも使用できるよう設計されています。このツールは強力な問合せ機能とSQL(Structured Query Language)文のサポート機能を備えているため、経験豊富なデータベース・ユーザーとプログラマのニーズにも応えます。
クエリー・ビルダーのグラフィカルな「問合せ」ウィンドウで、組織のデータベースからデータを取り出すリクエストを指定できます。データのリクエストは、問合せと呼ばれます。
クエリー・ビルダーでは、SQL SELECT
文を使用すると、作成する問合せのほとんどを定義できます。クエリー・ビルダーでは、作業領域に表示された列に基づいて、適切なSELECT FROM [table.column]
句が自動的に生成されます。
この項の各トピックでは、レイアウト・オブジェクトの基本的な概念について説明します。高度な概念は、第2.4項「レイアウト・オブジェクト」を参照してください。
枠は、他のオブジェクトを囲むもので、これらのオブジェクトが上書きされたり他のオブジェクトによって押し出されたりしないように保護します。たとえば、あるグループによって所有されるすべてのオブジェクト、列ヘッダー、サマリーなどを枠で囲むことができます。
レポートのレイアウトを指定しない場合、Reports Builderによって必要に応じてレポート・オブジェクトの周囲に枠が作成されます。また、ペーパー・レイアウト・ビューで枠を手動で作成することもできます。第1.6.3項「ペーパー・レイアウト・ビューについて」を参照してください。
枠は、次のような場合に作成します。
例: 各ページの上部は表形式にして、各ページの下部はマトリックス形式にします。
例: 2つの繰返し枠の下の中央にサマリーを配置します。デフォルトのルールでは、サマリーとの間に一定の距離をおく必要があるのはサマリーを上書きできる最初のオブジェクトのみなので、2番目の繰返し枠によってサマリーが上書きされる恐れがあります。両方の繰返し枠を枠で囲むことによって、サマリーは常に両方の繰返し枠から一定の距離をおいた位置に維持されるようになり、上書きを避けることができます。
例: 2つの繰返し枠の下の中央にサマリーを配置します。デフォルトのルールでは、最初の繰返し枠の印刷が完了するとすぐにサマリーが印刷されます。2つの繰返し枠の周囲に枠を作成することにより、両方の繰返し枠の印刷が完了した後にサマリーが印刷されるようにします。
繰返し枠は、グループの列に対して作成されたすべてのフィールドを囲むものです。繰返し枠は、グループのレコードごとに1回印刷(起動)されます。
レポートのレイアウトを指定しない場合、Reports Builderによってデータ・モデルのグループごとに1つの繰返し枠が生成され、グループの列ごとに1つのフィールドがその中に配置されます。繰返し枠であらゆるレイアウト・オブジェクトを囲むことができ、繰返し枠で他の繰返し枠を囲むことも可能です。ネストした繰返し枠は、一般にマスター/ディテール・レポートおよびブレーク・レポートの作成に使用されます。外側の繰返し枠のレコードごとに、囲まれている繰返し枠のすべての関連レコードがフォーマットされます。
ペーパー・レイアウト・ビューで、繰返し枠を手動で作成することもできます。第1.6.3項「ペーパー・レイアウト・ビューについて」を参照してください。
オブジェクトまたはレコードごとに、枠または繰返し枠のサイズを拡張可能にするか、縮小可能にするか、可変にするか、固定にするかを指定できます(「水平拡張度」プロパティおよび「垂直拡張度」プロパティで指定)。たとえば、水平方向のサイズは固定するが、レコードによって高さが足りないときは垂直方向に拡張するようにこれらのプロパティを設定できます。
次の図では、部門20には4レコードありますが、部門10と部門30には1レコードずつしかありません。繰返し枠は、部門20のレコードが収まるように垂直方向に拡張されています。
枠または繰返し枠のサイズが水平方向または垂直方向に縮小するのは、オブジェクトまたはレコードに必要な領域が枠または繰返し枠の初期サイズより小さいときです。枠または繰返し枠のサイズを可変にすることもできます。この場合は、表示する値のサイズに応じて拡張または縮小します。また、枠または繰返し枠のサイズを固定した場合に、オブジェクトまたはレコードのデータが必要とするフィールドがそのサイズよりも大きいときは、残りのデータは次のページ以降の同じx座標およびy座標の位置に押し出されます。
フィールドは、パラメータや列、あるいはページ番号や現在の日付などの値のプレースホルダです。パラメータまたは列に関連付けられたフィールドがない場合、その値はレポート出力には表示されません。フィールドを所有するのは、そのフィールドを最初に囲むオブジェクト(枠または繰返し枠)です。
レポートのレイアウトを指定しない場合、Reports Builderによって列ごとに1つのフィールドが作成され、各フィールドは繰返し枠の中に配置されます。ペーパー・デザイン・ビュー、ペーパー・レイアウト・ビューまたはペーパー・パラメータ・フォーム・ビューで、フィールドを手動で作成することもできます。
第3.9.2.5項「ボイラープレート・テキスト内でのフィールドの参照」
ボイラープレート・オブジェクトは、レポートが実行されるたびにレポートに表示されるテキスト、線またはグラフィックです。
レポート・ウィザードで選択したラベルごとに、Reports Builderによって1つのボイラープレート・オブジェクトが作成されます(名前はB_columnname
となります)。たとえば、列名がENAME
の場合、ENAME
を含むボイラープレート・オブジェクトがこの列に対して生成されます。レポート・タイプによっては、ラベルの下に線も生成されます。
ペーパー・デザイン・ビュー、ペーパー・レイアウト・ビューまたはペーパー・パラメータ・フォーム・ビューで、ツール・パレットの次のツールを使用してボイラープレート・オブジェクトを手動で作成することもできます。
ファイルに格納されているテキスト、グラフィックまたはHTMLをボイラープレートとしてレポートに表示するには、次で説明する手順に従ってそのファイルにリンクします。
ファイルにリンクすると、レポートが実行されるたびにそのファイルの内容がボイラープレート・オブジェクトに取り出されることになります。この方法を使用すると、ファイルに対する最新の変更内容を確実に出力に反映できます。
ボイラープレート・イメージ・オブジェクトを、イメージが存在する場所のURLにリンクすることもできます。第3.9.8.1.3項「イメージ・オブジェクトのURLへのリンク」を参照してください。
第1.9.3項「パラメータ・フォーム・ボイラープレートについて」
第3.9.2.1項「テキストのボイラープレート・オブジェクトの作成」
第3.9.2.2項「2ページごとに表示されるテキストのボイラープレート・オブジェクトの作成」
第3.9.2.5項「ボイラープレート・テキスト内でのフィールドの参照」
第3.9.11.8項「ボイラープレート・オブジェクトの回転」
この項の各トピックでは、パラメータ・フォーム・オブジェクトの基本的な概念について説明します。高度な概念は、第2.5項「パラメータ・フォーム・オブジェクト」を参照してください。
パラメータは、実行時に値を設定できる変数です(ランタイム・パラメータ・フォーム、コマンドラインなどから)。実行時にSELECT
文を変更する場合や、PL/SQL変数を設定する場合に特に便利です。
実行時に、Reports Builderによって一連のシステム・パラメータが作成されますが、独自のパラメータを作成することもできます。パラメータを作成すると、問合せのどの部分であっても、単独のリテラル値または式全体を置き換えることができます。レポート内の他の部分でパラメータを参照することもできます。たとえば、PL/SQL構文で使用して、条件に応じてレポートの論理を変更します。
パラメータの値は、次の方法で指定できます。
Oracle Reportsでは、次のシステム・パラメータがあらかじめ定義されています。前述の方法で、これらのデフォルト値を変更できます。
ユーザー・パラメータは、次の方法で作成できます。
第3.11.1項「事前定義されたシステム・パラメータの使用」
第3.11.4項「実行時におけるパラメータ値の妥当性チェック」
第3.11.6項「ランタイム・パラメータ・フォームに追加するパラメータの選択」
第3.11.9項「バッチ・モードで実行中のレポートへのパラメータ渡し」
ペーパー・パラメータ・フォーム・ビュー(第1.6.5項「ペーパー・パラメータ・フォーム・ビューについて」)の各フィールドは、パラメータのプレースホルダとして機能します。これらのフィールドは、ランタイム・パラメータ・フォームに表示されるパラメータのフォーマット属性を定義します。デフォルトでは、「パラメータ・フォーム・ビルダー」で選択したパラメータごとに1つのフィールドが作成されます。
第3.11.7項「実行時におけるパラメータ・フォームの表示」
ペーパー・パラメータ・フォーム・ビューのボイラープレートは、ランタイム・パラメータ・フォームが実行されるたびに表示されるテキストおよびグラフィックを参照します。たとえば、特定のパラメータを示すラベルは、Reports Builderによって作成されるボイラープレート・テキストです。レイアウト内に作成した線やボックス、および追加したテキストもボイラープレートと見なされます。
ボイラープレートを利用すると、ランタイム・パラメータ・フォームをカスタマイズできます。デフォルトでは、ランタイム・パラメータ・フォームに表示される各フィールドについて、ボイラープレート・ラベルが生成されます。
第3.11.7項「実行時におけるパラメータ・フォームの表示」
Webレポートおよびペーパー・レポートの両方に対してパラメータ・フォームを設計できます。ただし、実行時にランタイム・パラメータ・フォームが表示されるのは、ペーパー・レポート・レイアウトを実行する場合のみです。JSPベースのWebレポートの場合は、ランタイム・パラメータ・フォームはデバッグを目的としてReports Builderからレポートを実行したときに表示されますが、実行時には表示されません。
レポートはあらゆるWebページで自由に表示できるので、他のポートレットやオブジェクトが多数含まれているWebページ上に1つのオブジェクトとしてレポートを配置したり、レポートのパラメータをパラメータ・フォーム以外のソースから取り出したりすることができます。たとえば、Webページによってページ上のすべてのポートレットにパラメータが設定されることがあります。したがって、レポートがフォーマットされる前にJSPベースのWebレポートのランタイム・パラメータ・フォームを表示することは意味がありません。
ランタイム・パラメータ・フォームが使用できない場合は、パラメータ・フォームを使用するように設計されたJSPベースのWebレポートの必須パラメータに値を設定するには、別の手段を使用する必要があります。次に例を示します。
<% String myParameterList = "userid=scott/tiger&p_deptno+10"; %> <rw:report id="myReport" parameters="<%= myParameterList %>">
JSPベースのWebレポートに対するパラメータ・フォームの作成方法は、第41章「JSPベースのWebレポートに対する単純なパラメータ・フォームの作成」を参照してください。
第1.6.5項「ペーパー・パラメータ・フォーム・ビューについて」
第1.11.1項「ランタイム・パラメータ・フォームについて」
第2.5.1項「パラメータ・フォームのHTML拡張について」
この項の各トピックでは、Reports Builderのプロパティ・インスペクタについて説明します。
プロパティ・インスペクタは、オブジェクト・ナビゲータ、レポート・エディタおよびテンプレート・エディタで現在選択されているオブジェクトのプロパティにアクセスするためのウィンドウです。
Reports Builderの各オブジェクト(問合せ、グループ、枠、パラメータなど)にはプロパティが関連付けられており、プロパティ・インスペクタを使用して表示できます。プロパティに関するヘルプを参照するには、プロパティ・インスペクタでプロパティをクリックして[F1]キーを押します。
ナビゲータまたはエディタで、[Shift]を押しながらクリックするか、[Ctrl]を押しながらクリックすると、複数のオブジェクトを同時に選択できます。2つ以上のオブジェクトが選択されているときは、プロパティ・インスペクタの上部にオブジェクト名のリストが表示されます。
プロパティ・インスペクタのツールバーにある「論理積/論理和」ボタンによって、複数のオブジェクトが選択されているときにどのプロパティがリストに表示されるかが決まります。「論理積」と「論理和」を切り替えると、プロパティ・インスペクタに表示されているプロパティのリストが変化しますが、プロパティの設定には影響しません。
ボタン | 説明 |
---|---|
論理積 |
デフォルトです。選択されているすべてのオブジェクトに共通するプロパティのみが表示されます。 |
論理和 |
選択されているすべてのオブジェクトのすべてのプロパティが表示されます。 |
複数選択するときに、2つ以上のオブジェクトに共通するプロパティはリストに一度だけ表示され、プロパティの設定は次のように表示されます。
第3.2.5項「ASCII(キャラクタ・モード)レポートのプロパティの設定」
この項の各トピックでは、実行時に表示されるレポートのビューについて説明します。
ランタイム・パラメータ・フォームは、実行時にオプションで表示されるダイアログ・ボックスで、デフォルトのパラメータ値をオーバーライドできます(SELECT
文を変更する値の指定、レポート出力先デバイスの変更など)。ランタイム・パラメータ・フォームのフォーマットは、ペーパー・パラメータ・フォーム・ビューで定義します。ペーパー・パラメータ・フォーム・ビューでランタイム・パラメータ・フォームを定義しない場合は、実行時にデフォルトのランタイム・パラメータ・フォームが表示されます。
必要に応じてパラメータを変更し、ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックすると、レポートが実行されます。
または、ツールバーの「実行取消」ボタンをクリックして取り消します。
第1.6.5項「ペーパー・パラメータ・フォーム・ビューについて」
第1.9.4項「Webレポートのパラメータ・フォームについて」
第3.11.7項「実行時におけるパラメータ・フォームの表示」
プレビューアは、レポートがどのように印刷されるかを画面に表示するものです。プレビューアでは、レポート出力の1ページをスクロールしたり、レポート全体のページを順に表示したり、画面を分割して同じレポートの異なる部分を同時に表示したりすることができます。次の操作も実行できます。
目的 | クリックするツールバー上のボタン |
---|---|
レポートを印刷する |
「印刷」ボタン |
ページ設定を指定する |
「ページ設定」ボタン |
新しいプレビューアを開く |
「新規プレビューア」ボタン |
プレビューアを閉じる |
「プレビューアを閉じる」ボタン |
拡大 |
「拡大」ボタン |
縮小 |
「縮小」ボタン |
物理ページ(パネル)のサイズは、プリンタで出力される1ページ分です。論理ページの大きさは、実際のレポートの1ページ分です(幅または高さが複数の物理ページに及ぶこともあります)。プレビューアには、レポート出力の論理ページが1ページずつ表示されます。
プレビューアを表示するには:
レポートの実行速度を上げるには、レポート出力をプレビューアまたはペーパー・デザイン・ビューに送るときに先行フェッチが行われないようにします。次の項目が依存しているデータよりも先にこれらの項目が参照されたときに、先行フェッチが発生します。
マトリックス(クロス積)グループを使用するときも、先行フェッチが発生します。Oracle Reportsでは、データをクロス集計するために、最初にすべてのデータをフェッチする必要があります。
これらの項目があるとプレビューアまたはペーパー・デザイン・ビューの処理が遅くなりますが、ファイルなどの出力先に書き出すときのパフォーマンスには影響しません。
Oracle Reportsの実行可能ファイルは次のとおりです。
すべての実行可能ファイルは、コマンドラインから実行できます。実行可能ファイルおよびコマンド・ライン・キーワードの詳細は、Oracle Reportsオンライン・ヘルプの「リファレンス」の「コマンドライン」の項を参照してください。
|
Copyright © 2003, 2005 Oracle. All Rights Reserved. |
|