ヘッダーをスキップ

Oracle Reports レポート作成ガイド
10gリリース2(10.1.2)
B25068-01
目次
目次
索引
索引

戻る 次へ

2
拡張概念

この章では、Oracle Reportsの上級者を対象に概要を説明します。この章の各項は、Oracle Reportsオンライン・ヘルプの「拡張概念」の項にも含まれています(第3.1.1項「Oracle Reportsオンライン・ヘルプの使用」を参照)。

トピックは次の各項に分類されています。

2.1 レポート

この項のトピックは、第1.2項「レポート」で説明した基本的な概念に基づいています。

2.1.1 レポートのタイトルについて

次のいずれかの方法で、レポートにタイトルを追加できます。

レポート・ウィザードを使用してタイトルを追加するときに、レポート出力用のテンプレートを選択しない場合は、Reports Builderに定義されているデフォルト属性を使用して、タイトルがレポートのマージンに挿入されます。これらの属性は、ペーパー・レイアウト・ビューで変更できます。

レポート・ウィザードを使用してタイトルを追加するときに、レポート出力用の事前定義テンプレートまたはユーザー定義テンプレート・ファイルを選択する場合は、選択したテンプレートに定義されているB_OR$REPORT_TITLEという名前のボイラープレート・テキスト・オブジェクトが検索されます。

レポート・ブロック・ウィザードを使用して作成したレイアウトでは、タイトルはレポートのマージンに挿入されずに、グループ・タイトルとして新しいレイアウトに挿入されます。この場合、選択したテンプレートの「デフォルト」プロパティ(プロパティ・インスペクタの「タイトル」ノードの下)に従って属性が設定され、B_OR$REPORT_TITLEは無視されます。テンプレートを選択しない場合は、Reports Builderに定義されているデフォルト属性がタイトルに使用されます。

関連項目

第3.5.6項「レポートへのタイトルの追加」

第3.12.5項「テンプレートのレポート・タイトルのフォーマット」

第2.7.1項「テンプレートについて」

2.1.2 レポートのセクション分割と各セクションについて

レポートをセクション分割することで、1つのレポートに複数のレイアウトを定義でき、対象読者ごとにレイアウトを割り当てたり、異なる出力フォーマット、ページ・レイアウト、ページ・サイズ、方向などを指定したりできます。レポート・セクションは3つまで定義でき、各セクションには本体用の領域とマージン用の領域があります。これらのセクションを、ヘッダー、メイン、トレーラと呼びます。デフォルトでは、レポートはメイン・セクションに定義されます。他のセクションには、複数のレポートを別々に作成しなくても、異なるレイアウトを定義できます。必要に応じて、ヘッダー・セクションとトレーラ・セクションのマージンと本体を使用して、レポートにヘッダー・ページとトレーラ・ページを作成することもできます。

オブジェクト・ナビゲータでは、レポートの各セクションは「ペーパー・レイアウト」ノードの下に、「ヘッダー・セクション」、「メイン・セクション」および「トレーラ・セクション」として表示されます。

レポートの3つのセクション(ヘッダー、メイン、トレーラ)のフォーマット順序は、SRW.SET_FORMAT_ORDERまたは「セクションのフォーマット順序」プロパティを使用して指定できます。この機能により、Oracle Reportsでは、任意のセクションを最初にフォーマットし、フォーマット時にのみ認識される情報(ページ番号など)を作成して、その情報を別のセクションのフォーマットに使用できます。たとえば、このプロパティを使用して目次を作成できます。この目的でのSRW.SET_FORMAT_ORDERの使用例は、第35章「単純な目次と索引を使用したペーパー・レポートの作成」および第36章「複数階層の目次を使用したペーパー・レポートの作成」を参照してください。

セクションレベルの配布の使用例は、第37章「レポートの一括処理と配布」を参照してください。この章では、「繰返し」プロパティおよびサンプルの配布XMLファイルを使用して、1つのセクションに複数の配布先を定義する方法について説明します。高度なセクション・レベルの配布と、独自の配布XMLファイル作成の詳細は、『Oracle Application Server Reports ServicesレポートWeb公開ガイド』マニュアルの「拡張配布の作成」の章を参照してください。

例1

セクション分割と配布を使用することで、レポート出力をHTMLで公開したり、Postscriptバージョンでプリンタに送信したりできます。

例2

シニア・マネージャにはレポートの集計サマリーを送信し、個々のマネージャには詳細な分析を電子メールで送信できます。この例では、2つのレポート・セクションを持つレポートを1つ作成する必要があります。1つは縦長のサマリー・セクションで、もう1つは横長の詳細セクションにします。「繰返し」プロパティを使用して、マネージャをリストするデータ・モデル・グループに詳細セクションを関連付け、次にデータ・モデル・グループの各インスタンスの宛先を変更することで、適切なマネージャに出力を送信します。

関連項目

第2.8.3項「レポートの配布について」

第3.10.1項「セクションのレイアウト・ビューの表示」

第3.10.2項「セクションのデフォルト・レイアウトの作成」

2.1.3 レポートのサイズの単位について

レポートの定義には、インチ、センチメートルまたはポイントを使用できます。サイズの単位は、レポートを作成するデバイスに依存しません。つまり、Reports Builderを実行する任意のプラットフォームで動作するレポートを設計できます。レポートのサイズの単位は、次の方法で変更できます。

2.1.4 レポートのディメンションについて

レポート・ページには、長さと幅を任意に設定できます。プリンタ・ページがペーパー・レポートのページよりも小さいまたは大きい可能性があるため、物理ページと論理ページという概念が使用されます。物理ページのサイズは、プリンタで出力される1ページ分です。論理ページとはレポートの1ページのサイズで、1つの論理ページは複数の物理ページから構成されることがあります。

レポートの各セクション(ヘッダー、メイン、トレーラ)で、次のように指定します。

この例では、1つの論理ページが6つの物理ページから構成されています。この論理ページには、横方向に3つの物理ページが、高さ方向に2つの物理ページがあります。したがって、「ページ当りの水平パネル」のサイズは3に、「ページ当りの垂直パネル」のサイズは2になります。論理ページの横方向に2つの物理ページ、高さ方向に3つの物理ページを構成する場合は、「ページ当りの水平パネル」のサイズに2を、「ページ当りの垂直パネル」のサイズに3を指定します。

図2-1    レポートのディメンション


画像の説明

2.1.5 レポートのフォントについて

フォントの構成ファイル、フォントの別名の作成、フォントに関するトラブルシューティング、フォント・タイプなど、Oracle Reportsでのフォントの使用方法および追加方法の詳細は、『Oracle Application Server Reports ServicesレポートWeb公開ガイド』の「Oracle Reportsのフォント」の章を参照してください。このマニュアルは、Oracle Technology NetworkのOracle Reportsドキュメントのページ(http://www.oracle.com/technology/documentation/reports.html)から入手できます。

2.1.6 条件付き書式について

「条件付き書式」ダイアログ・ボックスおよび「書式の例外」ダイアログ・ボックスを使用すると、既存の条件に基づいて選択されるレイアウト・オブジェクトに対して、出力書式属性(フォント、カラーなど)を指定できます。定義する条件を、書式の例外と呼びます。

「条件付き書式」ダイアログ・ボックスは、次のいずれかの方法で、ペーパー・レイアウト・ビューまたはペーパー・デザイン・ビューから表示できます。

「書式の例外」ダイアログ・ボックスは、「条件付き書式」ダイアログ・ボックスで「新規」または「編集」をクリックすると表示され、定義済の条件に基づいて選択されるレイアウト・オブジェクトに対して、出力書式属性を迅速かつ簡単に指定できます。「書式の例外」ダイアログ・ボックスで現行のレイアウト・オブジェクトに条件と書式を指定したら、その定義のすべてがPL/SQLフォーマット・トリガーにエクスポートされます。レイアウト・オブジェクトにフォーマット・トリガーがすでにある場合は、Reports Builderのプロンプトで確認してから、「書式の例外」ダイアログ・ボックスの定義で既存のトリガー・コードが上書きされます。

フォーマット・トリガーはPL/SQLエディタで手動編集できますが、その後に「書式の例外」ダイアログ・ボックスを使用して変更する場合は、Reports Builderによって、既存のフォーマット・トリガーに上書きするかどうかを確認するプロンプトが表示されます。

関連項目

第3.9.1.5項「条件付き書式のレイアウト・オブジェクトへの適用」

2.1.7 ネストしたマトリックス・レポートについて

ネストしたマトリックス・レポートとは、マトリックス・グリッド内に少なくとも1つの親子リレーションシップが表示されるマトリックス・レポートのことです。

ネストしたマトリックス・レポートには3つ以上のディメンションがあるため、複数のディメンションがページの水平方向または垂直方向に配置されます。たとえば、次のレポートのサンプルを見てください(図2-2)。年ごとに、関連部門の一覧がネストして表示されます。また、職種の一覧は(水平方向の値として)一度だけ表示されます。職種の値は一度だけ表示されるため、職種の項目ごとにサマリーを作成し、サマリー結果の値を1行で表示できます。


注意

ネストしたマトリックス・レポートで、子マトリックス問合せのあるマトリックス問合せを作成した場合、結合するフィールドはマスター・マトリックスの別のグループに分ける必要があります。それ以外の場合は、プラットフォームによっては最初のグル−プのみ印刷されます。 


詳細な例は、第26章「ネストしたマトリックス・レポートの作成」を参照してください。

関連項目

第2.3.7項「マトリックス・オブジェクトについて」

第1.3.7項「マトリックス・レポートについて」

2.1.8 グループ別マトリックス・レポートについて

グループ別マトリックス・レポートとは、マスター・グループの値ごとに異なるマトリックスを持つグループ上レポートのことです。たとえば、次のレポートの各年(マスター)には、その年の部門と職種のみを含む一意のマトリックスがあります。つまり、マトリックス内の各職種項目の位置が各年で異なる場合があるため、各職種項目のサマリーはサマリー結果の値で1行に表示できません。

複数の問合せを使用したグループ別マトリックス・レポートは、3つ以上のディメンションを持つという点で、ネストしたマトリックス・レポートに似ています。たとえば、次のレポートでは、年ごとに、関連部門の一覧がネストして表示されます。

図2-2    グループ別およびネストしたマトリックス・レポートのサンプル


画像の説明

複数の問合せを使用する利点は、ネストしているグループに対して、実際のブレークまたはマスター/ディテール・リレーションを取得できることです(たとえば、前述の複数の問合せの例では、Year 80にレコード20のみが表示されます。1つの問合せでは、Year 80に該当するデータがあるかどうかに関係なく、すべてのレコードがYear 80に対して表示されます)。特定のマスター・レコードに対して、データを持たないディテール・レコードを非表示にする場合は、複数の問合せを使用する必要があります。

詳細な例は、第27章「グループ上マトリックス・レポートの作成」のサンプル・レポートを参照してください。

関連項目

第2.3.7項「マトリックス・オブジェクトについて」

第1.3.7項「マトリックス・レポートについて」

2.2 Webレポート

この項のトピックは、第1.2.2項「Webレポートについて」で説明した基本的な概念に基づいています。

関連項目

第1.2.2項「Webレポートについて」

2.2.1 JavaServer Pages(JSP)とサーブレットについて

JavaServer Pages(JSP)テクノロジは、Sun社のJavaサーブレット・テクノロジの拡張機能で、Webページ上に動的コンテンツを表示するための簡単なプログラミング手段を提供します。JSPは、Webまたはアプリケーション・サーバーで実行される埋込みのJavaソース・コードを持つHTMLページです。HTMLはWebブラウザに表示されるページ・レイアウトを提供し、Javaはビジネス・ロジックを提供します。

JSPでは、静的なページの表示と動的なコンテンツの生成が分離されています。JSPでは、動的なアプリケーション・ロジックが静的なHTMLコンテンツから完全に切り離されているため、Javaプログラミングの経験があまりないWebページ・デザイナや経験のないWebページ・デザイナでも、単純にHTMLタグまたはXMLタグを使用して、コンテンツの生成に影響を与えることなくJSPページの外観を変更し、動的に生成されるWebページを設計およびフォーマットできます。JSP固有のタグまたはJavaベースのスクリプレットは、Webページに動的なコンテンツを生成するコンポーネントをコールするために使用します。

JSPには.jsp拡張子があります。この拡張子によって、Web Serverに、ページの処理にJSPコンテナが必要なことが通知されます。JSPコンテナはJSPタグとスクリプレットを解析し、JSPをJavaサーブレットにコンパイルして実行します。それにより、必要なコンテンツが生成され、その結果がHTMLページまたはXMLページとしてブラウザに返信されます。

JSPは、一般的にインターネットまたは企業のイントラネット経由で、ブラウザベースのクライアントからアクセスおよび実行できます。JSPアプリケーションは、従来のクライアント/サーバー・アプリケーションと次の点で異なります。

JSPが初めてコールされるときは、Javaサーブレット・クラスにコンパイルされ、Web Serverのメモリーに格納されます。JSPはメモリーに格納されるため、同じページへのコールは2回目以降速くなり、その結果、HTTPリクエストごとに新しいプロセスを起動するという、従来のCommon Gateway Interface(CGI)プログラムで見られたパフォーマンス上の制限が回避されます。

JSPテクノロジに関する他の一般的な情報は、Sun社のJavaおよびJ2EEに関するWebサイト(http://java.sun.com)を参照してください。

2.2.1.1 Oracle ReportsでのJSPの使用

Oracle Reportsでは、Reports Builderを使用して取得する情報でWebページを拡張できるように、基盤テクノロジとしてJavaServer Pages(JSP)がサポートされます。

Oracle Reportsでは、データ・モデルを使用して取得したデータをJSPにより既存のWebページに埋め込み、JSPベースのWebレポートを作成します。JSPレポートは新規作成することも、既存のレポートをJSPレポートとして保存することもできます。新しく作成するレポートは、デフォルトでJSPレポートとして保存されます。レポートをJSPとして保存する場合の利点は、JSPがテキスト・ファイルのため、バイナリの.rdfフォーマットなどに比べて簡単に編集できる点です。レポートをJSPファイルとして保存すると、そのデータ・モデルがXMLタグを使用して埋め込まれます。現在、レポート全体をXMLタグを使用して定義することも、XMLファイルとして保存することもできます。

Oracle ReportsのカスタムJSPタグを使用すると、既存のJSPファイルにレポート・ブロックやグラフを簡単に追加できます。これらのタグをテンプレートとして使用すれば、JSPベースのWebレポートに、独自のデータドリブンJavaコンポーネントを構築して挿入できます。JSPでは、レポート・ブロックをカプセル化しているHTMLまたはXMLコードの編集に加えて、本体と属性を変更、追加または削除することで、JSP自体でレポート・ブロックを編集することもできます。

レポート・エディタのWebソース・ビューには、HTMLタグ、XMLタグおよびJSPタグを含むWebレポートのソース・コードが表示されます。

デフォルトで、Reports Builderで作成した新規のJSPの内容は次のとおりです。
<%@ page contentType="text/html;charset=ISO-8859-1" %>
JSPをReports Builder以外で作成する場合は、必ず同様のエンコーディング情報を含める必要があります。

以前のリリースで、Oracle Reportsではペーパーベースのレポートに追加できるWebリンクが導入されました。このリンクは、ペーパー・レポートをWebブラウザまたはPDFビューアで表示するときにアクティブになります。JSPレポートでは、ハイパーリンクを手動で作成する必要があります。また、ハイパーリンクでデータ値を代入する必要がある場合は、データ値をrw:fieldというJSPタグで指定する必要があります。たとえば、次のように指定します。

<a href="http://server/path/rwservlet?report=department.jsp&p_deptno=<rw:field
id="F_Deptno" src="Deptno"/>"> <rw:field id="F_Deptno" src="Deptno">10</rw:field> </a>

2.2.1.2 エンコードされたJSPベースのWebレポートの起動または実行

JSPベースのWebレポートの文字コード(EUC-JPなど)が、NLS_LANG環境変数のキャラクタ・セット部分(JA16SJISなど)と異なる場合、次のエラーが表示されます。

この問題に対処するには、JSPベースのWebレポートの文字コードが、Reports BuilderのNLS_LANG環境変数のキャラクタ・セット部分に対応するIANAエンコーディングに一致することを確認する必要があります。

次に例を示します。

2.2.1.3 JSPファイルへのキャラクタ・セットの動的な埋込み

Oracle Reportsでは、Webレポートのテンプレートはデフォルトで西欧文字コード用に構成されています。他の言語に関しては、<Meta>タグのcharset属性と<%@page%>ページ・ディレクティブの両方を使用して、すべてのJSPファイルに文字コードを指定できます。

適切な文字コードをJSPファイルに動的に関連付けるには、次の変更を行います。

  1. rw*.htmlファイルおよびblank_template.jspファイルを次のように編集します。

    • ページ・ディレクティブを次のように変更します。

      <%@ page contentType="text/html;charset=yourIANAencoding" %>

      前述のディレクティブ中にある変数の意味は次のとおりです。

      yourIANAencodingは、NLS_LANG変数のNLS_CHARACTERSET部分に対応するIANAエンコーディング名です。

    • <Head>タグ内の<Meta>タグを次のように変更します。

      <meta http-equiv="Content-Type" content="text/html;charset=yourIANAencoding" />

  2. template.xslORACLE_HOME/reports/templates/)ファイルを次のように編集します。

    • <xsl:output>タグを次のように変更します。

      <xsl:output
      method="jsp"
      indent="yes"
      encoding="
      yourIANAencoding"
      />

      前述のディレクティブ中にある変数の意味は次のとおりです。

      yourIANAencodingは、NLS_LANG変数のNLS_CHARACTERSET部分に対応するIANAエンコーディング名です。

    • 次のページ・ディレクティブをファイルに追加します。

      <%@ page contentType="text/html;charset=yourIANAencoding" %>

    • タグ内の<META>タグを追加または変更します。

      <meta http-equiv="Content-Type" content="text/html;charset=yourIANAencoding" />

      前述のディレクティブ中にある変数の意味は次のとおりです。

      yourIANAencodingは、NLS_LANG変数のNLS_CHARACTERSET部分に対応するIANAエンコーディング名です。

関連項目

Oracle Reportsオンライン・ヘルプの「リファレンス」の項のトピック「Oracle ReportsのJSPタグ」および「Oracle Reports XMLタグ」

2.2.2 JSPベースのWebレポートのプレビューについて

JSPベースのWebレポートをプレビューするには、ツールバーの「Webレイアウトを実行」ボタンをクリックするか、「プログラム」→「Webレイアウトを実行」を選択してWebソースを実行します。Reports Builderによって、Webレポートがデフォルトのブラウザに表示されます。


注意

  • デフォルトのブラウザがNetscape 7.0で、ブラウザが表示されない場合、レジストリ・キーHKEY_CURRENT_USERS¥Software¥
    Oracle¥Toolkit¥Tkbrowser
    をデフォルトのブラウザの場所に設定します。BrowserNameキーおよびBrowserPathキーが正しい値を反映していることを確認してください。たとえば、次のようになります。BrowserName=Netscape 7; BrowserPath=C:¥Program Files¥Netscape¥Netscape¥Netscp.exe

  • major.minorバージョン関連のエラーで「Webレイアウトを実行」が失敗した場合、CLASSPATH環境変数またはREPORTS_CLASSPATH環境変数を次のように更新する必要があります。oc4j.jarファイル・パス内の9.0.x ORACLE_HOMEの指定を削除します(oc4j.jarファイル・パスは10gリリース2(10.1.2)ORACLE_HOMEのみを指定している必要があります)。

 

この機能を使用するために、Reports Serverを構成する必要はありません。Reports Builderには、埋込みのOracle Container for Java(OC4J)サーバーが用意されています。Reports Builderの各インスタンスはそれぞれ専用のOC4Jサーバーを持ち、一意なポートをリスニングしています。そのため、同時に複数のReports Builderセッションが可能になります。ポートを指定しない場合、Reports Builderではデフォルトの範囲にある空のポートが自動的に検索されます。OC4Jオプションを使用してJSPレポートをローカルでプレビューする場合、JSPがイメージなどの外部ファイルに依存していたり、または生成されるJavaファイルを確認したりする場合は、Reports Builderによる一時ファイルの処理方法を理解しておく必要があります。

JSPは.javaファイルに変換され、クラス・ファイルにコンパイルされます。クラス・ファイルを実行すると、.htmlファイルとしてHTMLが返されます。この.htmlファイル、.javaファイルおよび.classファイルは、すべて$REPORTS_TMP/docrootディレクトリに置かれます。$REPORTS_TMPはコマンドライン・パラメータとしてReports Builderに渡すことができるので、docrootディレクトリのデフォルトの場所は変更できます。docrootディレクトリのファイルは、Reports Builderの終了時にクリーン・アップされます。

ドキュメント・ルート

デフォルトでは、Reports Builderのドキュメント・ルートは、$REPORTS_TMP環境変数で指定したディレクトリの下にあるdocrootディレクトリ(c:/temp/docrootなど)です。エンド・ユーザーは、このデフォルトのdocrootをコマンドラインから(WEBSERVER_DOCROOTコマンドライン・キーワードを使用して)変更できます。JSPがイメージやスタイル・シートなどの外部ファイルに依存している場合は、それらをdocrootディレクトリにコピーする必要があります。また、WEBSERVER_DOCROOTコマンドライン値を独自のドキュメント・ルート・ディレクトリに指定することもできます。

ドキュメント・ルートの構造

JSPは.javaファイルに変換され、.classファイルにコンパイルされます。.classファイルを実行すると、.htmlファイルとしてHTMLが返されます。この.htmlファイル、.javaファイルおよび.classファイルは、すべて$REPORTS_TMP/docrootディレクトリに置かれます。$REPORTS_TMPはコマンドライン・パラメータとしてReports Builderに渡すことができるので、docrootディレクトリのデフォルトの場所は変更できます。docrootディレクトリのファイルは、Reports Builderの終了時にクリーン・アップされます。

emp.jspを実行した後のdocrootディレクトリの構造は次のようになります(デフォルトのdocrootである$REPORTS_TMP/docrootを使用します)。

temp
  docroot
    3000                        working directory for instance of the Builder
      default
        defaultWebApp            temporary JSP working directory
          temp
            _pages
            _empxxx.class       compiled Java class
            _empxxx.java         translated Java file
      log                        OC4J log directory
        global-application.log
        server.log
        orion-conf               OC4J configuration files directory
      stderr.log                 debug log when WEBSERVER_LOG=yes
      stdout.log
    3002                         another instance's working directory
    css                          template style sheets
    images                       template images
    WEB-INF
      lib
      reports_tld.jar
    web.xml
    rwerror.jsp                  template error JSP
    empxxx.jsp                   working copy of emp.jsp
    empxxx.html                  resulting output
使用に関する注意
関連項目

第3.7.16.4項「Webブラウザでのレポート出力の表示」

第3.7.17.3項「Webブラウザでのレポートの印刷」

2.2.3 HTML出力のWebリンクについて

このトピックでは、ペーパーベースのレポートに追加できるWebリンクについて説明します。このリンクは、レポートをHTMLファイルに生成しWebブラウザで表示するときにアクティブになります。

多くの場合、Webリンクはオブジェクトのプロパティ・インスペクタで定義できます。実行時の動的リンクは、リンク値に列名とフィールド名を指定することで作成できます。条件付き設定など、さらに複雑なWebリンクを実装する必要がある場合は、PL/SQLおよびReports Builderのビルトイン・パッケージ・プロシージャSRW.SET_ATTRを使用して、リンクを指定する必要があります。

HTMLフォーマットのレポート出力には、次の種類のWebリンクを含めることができます。

さらに、エスケープを使用する次のヘッダーおよびフッターを追加して、HTMLタグをペーパーベースのレポートに追加することができます。

2.2.4 PDF出力のWebリンクについて

このトピックでは、ペーパーベースのレポートに追加できるWebリンクについて説明します。このリンクは、レポートをPDFファイルに実行しPDFビューアで表示するときにアクティブになります。

PDFフォーマットのレポート出力には、次の種類のWebリンクを含めることができます。

多くの場合、Webリンクはオブジェクトのプロパティ・インスペクタで定義できます。実行時の動的リンクは、リンク値に列名とフィールド名を指定することで作成できます。条件付き設定など、さらに複雑なWebリンクを実装する必要がある場合は、PL/SQLを使用してリンクを指定する必要があります。

2.2.5 ハイパーリンクについて

ハイパーリンクは、次のいずれかの宛先へのハイパー・テキスト・リンクを指定するオブジェクトの属性です。

「追加のハイパーリンク属性」プロパティを設定すると、ハイパーリンクに適用するHTMLを追加指定できます。

関連項目

第3.6.10.1.8項「プロパティ・インスペクタを使用したハイパーリンクの作成」

第3.6.10.2.7項「PL/SQLを使用したハイパーリンクの作成」

2.2.6 グラフ・ハイパーリンクについて

グラフ・ハイパーリンクは、グラフの領域からWebレポート内の指定の場所へのアクティブ・リンクです。エンド・ユーザーは、Web(JSPベース、あるいはペーパーベースのPDFまたはHTML)にレポートを表示し、グラフの1つ以上の領域をクリックして、別のリンク情報にドリルダウンできます。

関連項目

第3.6.8項「グラフ・ハイパーリンクの追加」

2.2.7 ハイパーリンクの宛先について

ハイパーリンクの宛先は、ハイパー・テキスト・リンクの宛先を識別するオブジェクトの属性です。

関連項目

第3.6.10.1.7項「プロパティ・インスペクタを使用したハイパーリンクの宛先の作成」

第3.6.10.2.8項「PL/SQLを使用したハイパーリンクの宛先の作成」

2.2.8 ブックマークについて

ブックマークは、オブジェクトへのリンクとなる文字列を指定するオブジェクトの属性です。

関連項目

第3.6.10.1.10項「プロパティ・インスペクタを使用したブックマークの作成」

第3.6.10.2.10項「PL/SQLを使用したブックマークの作成」

第3.6.10.1.11項「プロパティ・インスペクタを使用したブレーク列上のブックマークの作成」

2.2.9 アプリケーション・コマンドライン・リンクについて

(PDF出力のみ)アプリケーション・コマンドライン・リンクは、オブジェクトがクリックされたときに実行するコマンドラインを指定するオブジェクトの属性です。

制限

アプリケーション・コマンドライン・リンクに関連付けられているオブジェクトを、さらにWebリンクのソース(ハイパーリンク)にすることはできません。

関連項目

第3.6.10.1.9項「プロパティ・インスペクタを使用したアプリケーション・コマンドライン・リンクの作成」

第3.6.10.2.9項「PL/SQLを使用したアプリケーション・コマンドライン・リンクの作成」

2.2.10 前および後のエスケープについて

制限

レポート後値(第2.2.10項「前および後のエスケープについて」を参照)では、本体の外にHTMLコマンドを追加しても、レポートをスプレッドシート出力に生成したときに反映されません。これは、出力でHTMLコマンドが適切に指定されている場合でも同様です。次に例を示します。

</body><table><tr><td><B> the text to be bolded </B></td><tr></table></html>

本文終了タグの前にHTMLコマンドを追加すると、レポートをスプレッドシート出力に生成したときに正常に反映されます。次に例を示します。

<table><tr><td><B> the text to be bolded </B></td><tr></table></body></html>

スプレッドシート出力の詳細は、第2.8.13項「スプレッドシート出力について」を参照してください。

関連項目

第3.6.10.1.1項「プロパティ・インスペクタを使用したHTMLドキュメント・ヘッダーの作成」

第3.6.10.2.1項「PL/SQLを使用したHTMLドキュメント・ヘッダーの作成」

第3.6.10.1.2項「プロパティ・インスペクタを使用したHTMLドキュメント・フッターの作成」

第3.6.10.2.2項「PL/SQLを使用したHTMLドキュメント・フッターの作成」

第3.6.10.1.3項「プロパティ・インスペクタを使用したHTMLページ・ヘッダーの作成」

第3.6.10.2.3項「PL/SQLを使用したHTMLページ・ヘッダーの作成」

第3.6.10.1.4項「プロパティ・インスペクタを使用したHTMLページ・フッターの作成」

第3.6.10.2.4項「PL/SQLを使用したHTMLページ・フッターの作成」

第3.6.10.1.5項「プロパティ・インスペクタを使用したHTMLパラメータ・フォーム・ヘッダーの作成」

第3.6.10.2.5項「PL/SQLを使用したHTMLパラメータ・フォーム・ヘッダーの作成」

第3.6.10.1.6項「プロパティ・インスペクタを使用したHTMLパラメータ・フォーム・フッターの作成」

第3.6.10.2.6項「PL/SQLを使用したHTMLパラメータ・フォーム・フッターの作成」

2.2.11 スタイル・シートについて

スタイル・シート(またはカスケード・スタイル・シート)は、HTMLドキュメントの書式をきわめて柔軟に設定できるようにするHTMLの拡張書式です。スタイル・シートをサポートすることで、HTMLドキュメントで次のことが可能になります。

つまり、レポートをHTMLCSSドキュメントとしてフォーマットしたときに、レポート内の高度な書式がそのまま保持されます。スタイル・シートで拡張されていないHTMLドキュメントでは、基本的なテキスト書式とインポートされたイメージのみが表示されます。スタイル・シートでは、高度にフォーマットされたテキストのイメージは、同等のスタイル、カラーおよびフォントを持つテキスト・オブジェクトに置換されます。テキスト・オブジェクトとイメージ・オブジェクトは、オーバーラップさせて配置できます。すべてのテキストは完全に検索可能で、ダウンロードするイメージも少なくてすみます。

スタイル・シートを利用したHTMLドキュメントを表示するには、スタイル・シートをサポートしているブラウザが必要です。

HTMLCSS出力での外部スタイル・シートの使用方法

現在、どの企業のWebサイトでも、Webページ全体で企業のルック・アンド・フィールを実現するためにスタイル・シートが使用されています。外部スタイル・シートは、Webページが参照するカスケード・スタイル・シート(CSS)ファイルです。エンド・ユーザーは通常、Webサイト上のページで使用されているものと同じスタイルをWebレポートに適用することを望みます。

以前のリリースでは、スタイル・シートやユーザー定義のスタイルをレポートに適用する場合、HTMLCSS出力を手動で編集する必要がありました。

Oracle Reports 10gリリース2(10.1.2)からは、HTMLCSS出力用のユーザー定義スタイルおよびスタイル・シートを、Reports Builderを使用して指定できます。スタイルは、新しいプロパティである「スタイル・シート」、「CSSクラス名」および「CSS ID」(これらのプロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照)を使用して、レポート、フィールド、テキスト、枠および繰返し枠の各オブジェクトに適用できます。生成されるHTMLCSS出力にはスタイル・シートへのリンクが含まれ、ユーザー定義のスタイルがオブジェクトに適用されます。

制限

次の要素は、HTMLのスタイル・シート拡張ではサポートされません。

関連項目

第3.7.16.4項「Webブラウザでのレポート出力の表示」

第3.7.17.3項「Webブラウザでのレポートの印刷」

2.3 データ・モデル・オブジェクト

この項のトピックは、第1.7項「データ・モデル・オブジェクト」で説明した基本的な概念に基づいています。

2.3.1 サマリー列について

サマリー列は、他の列にあるデータに対して計算を実行するときに使用します。レポート・ウィザードまたはデータ・ウィザードでは、合計、平均、件数、最小値、最大値および%合計のサマリーを作成できます。また、サマリー列はデータ・モデル・ビューで手動で作成することもでき、プロパティ・インスペクタを使用すると、最初、最後、標準偏差および分散のサマリーも作成できます。

消費税などのカスタマイズされた計算がレポートで必要な場合は、式列を作成します(第3.8.10項「式列の作成または編集」を参照)。


注意

グループ・レポートでは、レポート・ウィザードおよびデータ・ウィザードによって、定義するサマリー列のそれぞれに対して、n個のサマリー・フィールドがデータ・モデルに作成されます。つまり、サマリーを作成する列上の各グループに対してそれぞれ1つのサマリー・フィールドが作成され、レポートレベルで1つのサマリー・フィールドが作成されます。たとえば、部単位にグループ化され、さらに課単位にグループ化されているレポートの場合、給与合計用のサマリー列を定義すると、各部および各課の給与合計(グループレベルのサマリー)用フィールドと、すべての給与の合計(レポートレベルのサマリー)用フィールドが作成されます。 


関連項目

第3.8.11項「サマリー列の作成」

2.3.2 式列について

式列は、プレースホルダ列などの列にあるデータに対してユーザー定義の計算を実行するときに使用します。たとえば、:ITEMTOT *.07は1つの列に対して計算を実行する式で、:SAL + :COMMはレコード内の2つの列を使用して計算を実行する式です。式は、PL/SQLエディタを使用してPL/SQLで作成できます。


注意

パラメータの値を設定するために、式列を使用しないでください。 


関連項目

第3.8.10項「式列の作成または編集」

第2.6.8項「式について」

2.3.3 プレースホルダ列について

プレースホルダは、任意のPL/SQLでデータ型と値を設定する列です。プレースホルダ列は、列の値を選択的に設定するとき(たとえば、毎回n番目の値をフェッチする場合、または毎回特定の値を含むレコードをフェッチする場合など)に便利です。プレースホルダ列の値は、次の場所に設定できます。

関連項目

第3.8.12項「プレースホルダ列の作成または編集」

第2.6.8項「式について」

2.3.4 列参照とパラメータ参照について

ユーザー・パラメータ、システム・パラメータおよび列は、バインド参照または字句参照で参照できます。

2.3.4.1 バインド参照について

バインド参照(またはバインド変数)は、文字列、数字、日付などの、SQLまたはPL/SQL内の1つの値を置換するときに使用します。特に、問合せのSELECTWHEREGROUP BYORDER BYHAVINGCONNECT BYSTART WITHの各句で式を置換するときに、バインド参照を使用すると効果的です。バインド参照はFROM句では参照できず、予約語または予約句のかわりに使用することもできません。

バインド参照は、コロン(:)の後に対象の列名またはパラメータ名を入力して作成します。SELECT文でバインド参照を作成する前に、対象になる列またはパラメータを作成しないと、Reports Builderによってデフォルトでパラメータが作成されます。

制限

バインド参照に、予約済のSQLキーワードと同じ名前を使用することはできません。詳細は、『Oracle Database SQLリファレンス』を参照してください。

例1: SELECT句

次の例では、選択された行にあるCOMMPLANのNULL値がDFLTCOMMの値によって置換されます。

SELECT CUSTID, NVL(COMMPLAN, :DFLTCOMM) COMMPLAN
  FROM ORD;
例2: WHERE句

CUSTの値を使用して、特定の1人の顧客を選択します。

SELECT ORDID, TOTAL
  FROM ORD
  WHERE CUSTID = :CUST;
例3: GROUP BY句

SELECT句にあるNVL(COMMPLAN, :DFLTCOMM)のような非集計式はすべて、GROUP BY句でレプリケートする必要があります。

SELECT NVL(COMMPLAN, :DFLTCOMM) COMMPLAN, SUM(TOTAL) TOTAL
  FROM ORD
  GROUP BY NVL(COMMPLAN, :DFLTCOMM);
例4: HAVING句 

MINTOTALの値を使用して、最小発注量の顧客を選択します。

SELECT CUSTID, SUM(TOTAL) TOTAL
  FROM ORD
  GROUP BY CUSTID HAVING SUM(TOTAL) > :MINTOTAL;
例5:  ORDER BY句

SORTの値を使用して、ソート基準にSHIPDATEまたはORDERDATEを選択します。これはORDER BY 1とは異なることに注意してください。ここでは、:SORTは値として使用されており、SELECTリストでの式の位置を識別しているわけではありません。この例ではDECODEが必要になることにも注意してください。DECODEを伴わない場合は、ORDER BY句でバインド変数を使用できません。

SELECT ORDID, SHIPDATE, ORDERDATE, TOTAL
  FROM ORD
  ORDER BY DECODE(:SORT, 1, SHIPDATE, 2, ORDERDATE);
例6:   CONNECT BY句およびSTART WITH句

CONNECT BY句およびSTART WITH句での参照の使用方法は、WHERE句およびHAVING句と同じです。

例7:   PL/SQL
procedure double is begin; :my_param := :my_param*2; end;

my_paramの値は、2で乗算されmyparamに代入されます。

2.3.4.2 字句参照について

字句参照は、SELECT文に埋め込む列またはパラメータのプレースホルダです。字句参照を使用すると、SELECTFROMWHEREGROUP BYORDER BYHAVINGCONNECT BYおよびSTART WITHの後の句を置換できます。字句参照は、実行時にパラメータで複数の値を代入するときに使用してください。

PL/SQL文では、字句参照を作成できません。ただし、PL/SQLでバインド参照を使用すると、次の例に示すように、SQLで字句的に参照されるパラメータ値を設定できます。

字句参照は、アンパサンド(&)の後に対象の列名またはパラメータ名を入力して作成します。デフォルトの定義では、字句参照を使用できません。そのため、次のことを実行する必要があります。

制限

例1: SELECT句
SELECT &P_ENAME NAME, &P_EMPNO ENO, &P_JOB ROLE
  FROM EMP;

P_ENAMEP_EMPNOおよびP_JOBを使用して、実行時に選択する列を変更できます。たとえば、P_EMPNOの値としてDEPTNOをランタイム・パラメータ・フォームで入力します。この場合、列に別名を使用してください。別名を使用しないと、実行時に選択する列を変更する場合に、SELECTリストの列名がReports Builderの列と一致しなくなり、レポートが実行されなくなります。

例2: FROM句
SELECT ORDID, TOTAL
  FROM &ATABLE;

ATABLEを使用して、実行時に選択する列を基に表を変更できます。たとえば、実行時にATABLEORDを入力します。この方法で表名を動的に変更するとき、列名が表によって異なる場合は、SELECT句にも字句参照を使用すると効果的です(前述の例を見てください)。

例3: WHERE句
SELECT ORDID, TOTAL
  FROM ORD
  WHERE &CUST;

CUSTを使用して、ORDから取得するデータを制限できます。実行時に、WHERE句を任意の形式で指定できます。

例4: GROUP BY句
SELECT NVL(COMMPLAN, DFLTCOMM) CPLAN, SUM(TOTAL) TOTAL
  FROM ORD
  GROUP BY &NEWCOMM;

NEWCOMMの値を使用して、GROUP BY句を定義できます。

例5: HAVING句
SELECT CUSTID, SUM(TOTAL) TOTAL
  FROM ORD
  GROUP BY CUSTID HAVING &MINTOTAL;

MINTOTALの値を使用して、最小発注量の顧客などを選択できます。

例6: ORDER BY句
SELECT ORDID, SHIPDATE, ORDERDATE, TOTAL
  FROM ORD
  ORDER BY &SORT;

SORTの値を使用して、ソート基準にSHIPDATEORDERDATEORDIDまたはこれらの任意の組合せを選択できます。また、問合せにCONNECT BY句やSTART WITH句などを追加するときにも使用できます。

例7: CONNECT BY句およびSTART WITH句

CONNECT BY句およびSTART WITH句でのパラメータの使用方法は、WHERE句およびHAVING句と同じです。

例8: 複数句
SELECT &COLSTABLE;

COLSTABLEを使用して、実行時にSELECT句とFROM句の両方を変更できます。たとえば、実行時にCOLSTABLEDNAME ENAME, LOC SAL FROM DEPTを入力できます。

SELECT * FROM EMP &WHEREORD;

WHEREORDを使用して、実行時にWHERE句とORDER BY句の両方を変更できます。たとえば、実行時に&WHEREORDWHERE SAL > 1000 ORDER BY DEPTNOを入力できます。

例9: PL/SQLとSQL 
SELECT &BREAK_COL C1, MAX(SAL)
  FROM EMP
  GROUP BY &BREAK_COL;

BREAK_COLを使用して、実行時にSELECTリストとGROUP BY句の両方を変更します。パラメータ&BREAK_COLの「初期値」はJOBです。実行時に、レポートのユーザーはGROUP_BY_COLUMN(データ型はCHARACTER)というパラメータに値を指定できます。

GROUP_BY_COLUMNの妥当性チェック・トリガーで、次のPL/SQLプロシージャをコールして、GROUP_BY_COLUMNの値を渡します。

procedure conv_param (in_var IN char) is
begin
  if upper(in_var) in ('DEPTNO','EMPNO','HIREDATE') then
    :break_col := 'to_char('||in_var||')' ;
  else
    :break_col := in_var;
  end if;
end;

このPL/SQLでは、必要に応じて、1つのTO_CHARがユーザーが選択したブレーク列の箇所に挿入されています。SQLでBREAK_COLへの字句参照を作成する方法に注意してください。PL/SQLでは、字句参照は許可されていないため、BREAK_COLへのバインド参照を作成する必要があります。

2.3.4.3 バインド参照と字句参照の相違点

バインド参照は、SQLまたはPL/SQLで1つの値を置換するときに使用します。特に、問合せのSELECTWHEREGROUP BYORDER BYHAVINGCONNECT BYSTART WITHの各句で式を置換するときに、バインド参照を使用すると効果的です。バインド参照はFROM句では参照できません。次に例を示します。

SELECT ORDID,TOTAL
  FROM ORD
  WHERE CUSTID = :CUST

字句参照は、実行時にパラメータで複数の値を代入するときに、SELECT文に埋め込むテキストのプレースホルダです。字句参照を使用すると、SELECTFROMWHEREGROUP BYORDER BYHAVINGCONNECT BYおよびSTART WITHの後の句を置換できます。PL/SQLでは、字句参照を作成できません。列または表の字句パラメータを参照する前に、そのパラメータを事前定義して、初期値を指定する必要があります。次に例を示します。

SELECT ORDID, TOTAL
  FROM &ATABLE

2.3.5 リンク不可能な問合せについて

リンク不可能な問合せとは、列間のリンクを介して、その問合せにリンクできない列オブジェクトを含む詳細な問合せのことです(列間にリンクを作成すると、Reports Builderによって問合せにWHERE句が追加されます)。このようなリンクを作成しようとすると、メッセージ・ダイアログ・ボックスが表示され、グループ対グループの問合せ(親グループを使用)を作成するか、または操作を取り消すかのいずれかを選択するように求められます。リンク不可能な問合せには、そのタイトル・バーにリンク不可能な問合せのアイコンが表示されます。

かわりに、2つの問合せの間に、グループ対グループのリンクを作成して(グループ対グループのリンクを作成しても、問合せにWHERE句は追加されません)、親列を参照するバインド変数を使用し、子問合せのSELECT文にWHERE句を追加できます。第3.8.9項「データ・リンクの作成」を参照してください。

たとえば、子問合せのADDRESS.STREET列と親問合せのLOC1列の間に、列対列のリンクを作成するとします。この場合、グループ対グループのリンクを作成して、子問合せのSQL文を次のように変更します。

SELECT * FROM EMP E WHERE E.ADDRESS.STREET = :LOC1
関連項目

第1.7.4項「データ・リンクについて」

第1.7.1項「問合せについて」

第2.3.4.1項「バインド参照について」

2.3.6 リンクとグループの比較について

Reports Builderでは、データはフォーマット(レイアウト)とは無関係に定義されます。そのため、どのようなときにデータ・リンクを使用するか(グループではなく)を理解しておく必要があります。

2つの問合せと1つのデータ・リンクを使用するマスター/ディテール・レポートのレイアウトと、1つの問合せと2つのグループを使用するグループ・レポートのレイアウトは同じになります。次の例は、同じデータを問い合せているデフォルトのマスター/ディテール・レポートとグループ・レポートです。2つのレポート間の相違点に注意してください。グループ・レポートとは異なり、マスター/ディテール・レポートには部門40が表示されています。これは、マスター/ディテール・レポートのデータ・リンクが外部結合になり、このリンクにより自動的に無関係なデータがフェッチされるためです。外部結合を必要とするグループ・レポートを設計する場合は、(+)を使用してSELECT文に明示的に外部結合を指定します。

図2-3    同じデータを問い合せているデフォルトのマスター/ディテール・レポートとグループ・レポート


画像の説明

次の図に示すマスター/ディテール/ディテール・レポートは、3つのデータ・グループを含むレポートです。マスター・グループごとに、2つの無関係なディテール・グループが表示されています。マスター/ディテール/ディテール・レポートまたはその応用レポートを作成するには、データ・リンクを使用する必要があります。1つの問合せと3つのグループを使用して、コントロール・ブレークを持つこのレポートを作成する場合は、その問合せにより2つのディテール・グループ間にリレーションシップが構築されます。

図2-4    マスター/ディテール/ディテール・レポート


画像の説明

関連項目

第1.7.2項「グループについて」

第1.7.4項「データ・リンクについて」

2.3.7 マトリックス・オブジェクトについて

マトリックス・オブジェクトは2つの繰返し枠の間にリレーションシップを定義するだけで、いずれかのオブジェクトに所有されているわけでも、マトリックス・オブジェクト自体がいずれかのオブジェクトを所有しているわけでもありません。マトリックス・オブジェクトは、「マトリックス」レイアウト・スタイルのレイアウトにのみ作成できます。データ・モデルに必要なグループが揃っていれば、レポートに複数のマトリックスを含めることができます。Reports Builderでは、垂直に交差する繰返し枠の各組合せに対して、1つのマトリックス・オブジェクトが作成されます。

繰返し枠はマトリックスのディメンションであり、マトリックス・オブジェクトにはセル・グループのフィラーまたは値を保持するフィールドが含まれます。マトリックスを形成するには、繰返し枠の1つの「印刷方向」プロパティが「縦」に設定され、他の繰返し枠の「印刷方向」プロパティが「横」に設定されている必要があります。


注意

マトリックス・オブジェクトが含まれているJSPベースのWebレポートを実行する場合、JSP <rw:include>タグは、そのマトリックス・オブジェクトが1ページのみにフォーマットされることを前提とします。ただし、交差した繰返し枠にあるセルが拡張されている場合、マトリックスの列のヘッダーは、ページのサイズに関係なく、次のページに移動する場合があります。したがって、これらのマトリックス・ヘッダーは、レポート出力に表示されません。さらにこの状況では、ヘッダー・フィールドは後続のページに移動しますが、セルの値は最初のページに残るので、ペーパー・レイアウトは正しく表示されません。これに対処するには、交差した繰返し枠で利用可能なスペースで最大値を表示できるようにし、交差した繰返し枠の「垂直拡張度」プロパティを「固定」に設定するよう、レポート・エディタで注意深く定義することが重要になります。 


制限

Group1という名前のグループにC_DEPTNOという列があるとします。C_DEPTNO列は、その値をデータベース列DEPTNOから取得します。Group2という名前のグループには列C_JOBと列C_DEPTNO1があります。列C_JOBの値はデータベース列JOBから取得し、列C_DEPTNO1はGroup1の問合せへのリンクに使用します。Group3というグループにはSUMSALという列があり、データベース列SALのサマリーになっています。

                    Job
          Analyst  Clerk  Manager

      10           $1300   $2450
Dept  20    $6000  $1900   $2975
      30           $ 950   $2850

この例では、次のようになります。

さらに複雑なマトリックスを構成する必要がある場合は、Group1とGroup2に列を追加します。たとえば、Group1に、部門番号を表す列以外に、部門の場所(LOC)を表す列を追加します。マトリックスは次のようになります。

                              Job
 Loc        Dept    Analyst  Clerk  Manager

 New York    10              $1300   $2450
 Dallas      20      $6000   $1900   $2975
 Chicago     30              $ 950   $2850
関連項目

第1.3.7項「マトリックス・レポートについて」

第2.1.7項「ネストしたマトリックス・レポートについて」

第2.1.8項「グループ別マトリックス・レポートについて」

第3.9.1.3項「マトリックス・オブジェクトの作成」

第3.8.8項「マトリックス(クロス積)グループの作成」

第3.5.3項「ネストしたマトリックス・レポートの作成」

2.4 レイアウト・オブジェクト

この項のトピックは、第1.8項「レイアウト・オブジェクト」で説明した基本的な概念に基づいています。

2.4.1 レイアウト・オブジェクトについて

レイアウト・オブジェクトの概念と適用されるプロパティには、重要なものがいくつかあります。

関連項目

第3.5.4項「レポートのデフォルト・レイアウトの作成」

第3.10.2項「セクションのデフォルト・レイアウトの作成」

第2.6.13.2項「フォーマット・トリガーについて」

Oracle Reportsオンライン・ヘルプの「プロパティ」の項

2.4.2 レイアウトのデフォルトについて

レポート・ウィザードでデフォルトのレイアウト・スタイルの1つを選択すると、レポートのデータ・モデルに基づいて、Reports Builderによって必要なレイアウト・オブジェクトが作成されます。たとえば、メール・ラベル・レポートを作成する場合、適切なデータ・モデルが定義されていれば、単にメール・ラベルのデフォルト・スタイルを選択します。Reports Builderによって、レポートのレイアウト・オブジェクトが自動的に作成され、レイアウト・モデル・ビューに表示されます。作成したデフォルトのレイアウトは、必要に応じてカスタマイズできます。Reports Builderによって生成された各レイアウト・オブジェクトは、切取り、コピー、貼付け、サイズ変更および編集を行うことができます。

レイアウトのデフォルトには、次のルールが適用されます。

Reports Builderでは、次のルールに従って、レポート・レイアウトがデフォルト設定されます。

  1. 明記されていないかぎり、「印刷方向」が「横」のグループのデフォルトは、「印刷方向」が「縦」のグループのデフォルトと同じになります。ただし、そのデフォルト・フォーマットが変更されている場合は別です。「横」のグループのデフォルトを迅速に設定するには、次の操作を行います。

    • 半透明のペーパーにグループ用の縦レイアウトを描画します。

    • 本のページのようにそのページをめくります。

    • ページを逆時計回りで90度回転させます。

  2. フォーム・レター・レポートでは、すべてのデフォルト・フィールドが非表示で、その「水平拡張度」プロパティは「可変」に、「垂直拡張度」プロパティは「固定」に設定されています。他のすべてのレポートでは、すべてのデフォルト・フィールドの「水平拡張度」プロパティと「垂直拡張度」プロパティが「固定」に設定されています。

    例外:表形式レポート、フォーム形式レポート、グループ左レポート、グループ上レポートおよびマトリックス・レポートでは、CHARフィールド(デフォルト幅を狭くした場合)およびLONGフィールドはデフォルトで、「水平拡張度」プロパティが「固定」に「垂直拡張度」プロパティが「可変」に設定されています。その結果、データの語が次の行に折り返され、すべてのフィールド値が切り捨てられることなく表示されます。


    注意

    フォーム・レター・レポートおよびメール・ラベル・レポートでは、CHARフィールド(デフォルト幅を狭くした場合)およびLONGフィールドはデフォルトで、「水平拡張度」および「垂直拡張度」プロパティが「固定」に設定されています。その結果、データのサイズがフィールドのサイズを超える場合、フィールド値は切り捨てられます。 


  3. グループではなくレポートによって所有されるサマリーは、すべてのレポート・レイアウト・スタイルで許可されます。サマリーは、すべて次のようにフォーマットされます。

    • レイアウト・スタイルがフォーム形式、フォーム・レターまたはメール・ラベルの場合、サマリーはレポート列です。レポート列は、そのレポート・スタイルの他のデータベース列と同じようにフォーマットされます。

    • レイアウト・スタイルが表形式、グループ左、グループ上またはマトリックスで、サマリーによって関数を実行する対象の列が選択されていない場合、サマリーはレポート列です(前述の説明と同じようにフォーマットされます)。それ以外の場合、サマリーはレポート・サマリーです。レポート・サマリーはレポートの最後に左揃えでフォーマットされ、フィールドの左にラベルが表示されます(余白がある場合)。

  4. レイアウト・スタイルが表形式、グループ左、グループ上またはマトリックスで、サマリーを計算する対象の列が選択されていない場合、サマリーはデータベース列のようにデフォルト設定されます。それ以外の場合、サマリーは通常のサマリーのようにデフォルト設定されます(つまり、M_groupname_FTR枠内に表示されます)。

  5. レイアウト・スタイルが表形式、グループ左、グループ上またはマトリックスの場合、Reports Builderによって、各行に1つのサマリー・タイプが次の順序で挿入されます。

    • 合計

    • 平均

    • 最小値

    • 最大値

    • カウント

    • 最初

    • 最後

    • 割合(%)

    • 標準偏差

    • 分散

  6. レイアウト・スタイルが表形式、グループ左、グループ上またはマトリックスの場合、サマリー・ラベルはグループ・フッター枠(M_groupname_FTR)の一番左に表示されます。ラベル全体を表示する場所がない場合、ラベルは切り捨てられます。

関連項目

第3.5.4項「レポートのデフォルト・レイアウトの作成」

第3.10.2項「セクションのデフォルト・レイアウトの作成」

2.4.3 イメージについて

次の方法で、イメージをレポートに追加できます。

1つ目の方法(イメージ・インポート」ダイアログ・ボックスを使用)では、TIFF、JFIF、BMP、TGA、PCX、PICT、GIF、CALS、RAS、OIF、PCDのフォーマットのイメージを含めることができます。

その他の2つの方法(ファイル・リンク・オブジェクトを作成し、データベースで列を選択)では、Oracle Reportsでサポートされているその他のフォーマット(JPEG(Progressive JPEGやExif JPEGなどのすべてのタイプ)、PNG、BMP、TIFF、GIFおよびCGM)を含めることができます。

プレビューアのみでなく印刷レポートにもイメージが表示されるように、デフォルトでイメージはフィールドに表示されます。

REPORTS_OUTPUTIMAGEFORMAT環境変数およびOUTPUTIMAGEFORMATコマンドライン・キーワードにより、イメージングのサポートが強化されています。イメージングのサポートが強化されたことにより、複雑なグラフィックを多用するレポートを、より忠実にイメージを出力しながら生成できるようになりました。UNIXの場合はさらに、イメージを表示する際のウィンドウ・システムへの依存性が排除されています。PostScriptプリンタ・ドライバscreenprinter.ppdにより、イメージの画面解像度が決定されます。

非キャッシュ参照を使用することで、ローカルのディスク領域を使い切ることなく、イメージ・オブジェクトを無制限に含めることができます。非キャッシュ参照では、オブジェクトがレポート処理に必要なときのみデータベースから読み込まれます。

HTML出力用にレポートをフォーマットしていれば、イメージのURLを参照したときにイメージが表示されます。他の出力フォーマットでは、URLテキストがペーパー・デザイン・ビューに表示され、出力先(ファイルやPDFドキュメントなど)には何も表示されません。ユーザーは、URLが実際に有効かどうかを確認する必要があります。Reports Builderでは、リソースの有無やプロトコル構文の妥当性はチェックされません。URLを含むオブジェクトのサイズは、HTML出力でのイメージのサイズを定義します。オブジェクトに適用される拡張度のプロパティは、すべて無視されます。

制限

2.4.4 アンカーについて

アンカーは、オブジェクトの境界線の間を結び付けることで、オブジェクト間の相対的な位置を確定します。たとえば、可変サイズの繰返し枠の境界線にボイラープレート・テキストをアンカーすると、繰返し枠のサイズを変更しても、ボイラープレートと繰返し枠間の距離と位置関係は保持されます。

アンカーは、親オブジェクトに対する子オブジェクトの上下左右の相対的な位置関係を決定します。子オブジェクトは、親オブジェクトの内外どちらにも配置できます。

一部のレイアウト・オブジェクトのサイズは、レポートが実行されデータがフェッチされるときに変更されるため、アンカーを使用してオブジェクト間の相対的な位置関係を定義する必要があります。アンカーは、アンカー先のオブジェクトに対する子オブジェクトの相対的な位置を定義します。オブジェクトの位置は、データがフェッチされた後の両オブジェクトのサイズに基づいて決定され、エディタでのサイズには依存しません。また、ペーパー・レイアウト・ビューでのオブジェクトの位置がレポート出力での最終的な位置に反映されることに注意してください。レイアウト内の物理的なオフセットは、すべて「アンカー」プロパティのパーセントによる指定位置に組み込まれます。

アンカーには2種類あります。

アンカーによる相対的な位置指定

子オブジェクトを親オブジェクトにアンカーするときは、アンカーの連結点になるX座標とY座標が重要です。

親オブジェクトが子オブジェクトの上または下にある場合:

親オブジェクトが子オブジェクトの右または左にある場合:

繰返し枠または枠の外にオブジェクトを配置する必要がありながら、繰返し枠または枠をオブジェクトの所有者にする場合は(つまり、その所有者のフォーマット時にフォーマットするために)、繰返し枠または枠の中でオブジェクトに連結するアンカーを作成します。

アンカーの縮小

作成したアンカーを縮小できます。アンカーの縮小によって、レポート内での不要な余白を回避できます。こうした余白は、親と子が同じページに出力されなかったり、設定されている「印刷条件」が原因で、親オブジェクトが子オブジェクトと同じページに入らない場合に生じる可能性があります。アンカーを縮小すると、出力時に、親オブジェクトのある場所に子オブジェクトを移動できます。子オブジェクトの相対位置は、アンカーで定義したとおりに保持されます。

2.4.4.1 暗黙的なアンカーのアルゴリズム

Reports Builderでは、実行時に暗黙的なアンカーが本体領域に作成されます。本体とマージンでは、そのアルゴリズムが少し異なります。

本体でのアルゴリズム

  1. 繰返し枠または枠に完全に囲まれていない(直接または間接的に)オブジェクト、あるいは繰返し枠または枠に囲まれている(直接または間接的に)オブジェクトに明示的にアンカーされているオブジェクトを判別します。以降、これらのオブジェクトをタイプAオブジェクトと呼びます(タイプAオブジェクトは一般的に、グループ枠、繰返し枠、作成したオブジェクトで枠または繰返し枠に所有されていない他のオブジェクトなどです)。オブジェクトは、次のすべてが該当する場合にかぎり、別のオブジェクトに囲まれていると判別されます。

    • 両方のオブジェクトが同じ領域(本体またはマージン)に属する。

    • 2つのオブジェクトの外側の方が枠または繰返し枠である。

    • 2つのオブジェクトの外側の方が内側のオブジェクトの背後にある。

    • 2つのオブジェクトの内側の方が外側のオブジェクトの境界線の中に完全に収まっている。

  2. 枠または繰返し枠のすべての子オブジェクトを判別します(これらは非タイプAオブジェクトです)。以降、これらのオブジェクトをタイプBオブジェクトと呼びます。

  3. タイプAオブジェクトとタイプBオブジェクトで別々に次の手順を実行します。

    • 同じタイプ(たとえば、タイプA)に属し、同じレイヤー上にあるすべてのオブジェクトを見つけます。

    • それらのオブジェクトの中で、同じタイプのオブジェクトを「プッシュ」する可能性のあるものを判別します。オブジェクトは、その「水平拡張度」または「垂直拡張度」が「可変」または「拡張」に設定されており、2番目のオブジェクトがそのプッシュ・パス(最初のオブジェクトが拡張する可能性のある領域)にある場合に、同じタイプのオブジェクトをプッシュする可能性があります。また、「水平拡張度」または「垂直拡張度」が「固定」または「縮小」に設定されている繰返し枠にも、その「印刷方向」というプッシュ・パスがあります。

    • オブジェクトの組合せを作成します。各組合せは、プッシュする側(拡張するオブジェクト)とプッシュされる側(プッシュされるオブジェクト)で構成する必要があります。これらの組合せを作成するとき、プッシュされる側のオブジェクトを明示的なアンカーの子オブジェクトにはできません。このようなオブジェクトは無視されます。

    • 次に説明するループを実行します。組合せごとに、プッシュする側とプッシュされる側の間のプッシュ・パスの距離を測定します。次に、最も距離の短い組合せを見つけます。最後に、次のアルゴリズムを使用して、2つのオブジェクト間に暗黙的なアンカーを作成します。

      プッシュ・パスの方向が「縦」の場合は、プッシュされる側のオブジェクトの上0%をプッシュする側のオブジェクトの下0%にアンカーします。

      プッシュ・パスの方向が「横」の場合は、プッシュされる側のオブジェクトの左0%をプッシュする側のオブジェクトの右0%にアンカーします。

    • この時点で、この組合せは1つのオブジェクトとして扱われます。このループを、すべてのオブジェクトが1つのアンカーを持つか、アンカーされていない残りのオブジェクトをプッシュするものがなくなるまで繰り返します。

    • アンカーされていない残りの各オブジェクトには、オブジェクトの左上隅から本体領域の左上隅に暗黙的なアンカーを作成します。

    • 次のレイヤーに移り、手順1から再度実行します。

ルール:

ケース1では、M_SumsがB_Text1とR_Enameの両方のプッシュ・パスにあります。M_SumsはB_Text1とR_Enameから等距離にあるため、このケースでは、暗黙的なアンカーを決定する通常の基準(最も短い距離)を適用できません。その結果、このアルゴリズムでは、実行時に、暗黙的なアンカーがM_SumsとB_Text1の間またはM_SumsとR_Enameとの間にランダムに作成されます。この動作を回避するには、M_SumsとB_Text1またはR_Enameの間に、明示的なアンカーを作成します。

ケース2では、B_Text3がM_Empのプッシュ・パスにあります。M_EmpとR_Mgrの下境界線は実質的に同じ位置にあるため、B_Text3はM_EmpまたはR_Mgrのどちらかに暗黙的にアンカーされる可能性があります。その結果、このアルゴリズムでは、実行時に、暗黙的なアンカーがB_Text3とM_Empの間またはB_Text3とR_Mgrとの間にランダムに作成されます。この動作を回避するには、B_Text3からどちらかのオブジェクトに明示的なアンカーを作成するか、R_EnameとB_Text2の間の明示的なアンカーを削除します。明示的なアンカーを削除するとR_MgrはM_Empの子孫として扱われ、その結果、暗黙的なアンカーはB_Text3とM_Empの間にのみ作成されるようになります。

(ケース2が生じる可能性が最も高いのはキャラクタ・モードです。キャラクタ・モードでは、オブジェクトの境界線がペーパー・レイアウト・ビューでオーバーラップすることがよくあります。)

マージンでのアルゴリズム

Reports Builderでは、マージン領域のすべてのタイプBオブジェクトに対して、本体と同じアルゴリズムを使用して暗黙的なアンカーが作成されます。ただし、タイプAオブジェクトには、オブジェクトの左上隅からマージンの左上隅に暗黙的なアンカーが作成されます。タイプAオブジェクトが他のタイプAオブジェクトに暗黙的にアンカーされることはありません(これにより、タイプAオブジェクトはページから絶対にプッシュされなくなります。ただし、同じレイヤーに他のタイプAオブジェクトがある場合は、それによって上書きされる場合があります)。

関連項目

第3.9.5.1項「アンカー・オブジェクトによる連動」

第3.9.5.2項「暗黙的なアンカーの表示」

第3.9.5.3項「アンカーの移動」

2.4.5 カラーとパターンの変更について

選択したカラーとパターンは、オブジェクト全体に適用されます(オブジェクト内の全テキストに1つのカラーを適用することはできますが、テキストのセグメントごとには適用できません)。

レポート内のカラーとパターンは、次の方法で変更できます。

さらに、カラー・パレットの環境設定を設定して、レポートでの使用方法を指定できます(第3.2.6項「カラー・パレットの環境設定の設定」を参照)。また、カラー・パレットを変更することで、パレットのカラー定義を変更できます(第3.9.6.5項「カラー・パレットの変更」を参照)。

現行のレポートで使用しているカラー・パレットを変更するには、新しいカラー・パレットをインポートします。また、現行のカラー・パレットを他のレポートで使用するためにエクスポートすることもできます(第3.9.6.6項「カラー・パレットのインポートまたはエクスポート」を参照)。

関連項目

第3.9.6.2項「カラーの変更」

第3.9.6.3項「パターンの変更」

第3.9.6.4項「PL/SQLを使用したカラーおよびパターンの変更」

第3.9.4.2項「オブジェクトの境界線属性の変更」

Oracle Reportsオンライン・ヘルプの「リファレンス」→「カラー・パレットとパターン・パレット」の項のトピック「Oracle CDE1カラー・パレット」、「デフォルト・カラー・パレット」、「グレースケール・カラー・パレット」および「パターン・パレット」

Oracle Reportsオンライン・ヘルプの「リファレンス」→「PL/SQLリファレンス」→「ビルトイン・パッケージ」の項のトピック「SRWのビルトイン・パッケージ」

Oracle Reportsオンライン・ヘルプの「プロパティ」の項のトピック「テンプレート・プロパティ」

2.4.6 オブジェクトのサイズ変更について

問合せ、グループ、枠、繰返し枠、フィールド、マトリックス・オブジェクトおよびボイラープレート・オブジェクトのサイズを変更できます。アンカーのサイズは変更できません。ただし、アンカーされたオブジェクトの一方を移動した場合、アンカーのサイズは自動的に変更されます。


注意

ボイラープレート・テキストのサイズを変更するときは、すべてのテキストがオブジェクト内に収まるように注意が必要です。並び線よりも下のフォント部分(gやqなどの文字の下側に延びた領域)が収まらない場合、テキスト行はレポート・エディタのビューには表示されますが、レポート実行時の出力には表示されません。ハンドルをクリックしてドラッグすると、角で連結している縦横方向の2つの境界線によりサイズが変更されます。つまり、オブジェクトはX座標とY座標の両方向に拡張または縮小されます。 


関連項目

第3.9.12.1項「オブジェクトのサイズ変更」

第3.9.12.2項「複数オブジェクトの同一サイズ化」

第3.9.11.3項「親の境界線の自動調整」

2.4.7 ペーパー・レイアウト・ビューでのオブジェクトの移動とレイヤーについて

ペーパー・レイアウト・ビューでは、オブジェクトはそれを囲むオブジェクトより上のレイヤーにある必要があります。たとえば、繰返し枠に属するフィールドであれば、ペーパー・レイアウト・ビューでは、繰返し枠より少なくとも1つ上のレイヤー上にする必要があります。そうしないと、フィールドが繰返し枠に囲まれていると判別されなくなり、実行時に頻繁にエラーが発生します。ペーパー・レイアウト・ビューでオブジェクトを移動またはグループ化するときは、そのレイヤーが変更される場合があり、それによってレポートの実行時に頻繁にエラーが発生します。この問題を回避するには、ペーパー・レイアウト・ビューでのオブジェクトの移動時に、制限モードまたはフレックス・モードを使用する必要があります。

関連項目

第3.9.4.3項「現行のモード(制限またはフレックス)の変更」

第3.9.11.7項「オブジェクトのレイヤーの変更」

第3.9.11.2項「オブジェクトの親の外への移動」

第3.9.11.1項「複数オブジェクトの移動」

第3.9.11.6項「オブジェクトの整列」

2.5 パラメータ・フォーム・オブジェクト

この項のトピックは、第1.9項「パラメータ・フォーム・オブジェクト」で説明した基本的な概念に基づいています。

2.5.1 パラメータ・フォームのHTML拡張について

パラメータ・フォームをHTML拡張すると、Webでのペーパー・レポートの実行時に、ランタイム・パラメータ・フォームをHTMLタグ付きテキストとJavaScriptで拡張できます。ペーパー・パラメータ・フォームをWebでの表示用に拡張する場合、次のことが実行できます。

オブジェクト・ナビゲータから、または「ツール」→「パラメータ・フォーム・ビルダー」を選択して、「パラメータ・フォーム・ビルダー」にアクセスできます。

関連項目

第1.2.2項「Webレポートについて」

第1.9.4項「Webレポートのパラメータ・フォームについて」

第2.2.3項「HTML出力のWebリンクについて」

2.6 PL/SQL

この項の各トピックでは、Reports BuilderにおけるPL/SQLの使用について説明します。

2.6.1 PL/SQLエディタについて

PL/SQLエディタを使用すると、PL/SQLプログラム・ユニットを作成し、編集できます。

使用に関する注意

プログラム・ユニットを変更すると、依存するプログラム・ユニットのコンパイル済のステータスが失われ、オブジェクト・ナビゲータの「プログラム・ユニット」ノードの下にある名前の後にアスタリスク(*)が表示されます。「名前」リストを使用して、PL/SQLエディタで直接これらのプログラム・ユニットにナビゲートし、再コンパイルできます。

制限
関連項目

第3.13.2.3.1項「PL/SQLエディタの編集機能」

2.6.2 ストアドPL/SQLエディタについて

ストアドPL/SQLエディタを使用すると、データベースでストアドPL/SQLプログラム・ユニットを作成し、編集できます(データベースは、オブジェクト・ナビゲータの「データベース・オブジェクト」ノードの下に表示されます)。

関連項目

第3.13.3.2項「ストアド・プログラム・ユニットの作成」

2.6.3 構文パレットについて

構文パレットは、PL/SQLの言語要素やビルトイン・パッケージの構成メンバーを、PL/SQLエディタやストアドPL/SQLエディタに表示して、コピーできるようにするプログラミング・ツールです。

関連項目

第3.13.2.4項「PL/SQLエディタへの構文の挿入」

2.6.4 プログラム・ユニットについて

プログラム・ユニットは、現行のレポート内でPL/SQLから参照できるパッケージ、ファンクションまたはプロシージャです。


注意

プログラム・ユニットは、他のレポートから参照できません。複数のレポートから参照できるパッケージ、ファンクションまたはプロシージャを作成する場合は、外部PL/SQLライブラリを作成します(第3.13.5.1項「外部PL/SQLライブラリの作成」を参照)。 


レポートでのPL/SQLの使用に関する詳細な例は、第39章「PL/SQLを含むレポートの作成」を参照してください。

制限

例: 式におけるPL/SQLファンクションの参照

次のようなグループと列を含むレポートがあるとします。

Groups    Columns         Summary
-----------------------------------------
RGN       REGION
          RGNSUMSAL       SUM(DEPTSUMSAL)
          COSTOFLIVING
  
DEPT      DNAME
          DEPTNO
          DEPTSUMSAL      SUM(EMP.SAL)
  
JOB       JOB
          HEADCOUNT       COUNT(EMP.EMPNO)
  
EMP       ENAME
          EMPNO
          SAL
          COMM

これらのグループや列で、給与に生計費手当(COSTOFLIVING)を適用する複数の式を作成します。作業が重複しないように、次のようなPL/SQLファンクションを作成して式から参照することができます。

function CompSal(salary number) return number is
begin
  return (salary*CostofLiving);
end;

次の2つは、このPL/SQLファンクションを式で参照する例です。

CompSal(:RGNSUMSAL)

or

CompSal(:SAL) + COMM
関連項目

第3.13.3.1項「ローカル・プログラム・ユニットの作成」

2.6.5 ストアド・プログラム・ユニットについて

ストアド・プログラム・ユニット(ストアド・サブプログラムやストアド・プロシージャとも呼ばれます)は、個々にコンパイルし、いつでも実行できるようにOracleデータベースに永続的に格納しておくことができます。ストアド・プログラム・ユニットをコンパイルしてデータ・ディクショナリに格納すると、スキーマ・オブジェクトとなり、そのデータベースに接続されたどのアプリケーションからでも参照できます。

ストアド・プログラム・ユニットを使用すると、生産性、パフォーマンス、アプリケーションの整合性およびセキュリティが向上し、メモリーも節約できます。たとえば、ストアド・プロシージャやストアド・ファンクションのライブラリを使用してアプリケーションを設計すると、冗長なコーディングがなくなり、生産性を向上できます。

ストアド・プログラム・ユニットは、解析およびコンパイルされた形式で格納されます。そのため、ストアド・プログラム・ユニットがコールされると、ロード後すぐにPL/SQLエンジンに渡されます。また、ストアド・プログラム・ユニットには共有メモリーが使用されます。そのため、プログラム・ユニットのコピーを1つのみメモリーにロードしておけば、複数のユーザーがそのプログラムを実行できます。

ストアド・プログラム・ユニットはOracleデータベースで実行されるので、レポートのローカルのPL/SQLよりも速くデータベース処理を実行できます。そのため、データベース処理を実行するPL/SQLには、通常ストアド・プログラム・ユニットを使用します。データベース処理を実行しないPL/SQLの場合は、ローカル・プログラム・ユニットを使用します。ただし、ネットワークの負荷が高く、レスポンス時間が非常に遅い場合には、ストアド・プログラム・ユニットを使用しても、データベース処理が速くならないことがあります。同様に、サーバーがローカル・マシンよりも非常に速い場合、ローカル・プログラム・ユニットを使用しても、データベース以外の処理が速くならないことがあります。

関連項目

第3.13.3.2項「ストアド・プログラム・ユニットの作成」

2.6.6 外部PL/SQLライブラリについて

外部PL/SQLライブラリは、レポート定義に依存しないPL/SQLプロシージャ、ファンクションおよびパッケージの集まりです。外部ライブラリをレポートに連結すると、その内容を何度でも参照できます。たとえば、連結ライブラリのプロシージャは、Before Reportトリガーとフォーマット・トリガーのどちらからでも参照できます。このため、アプリケーションごとに同じPL/SQLを再入力する必要がありません。

レポートまたは別の外部ライブラリに関連付けられた外部PL/SQLライブラリは、連結ライブラリと呼ばれます。

関連項目

第3.13.5.1項「外部PL/SQLライブラリの作成」

2.6.7 連結ライブラリについて

連結ライブラリは、レポートまたは別の外部ライブラリに関連付けられた外部PL/SQLライブラリです。外部ライブラリを連結すると、レポート内からそのパッケージ、ファンクションおよびプロシージャを参照できます。たとえば、MYLIBという外部ライブラリをレポートに連結し、そのライブラリにADDXYというファンクションが含まれる場合、レポート内のどのPL/SQLからでもADDXYを参照できます。

外部PL/SQLライブラリは、レポート定義に依存しません。

使用に関する注意

ローカルPL/SQLは、外部PL/SQLライブラリのプロシージャまたはファンクションを参照するよりも速く実行されます。そのため、多数のアプリケーション間でコードを共有する方が、パフォーマンスのオーバーヘッドよりも重要である場合にのみ、外部PL/SQLライブラリを使用してください。

制限
関連項目

第3.13.5.5項「PL/SQLライブラリの連結」

2.6.8 式について

式は、式列またはプレースホルダ列に移入するPL/SQLファンクションです。式のPL/SQLには、オブジェクト・ナビゲータ、PL/SQLエディタまたはプロパティ・インスペクタ(「PL/SQL式」プロパティ)からアクセスできます。

「データ型」プロパティがNUMBERに設定されている列は、データ型NUMBERの値を返す式のみを含めることができます。「データ型」プロパティがDATEに設定されている列は、データ型DATEの値を返す式のみを含めることができます。「データ型」プロパティがCHARACTERに設定されている列は、データ型CHARACTERVARCHARまたはVARCHAR2の値を返す式のみを含めることができます。

制限

例1: 値の追加

次の例では、給与にコミッションを足した値を列に移入します。

function salcomm return NUMBER is
begin
  return(:sal + :comm);
end;
例2: 条件の使用

次のコードでは、コミッションの値がNULL以外の場合に、給与にコミッションを足します。

function calcomm return NUMBER is
temp number;
begin
  if :comm IS NOT NULL then
    temp := :sal + :comm;
  else
    temp := :sal;
  end if;
  return (temp);
end;
関連項目

第2.3.2項「式列について」

第3.13.4.3項「式列の作成または編集」

第3.13.4.4項「プレースホルダ列の作成」

2.6.9 グループ・フィルタについて

グループ・フィルタは、グループに含めるレコードを決定します。パッケージされたフィルタの「最初」と「最後」を使用して、グループの最初のn個または最後のn個のレコードを表示できます。また、PL/SQLを使用して独自のフィルタを作成することもできます。グループ・フィルタには、オブジェクト・ナビゲータ、プロパティ・インスペクタ(「PL/SQLフィルタ」プロパティ)、またはPL/SQLエディタからアクセスできます。

このファンクションは、ブール値(TRUEまたはFALSE)を返す必要があります。ファンクションがTRUEを返すか、FALSEを返すかに応じて、現行レコードがレポートに含まれるか、レポートから除外されます。

グループ・フィルタと「フェッチする行の最大数」プロパティの相違点

「フェッチする行の最大数」プロパティでは、問合せによってフェッチする実際のレコード数が制限されます。グループ・フィルタでは、問合せによってすべてのレコードがフェッチされた後に、どのレコードを含めるか、または除外するかが判断されます。「フェッチする行の最大数」では、実際に取り出されるデータの量が制限されるため、通常、グループ・フィルタよりも実行速度が速くなります。「フィルタ・タイプ」プロパティを「最後」または「条件付」に設定する場合、Reports Builderでは、フィルタを適用する前に、グループ内のすべてのレコードを取り出す必要があります。問合せに対して「フェッチする行の最大数」を使用する場合も、このことを念頭に置いてください。その問合せに依存する他のグループのサマリーに影響を及ぼす可能性があります。たとえば、「フェッチする行の最大数」プロパティを8に設定すると、その問合せに基づいたサマリーには、取り出された8つのレコードのみ使用されます。

制限

function filter_comm return boolean is
begin
  if :comm IS NOT NULL then
    if :comm < 100 then
      return (FALSE);
    else
      return (TRUE);
    end if;
  else
    return (FALSE); -- for rows with NULL commissions
  end if;
end;
関連項目

第3.13.4.2項「グループ・フィルタの作成または編集」

2.6.10 REFカーソル問合せについて

REFカーソル問合せは、PL/SQLを使用してデータをフェッチします。各REFカーソル問合せは、カーソル変数からカーソル値を返すPL/SQLファンクションに関連付けられています。このファンクションでは、REFカーソルがオープンされ、REFカーソル型と一致するSELECTリストが含まれたSELECT文と関連付けられている必要があります。

使用に関する注意

さらに、REFカーソルの実装にストアド・プログラム・ユニットを使用する場合は、Oracleデータベースにそのプログラム・ユニットを同時に格納できるという利点があります。

REFカーソルとストアド・サブプログラムの詳細は、『PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。

例1: REFカーソルが含まれるパッケージの例
/* This package spec defines a REF CURSOR
** type that could be referenced from a
** REF CURSOR query function.
** If creating this spec as a stored
** procedure in a tool such as SQL*Plus,
** you would need to use the CREATE
** PACKAGE command.
*/

PACKAGE cv IS
type comp_rec is RECORD
  (deptno number,
   ename varchar(10),
   compensation number);
type comp_cv is REF CURSOR return comp_rec;
END;
例2: REFカーソルとファンクションが含まれるパッケージ
/* This package spec and body define a ref
** cursor type as well as a function that
** uses the REF CURSOR to return data.
** The function could be referenced from
** the REF CURSOR query, which would
** greatly simplify the PL/SQL in the
** query itself. If creating this spec
** and body as a stored procedure in a
** tool such as SQL*Plus, you would need
** to use the CREATE PACKAGE and CREATE
** PACKAGE BODY commands.
*/

PACKAGE cv IS
type comp_rec is RECORD
  (deptno number,
   ename varchar(10),
   compensation number);
type comp_cv is REF CURSOR return comp_rec;
function emprefc(deptno1 number) return comp_cv;
END;

PACKAGE BODY cv IS
function emprefc(deptno1 number) return comp_cv is
  temp_cv cv.comp_cv;
begin
  if deptno1 > 20 then
    open temp_cv for select deptno, ename,
    1.25*(sal+nvl(comm,0)) compensation
    from emp where deptno = deptno1;
  else
    open temp_cv for select deptno, ename,
    1.15*(sal+nvl(comm,0)) compensation
    from emp where deptno = deptno1;
  end if;
  return temp_cv;
end;
END;
例3: REFカーソル問合せ
/* This REF CURSOR query function would be coded
** in the query itself. It uses the cv.comp_cv
** REF CURSOR from the cv package to return
** data for the query.
*/
function DS_3RefCurDS return cv.comp_cv is
  temp_cv cv.comp_cv;
begin
  if :deptno > 20 then
    open temp_cv for select deptno, ename,
    1.25*(sal+nvl(comm,0)) compensation
    from emp where deptno = :deptno;
  else
   open temp_cv for select deptno, ename,
   1.15*(sal+nvl(comm,0)) compensation
   from emp where deptno = :deptno;
  end if;
  return temp_cv;
end;
例4: REFカーソル問合せコール側ファンクション
/* This REF CURSOR query function would be coded
** in the query itself. It uses the cv.comp_cv
** REF CURSOR and the cv.emprefc function from
** the cv package to return data for the query.
** Because it uses the function from the cv
** package, the logic for the query resides
** mainly within the package. Query
** administration/maintenance can be
** done at the package level (for example,
** modifying SELECT clauses could be done
** by updating the package). You could also
** easily move the package to the database.
** Note this example assumes you have defined
** a user parameter named deptno.
*/

function DS_3RefCurDS return cv.comp_cv is
  temp_cv cv.comp_cv;
begin
  temp_cv := cv.emprefc(:deptno);
  return temp_cv;
end;
関連項目

第3.8.1.9項「問合せの作成: REFカーソル問合せツール」

2.6.11 DMLとDDLについて

PL/SQLでデータ操作言語(DML)またはデータ定義言語(DDL)を使用する場合は、SRW.DO_SQLビルトイン・プロシージャを使用できます。SRW.DO_SQLは、DMLおよびDDLでのみ使用し、データのフェッチには使用しないでください。DMLおよびDDLの詳細は、『Oracle Database SQLリファレンス』を参照してください。

Oracle Reportsの処理モデルにより、DDLはBefore Parameter FormトリガーおよびAfter Parameter Formトリガーのみで使用することをお薦めします。DMLは、PL/SQLが受け入れられる場所ならどこにでも入力できます。

このレポートの処理で報告されるDMLまたはDDLは、After Parameter Formトリガーで(またはその前で)実行する必要があります。Before Reportトリガーでは整合性は保証できません。これは、Oracle Reportsが、レポートの定義に基づいて、そのトリガーの前にデータ・カーソルでの作業を開始する必要があるためです。Before Reportトリガーの前にReports Builderで必ず行われることは、関連する表を記述し、カーソルを開くことです。これ以降に表で行った変更は、レポートに表示されません。

関連項目

第2.6.13.1項「レポート・トリガーについて」

2.6.12 ビルトイン・パッケージについて

ビルトイン・パッケージは、論理的に関連するPL/SQL型、オブジェクト、ファンクションやプロシージャの集まりです。これは通常、パッケージ仕様部(データ宣言を含む)とパッケージ本体という2つの部分で構成されます。パッケージを使用すると、グローバル変数を作成できるので非常に便利です。

複数のパッケージ・プロシージャが用意されており、PL/SQLベースのアプリケーションを構築またはデバッグするときに使用できます。PL/SQLコードでは、次に説明するように、Reports Builderビルトイン・パッケージ(SRW)と各種のツール・ビルトイン・パッケージのプロシージャ、ファンクションおよび例外を使用できます。

2.6.12.1 Reports Builderビルトイン・パッケージ(SRW)について

Reports Builderには、ビルトイン・パッケージ(SRW)が付属しています。ビルトイン・パッケージは、様々なファンクション、プロシージャおよび例外が含まれたPL/SQL構文の集まりで、ライブラリまたはレポートで参照できます。

SRWパッケージに含まれるPL/SQLでは、フィールドの書式設定の変更、他のレポートからのレポートの実行、レポート・エラー時に表示するカスタマイズ・メッセージの作成、およびSQL文の実行などのアクションを実行できます。

SRWパッケージの内容は、連結されていないくても、ライブラリまたはレポートから参照できます。ただし、SQL*Plusなどの別の製品からこの内容を参照することはできません。

パッケージに含まれる構文は通常、パッケージ・ファンクション、パッケージ・プロシージャおよびパッケージ例外のように「パッケージ」を付けて呼びます。

関連項目

Oracle Reportsオンライン・ヘルプの「リファレンス」の項のトピック「SRWのビルトイン・パッケージ」

2.6.12.2 ツール・ビルトイン・パッケージについて

各種のPL/SQL構文を含むいくつかのクライアント側ビルトイン・パッケージが用意されており、アプリケーションの構築やアプリケーション・コードのデバッグ時に参照できます。これらのビルトイン・パッケージは、パッケージSTANDARDの拡張機能としてインストールされません。このため、いずれかのパッケージの構文を参照するたびに、その名前の前にパッケージ名を付ける必要があります(TEXT_IO.PUT_LINEなど)。

次のようなツール・ビルトイン・パッケージがあります。

次のパッケージは、Oracle Reportsの内部でのみ使用されます。これらのパッケージには、外部で使用できるサブプログラムはありません。

関連項目

Oracle Reportsオンライン・ヘルプの「リファレンス」→「PL/SQLリファレンス」→「ビルトイン・パッケージ」の項の各ツール・ビルトイン・パッケージに関するトピック

2.6.13 トリガーについて

トリガーではイベントをチェックします。イベントが発生すると、トリガーに関連付けられたPL/SQLコードが実行されます。

レポート・トリガーは、レポートに含まれるデータではなく、レポートを開いたり、閉じたりするレポート・イベントに対応してアクティブ化されます。アクティブ化される順序はどのレポートにもあらかじめ定義されています。

フォーマット・トリガーは、オブジェクトをフォーマットする前に実行されます。フォーマット・トリガーは、オブジェクトのフォーマット属性を動的に変更するときに使用できます。

妥当性チェック・トリガーは、コマンドラインでパラメータ値が指定された場合、およびランタイム・パラメータ・フォームを受け入れた場合に実行されるPL/SQLファンクションです。

データベース・トリガーは、データベースに暗黙的に格納され、INSERTUPDATEまたはDELETEなどのトリガーを実行する文が関連付けられた表に発行されたときに実行されるプロシージャです。

2.6.13.1 レポート・トリガーについて

レポート・トリガーは、レポートの実行およびフォーマット時に、所定回数だけPL/SQLファンクションを実行します。これらのトリガーに、PL/SQLの条件付き処理機能を使用すると、レポート・フォーマットのカスタマイズ、初期化タスクの実行、およびデータベースへのアクセスなどを行うことができます。レポート・トリガーを作成または変更するには、オブジェクト・ナビゲータの「レポート・トリガー」ノードを使用します。レポート・トリガーは、明示的にTRUEまたはFALSEを返す必要があります。

Oracle Reportsには、次のような5つのグローバル・レポート・トリガーがあります。新しいグローバル・レポート・トリガーは作成できません。トリガー名は、トリガーをどの時点で起動するかを示します。

レポート・トリガー実行の順序

レポート実行時のイベントの順序は次のとおりです。

  1. Before Parameter Formトリガーが起動します。


    注意

    パラメータ・フォームがWeb上で使用されている場合、Before Parameter Formトリガーは2回起動します。1回はパラメータ・フォームが表示されたとき、もう1回はパラメータが送信されたときです。これは、Oracle Reportsがステートレスに実行されるためです。戻り先のセッションがないため、Before Parameter Formトリガーを2回起動することによって、パラメータ・フォームで選択されてコマンドラインに渡されたパラメータが有効であることを確認する必要があります。 


  2. ランタイム・パラメータ・フォームが表示されます(非表示になっていない場合)。

  3. After Parameter Formトリガーが起動します(ユーザーがランタイム・パラメータ・フォームからキャンセルしない場合)。

  4. レポートがコンパイルされます。

  5. 問合せが解析されます。

  6. Before Reportトリガーが起動します。

  7. SET TRANSACTION READONLYが実行されます(READONLYコマンドライン・キーワードまたは設定で指定されている場合)。

  8. レポートが実行され、最初のページを除く各ページでBetween Pagesトリガーが起動します(データは、レポートのフォーマット中にいつでもフェッチできます)。この間に、SRW.DO_SQLをDDLで使用しているため、またはONFAILURE=COMMITでレポートが失敗した場合に、COMMITが発生することがあります。

  9. COMMITが実行され(READONLYが指定されている場合)、トランザクションが終了します。

  10. After Reportトリガーが起動します。

  11. ONSUCCESSコマンドライン・キーワードまたは設定の指定に基づいて、COMMIT、ROLLBACK、NOACTIONのいずれかが実行されます。

使用に関する注意
制限
関連項目

第3.13.3.5項「レポート・トリガーの作成」

第3.13.3.6項「レポート・トリガーの削除」

2.6.13.2 フォーマット・トリガーについて

フォーマット・トリガーは、オブジェクトがフォーマットされる前に実行されるPL/SQLファンクションです。トリガーは、オブジェクトのフォーマット属性を動的に変更するときに使用できます。たとえば、フォーマット・トリガーを使用して、値がゼロ未満の場合に太字で表示できます。また、フォーマット・トリガーを使用して、値が1,000,000より大きい場合にそのフィールドに科学表記法を使用できます。

フォーマット・トリガーは、Reports Builderが特定オブジェクトのフォーマットを試行するたびに、そのオブジェクトで起動できます。Reports Builderが、ページの一番下にあるオブジェクトのフォーマットを開始するとします。オブジェクトがそのページ上に収まらない場合、Reports Builderはフォーマットを中止し、次のページで再フォーマットを行います。この場合、フォーマット・トリガーは2回起動します。したがって、このトリガーでは、ロギングなどの永続的な処理を行うことはお薦めしません。

Reports Builder SRWビルトイン・パッケージには、オブジェクトのフォーマット属性を簡単に変更できるPL/SQLプロシージャが含まれています。これには、次のような処理を行うプロシージャがあります。

Oracle Reportsオンライン・ヘルプの「リファレンス」の項のトピック「フォーマット・トリガー」を参照してください。

関連項目

第3.13.4.1項「フォーマット・トリガーの作成または編集」

2.6.13.3 妥当性チェック・トリガーについて

妥当性チェック・トリガーは、コマンドラインでパラメータ値が指定された場合、およびランタイム・パラメータ・フォームを受け入れた場合に実行されるPL/SQLファンクションです。


注意

JSPベースのWebレポートの場合、Reports Builderでレポートを実行するとランタイム・パラメータ・フォームが表示されますが、Oracle Reports Servicesのランタイム環境では表示されません。ランタイム・パラメータ・フォームでパラメータを指定しないと、妥当性チェック・トリガーはFALSEを返し、エラー・メッセージ「REP-0546: 入力されたパラメータは無効です。」を出力します。このため、第1.9.4項「Webレポートのパラメータ・フォームについて」に記載されたように、別の方法でパラメータを指定する必要があります。 


妥当性チェック・トリガーは、パラメータの「初期値」プロパティの妥当性チェックを行うときにも使用します。ファンクションがTRUEを返すか、FALSEを返すかに応じて、ランタイム・パラメータ・フォームに戻ります。

Oracle Reportsオンライン・ヘルプの「リファレンス」の項のトピック「妥当性チェック・トリガー」参照してください。

関連項目

第3.11.4項「実行時におけるパラメータ値の妥当性チェック」

2.6.13.4 データベース・トリガーについて

データベース・トリガーは、データベースに暗黙的に格納され、INSERT、UPDATEまたはDELETEなどのトリガー文が関連付けられた表に発行されたときに実行されるプロシージャです。トリガーは、表でのみ定義でき、ビューでは定義できません。ただし、ビューの実表のトリガーは、INSERT、UPDATEまたはDELETE文がビューに対して発行された場合に起動します。

トリガーは、ユニットとして実行されるSQL文およびPL/SQL文を含めることができ、別のストアド・プロシージャをコールできます。トリガーは、必要な場合にのみ使用してください。トリガーを多用すると、カスケード・トリガーや再帰的トリガーが発生することがあります。たとえば、トリガーが起動されたときに、トリガー本体のSQL文が別のトリガーを起動することがあります。

データベース・トリガーを使用すると、複合ビジネス・ルールを規定し、すべてのアプリケーションを同じように動作させることができます。トリガーを作成する場合は、次のガイドラインに従います。

アプリケーションでのトリガーの使用方法の詳細は、『Oracleアプリケーション開発者ガイド』を参照してください。各種トリガーの詳細は、『Oracleデータベース概要』を参照してください。

関連項目

第3.13.3.7項「データベース・トリガーの作成」

2.7 テンプレート

この項のトピックでは、Reports Builderにおけるテンプレートの使用について説明します。

2.7.1 テンプレートについて

テンプレートでは、複数のペーパーベースのレポートに適用する共通特性とオブジェクトを定義します。たとえば、会社のロゴを含み、レポートの選択した領域にフォントやカラーを設定するテンプレートを定義できます。

レポート・ウィザードを使用してペーパーベースのレポートを作成する場合は、ウィザードの「テンプレート」ページで、テンプレート(.tdfファイル)をレポートに適用します。「テンプレート」ページには、デフォルトのテンプレートのほか、独自に作成したテンプレートが一覧されます。


注意

テンプレートの一覧が表示されない場合は、REPORTS_PATH環境変数にテンプレートの位置(ORACLE_HOME¥reports¥templatesなど)が指定されているかどうかを確認してください。 


テンプレートを選択すると、テンプレートのマージン領域にあるオブジェクトが、現行のレポート・セクションの同じ位置にインポートされ、既存のオブジェクトがすべて上書きされます。テンプレートの本体領域内にあるオブジェクトの特性(書式設定、フォント、カラーなど)が、現行のレポート・セクションの本体領域にあるオブジェクトに適用されます。また、定義したテンプレート・プロパティ、パラメータ、レポート・トリガー、プログラム・ユニットおよび連結ライブラリも適用されます。レポートのセクション別に異なるテンプレートを適用できます。ただし、デフォルトのテンプレートを適用する場合、異なるデフォルトのテンプレートを使用した2つのレポート・ブロックを1つのレポートに組み合せることはできません。同一レポート内のすべてのレポート・ブロックで、同じデフォルトのテンプレートを使用する必要があります。

後でレポートに別のテンプレートを適用した場合、既存のテンプレート・オブジェクトは現行のレポート・セクションから削除されます。

関連項目

第3.12項「テンプレートの定義」

2.7.2 テンプレート属性について

テンプレートのペーパー・レイアウト-ボディ領域では、オブジェクト・ナビゲータの次の各ノードの「デフォルト」および「上書き」属性を定義できます。

「デフォルト」属性

オブジェクト・ナビゲータの「デフォルト」ノードでは、すべてのレポート・スタイルに対するデフォルトの可視属性(書式設定、フォント、カラーなど)を定義します。個別のレポート・スタイルの属性を定義する場合は、「上書き」ノードを使用します。レポートにテンプレートを適用すると、「上書き」ノードでローカライズされた属性を除き、すべての「デフォルト」属性がレポートに適用されます。

「上書き」属性

オブジェクト・ナビゲータの「上書き」ノードで、個別のレポート・スタイルの属性を定義できます。各レポート・スタイルには、レポート内のグループにマッピングされる1つ以上のセクションが含まれます。

単一セクションのレポート・スタイル:表形式、フォーム、メール・ラベル、フォーム・レター

複数セクションのレポート・スタイル:グループ左、グループ上、マトリックス、グループ別マトリックス

複数のグループに対応するレポート・スタイルの場合、必要に応じて追加のセクションを作成できます。セクションは、次のようにグループにマッピングされます。

セクションとグループの数が同じ場合:1対1のマッピングが行われます(最初のセクションが最初のグループに、2番目のセクションが2番目のグループに、というようにマッピングされます)。

セクションよりグループの数が多い場合:最後の2つ前のセクションまで1対1のマッピングが行われます。この後のグループはすべて、最後の1つ前のセクションにマッピングされ、最後のグループが最後のセクションにマッピングされます。セクションが1つしかない場合、すべてのグループがそのセクションにマッピングされます。

グループよりセクションの数が多い場合:最後の前のグループまで1対1のマッピングが行われます。最後のグループは最後のセクションにマッピングされます。

関連項目

第3.12.2項「デフォルトのテンプレート属性の定義」

第3.12.3項「上書きテンプレート属性の定義」

2.7.3 テンプレートの適用について

レポートにテンプレートを適用する場合、次のオブジェクト、プロパティおよび属性がすべてテンプレートから現行のレポート・セクションに適用されます。

また、テンプレートのマージン内にあるレイアウト・オブジェクトはすべて、現行のレポート・セクションの同じ位置にコピーされます。

使用に関する注意
関連項目

第3.12.4項「レポートへのテンプレートの適用」

2.7.4 テンプレートでの継承について

テンプレートでは、「セクション」、「枠」、「フィールド」、「ラベル」、「ヘッダー」および「サマリー」の各プロパティがすべて、その値を継承できます。

「デフォルト」プロパティ

「デフォルト」プロパティは、Reports Builderであらかじめ設定された値を継承します。プロパティをReports Builderのデフォルトの値に設定すると、プロパティ・インスペクタでそのプロパティの横にあるアイコンが小さな円になります。「デフォルト」プロパティは、値を変更または選択して、ツールバーの「プロパティをローカライズ」ボタンをクリックするとローカライズされます。プロパティがローカライズされると、その横にあるアイコンが四角形になります。プロパティを継承した値に戻すには、プロパティを選択し、ツールバーの「プロパティを継承」ボタンをクリックします。

「上書き」プロパティ

「上書き」セクションのプロパティは、「デフォルト」プロパティから値を継承します。プロパティが「デフォルト」プロパティから値を継承した場合、プロパティ・インスペクタでプロパティの横にあるアイコンが矢印になります。「上書き」セクションのプロパティは、値を変更または選択して、ツールバーの「プロパティをローカライズ」ボタンをクリックするとローカライズされます。プロパティがローカライズされると、その横にあるアイコンが赤い×印が付いた矢印に変わります。「上書き」セクションのプロパティを継承した値に戻すには、プロパティを選択し、ツールバーの「プロパティを継承」ボタンをクリックします。

2.7.5 テンプレート・エディタについて

テンプレート・エディタは、テンプレートのオブジェクトおよび書式設定プロパティを定義できる作業領域です。これは、レポート・エディタのペーパー・レイアウト・ビューに似ています。このマージン領域で、オブジェクト(ページ番号、テキスト、グラフィックなど)を作成、削除および変更できます。本体領域ではオブジェクトを作成したり、削除したりできませんが、本体オブジェクトのプロパティはプロパティ・インスペクタで変更できます(「ツール」→「プロパティ・インスペクタ」)。

「レポート・スタイル」リストで、選択したレポート・スタイルのレイアウトを表示できます。すべてのレポート・スタイルに対してデフォルト設定を定義するには、「レポート・スタイル」リストから「デフォルト」を選択します。レポート・スタイルを個別に変更するには、「レポート・スタイル」リストからレポート・スタイルを選択し、デフォルトに上書きする設定を指定します。

アクセス

次の方法で、テンプレート・エディタにアクセスできます。

新しいテンプレートを作成する場合:

既存のテンプレートを表示する場合:

2.8 出力フォーマットと機能

この項のトピックでは、Reports Builderの様々な出力フォーマットと機能について説明します。

2.8.1 フォーマットの順序について

Oracle Reportsの以前のリリースでは、レポートの各セクションは、ヘッダー・セクション、メイン・セクション、トレーラ・セクションの順にフォーマットされました。このリリースには、3つのレポート・セクションのフォーマット順序を変更する機能が導入されています。


注意

レポート・セクションのフォーマット順序を変更しても、出力順序は変更されません。つまり、最初にヘッダー・セクション、次にメイン・セクション、最後にトレーラ・セクションが出力されます。 


フォーマット順序は、次の方法で設定できます。

この機能は、任意のレポート・セクションを最初にフォーマットして、フォーマット時にのみ認識できるページ番号などの情報を取得し、その情報を前のセクションのフォーマットに使用するような場合に便利です。

たとえば、レポートの目次(TOC)を作成するには、メイン・セクションを最初にフォーマットしてから、レポート・トリガーを使用して、TOCエントリが含まれる表を作成できます。TOCの最初の要素をフォーマットするとトリガーが起動され、そのTOCエントリとページ番号が含まれる行がTOC表に作成されます。メイン・セクションのフォーマット後に、ヘッダー・セクションがフォーマットされるようにフォーマット順序の設定を定義できます。ヘッダー・セクションには、TOC表に基づいたレポート・ブロックを含められます。フォーマットの終了後、レポートをTOC(ヘッダー・セクション)、レポート本体(メイン・セクション)、トレーラ・セクションの順に出力できます。

レポートのTOCを作成する手順は、第35章「単純な目次と索引を使用したペーパー・レポートの作成」および第36章「複数階層の目次を使用したペーパー・レポートの作成」のサンプル・レポートを参照してください。

ページ番号付けに関する注意

レポートのページ番号は、フォーマット順に付けられます。たとえば、ヘッダー・セクションが2ページ、メイン・セクションが8ページ、トレーラ・セクションが3ページあるレポートでは、フォーマット順序を「メイン-トレーラ-ヘッダー」に設定した場合、レポート出力には、12、13(最後にフォーマットされたヘッダーのページ)、1、2、3、4、5、6、7、8(最初にフォーマットされたメインのページ)、9、10、11(2番目にフォーマットされたトレーラのページ)というようにページ番号が付けられます。

2.8.2 バッチ・レポートについて

プレビューアでレポート出力を確認する必要がない場合(たとえば、完全にテストされたレポートから大量に出力する場合や、複数のレポートを連続して実行する必要がある場合)、rwrunを使用してレポートをバッチで実行することができます。これにより、レポートを実行している間に、別のタスクを処理することができます。

コマンドラインからバッチ・モードでレポートを実行することも、コマンド・ファイルを使用して引数を指定することもできます。同じ一連の引数を使用して複数のレポートを実行する場合、コマンド・ファイルによって入力の手間を大幅に省くことができます。

また、Reports Serverを使用して、コマンドラインでBACKGROUND=YESを指定し(rwclientrwcgiまたはrwservletで有効)、レポートを非同期で実行することで、レポートをバッチ処理することもできます。つまり、クライアントはサーバーにコールを送り、レポート・ジョブが完了するのを待たずに別のプロセスへ進みます。クライアント・プロセスが削除されると、そのジョブも取り消されます。

関連項目

第3.7.2項「コマンドラインからのレポートの実行」

第3.7.3項「コマンド・ファイルを使用したレポートの実行」

BATCHおよびBACKGROUNDの詳細は、Oracle Reportsオンライン・ヘルプの「リファレンス」から「コマンドライン」の項を参照してください。

2.8.3 レポートの配布について

レポートの配布により、複数の出力フォーマットを生成できるレポートを設計し、レポートを1回実行するのみで複数の宛先に配布できます。 レポート全体に配布を作成することも、レポートの個々のセクションにのみ配布を作成することもできます。たとえば、レポートを1回実行するときに、HTML出力を生成し、プリンタへPostScriptバージョンを送信し、レポートの一部または全部のセクションを配布リストに電子メールで送信できます。

レポートを配布するには、第3.7.12項「複数の宛先へのレポートの配布」で説明しているように、最初に配布を定義してから、その配布を有効にします。

セクションレベルの配布の使用例は、第37章「レポートの一括処理と配布」を参照してください。この章では、「繰返し」プロパティおよび配布XMLファイルを使用して、1つのセクションに複数の配布先を定義する方法について説明します。

使用に関する注意

例1

セクション分割と配布を使用することで、レポート出力をHTMLで公開したり、Postscriptバージョンでプリンタに送信したりできます。

例2

シニア・マネージャにはレポートの集計サマリーを送信し、個々のマネージャには詳細な分析を電子メールで送信できます。この例では、2つのレポート・セクションを持つレポートを1つ作成する必要があります。1つは縦長のサマリー・セクションで、もう1つは横長の詳細セクションにします。「繰返し」プロパティを使用して、マネージャをリストするデータ・モデル・グループに詳細セクションを関連付け、次にデータ・モデル・グループの各インスタンスの宛先を変更することで、適切なマネージャに出力を送信します。

関連項目

第2.1.2項「レポートのセクション分割と各セクションについて」

第3.14.19項「レポートの配布のトレース」

『Oracle Application Server Reports ServicesレポートWeb公開ガイド』の「拡張配布の作成」

2.8.3.1 DSTファイルについて

「配布」ダイアログ・ボックスでレポートまたはレポート・セクションの配布を定義するかわりに、DSTファイルを作成し、DESTINATIONキーワードを使用してその名前をコマンドラインで指定し、レポートを配布することもできます。


注意

この方法は、下位互換性を維持するためにサポートされているので、「配布」ダイアログ・ボックスまたはXMLを使用してレポートを配布する方法をお薦めします。詳細は、『Oracle Application Server Reports ServicesレポートWeb公開ガイド』の「拡張配布の作成」の章を参照してください。このマニュアルは、Oracle Technology NetworkのOracle Reportsドキュメントのページ(http://www.oracle.com/technology/documentation/reports.html)から入手できます。 


コマンドラインでDSTファイルを指定した場合、定義される配布は、「配布」ダイアログ・ボックスを使用して定義した配布を上書きします。


注意

配布エラーを識別するためにレポートの配布をトレースした場合(第3.14.19項「レポートの配布のトレース」を参照)、トレース・ファイル形式はDSTファイルによく似ているため、トレース・ファイルから切取りと貼付けを行ってDSTファイルを作成できます。 


DSTファイルの各行の形式は次のとおりです。

dist_ID: output_def

意味は次のとおりです。

dist_IDは、配布の宛先の識別子です。

output_defは、配布の宛先を指定する一連のrwrunコマンドライン・キーワードまたはrwclientコマンドライン・キーワードです。また、次のパラメータが有効です。

LEVELは、配布の有効範囲を指定します。

LEVELの値

REPORTは、配布がレポート全体に適用されることを示します。

Header_Sectionは、配布がヘッダー・セクションにのみ適用されることを示します。

Main_Sectionは、配布がメイン(本体)セクションにのみ適用されることを示します。

Trailer_Sectionは、配布がトレーラ・セクションにのみ適用されることを示します。

デフォルト

REPORT

次の例は、レポート出力をHTMLファイルに、メイン・セクションのコピー3部をプリンタに、ヘッダー・セクションをPDFファイルに送信するよう定義しています。

;dst file (specified with the DESTINATION keyword on the command line)
DEST1: DESNAME=testdst1.HTM DESTYPE=file
DESFORMAT=HTML COPIES=1 LEVEL=Report
DEST2: DESNAME=¥¥luna¥2op813 DESTYPE=printer
DESFORMAT=BITMAP COPIES=3
LEVEL=Main_Section
DEST3: DESNAME=SECTION1.pdf DESTYPE=file
DESFORMAT=pdf COPIES=1
LEVEL=Header_Section
関連項目

第2.1.2項「レポートのセクション分割と各セクションについて」

2.8.4 Pluggable Destinationsについて

Pluggable Destinationsは、エンジン(Oracle Reports以外のエンジンも含む)によりReports Serverのキャッシュで作成されたコンテンツの配布に使用できます。Oracle Reportsには、あらかじめ次の宛先が用意されています。

Oracle Reports Java APIを使用して、独自の宛先へのアクセスを定義し、Reports Serverに新しい宛先コンポーネントを実装することもできます。既定の宛先と独自にカスタマイズした宛先のどちらを使用するかを選択し、キャッシュ内の出力の宛先を決定してください。

宛先クラスの実装と登録方法、およびOracle Reportsでの宛先の使用方法は、『Oracle FTP Destination tutorial』を参照してください。このマニュアルは、Oracle Technology Network(OTN)のOracle Reports 10gのページ(http://www.oracle.com/technology/products/reports/index.html)で「Plugin Exchange」をクリックすると「Oracle Reports Plugin Exchange」から入手できます。


注意

現在、Reports Builder環境からのFTPやWebDAVの宛先に対するサポートはありません。ただし、これらの宛先は、Reports RuntimeおよびReports Serverの環境からはサポートされています。 


関連項目

『Oracle Application Server Reports ServicesレポートWeb公開ガイド』のOracleAS Reports Servicesの宛先の構成に関する項。このマニュアルは、Oracle Technology NetworkのOracle Reportsドキュメントのページ(http://www.oracle.com/technology/documentation/reports.html)から入手できます。

2.8.5 イベント・ドリブンの公開について

イベント・ドリブンの公開を使用すると、特定のアクションが実行されたときにレポートを実行するように設定できます。たとえば、従業員が経費レポートを送信すると、データベースに新しいデータが挿入されます。このような挿入イベント(たとえば、データベース・トリガーまたはアドバンスト・キューイング(AQ)メッセージなど)が発生すると、レポートはポータル・ページまたは電子メールによって従業員の管理者に送られ、この経費レポートを承認/拒否するように通知します。

Oracle Reports 10g(9.0.4)では、イベント・ドリブンの公開機能が強化され、レポート・オブジェクトがOracle Workflow内で使用可能になっています。

詳細は、『Oracle Application Server Reports ServicesレポートWeb公開ガイド』のイベント・ドリブンの公開の使用方法に関する項を参照してください。このマニュアルは、Oracle Technology NetworkのOracle Reportsドキュメントのページ(http://www.oracle.com/technology/documentation/reports.html)から入手できます。

2.8.6 プリンタ・トレーの切替えについて

Before Reportトリガー、Between Pagesトリガーまたはフォーマット・トリガーを使用して、レポートのフォーマット時とは異なるプリンタ・トレーに切り替えることができます。これにより、同じレポートのページを簡単に別の用紙に印刷できます(レターヘッド、各種フォーム、カラー用紙など)。

プリンタに定義されたプリンタ・トレーの名前は、「ページ設定」ダイアログ・ボックスで判断できます。次に、SRW.SET_PRINTER_TRAYを使用して、必要なプリンタ・トレーを設定します。

関連項目

第3.7.17.5項「プリンタ・トレーの切替え」

2.8.7 レポートのXMLについて

Oracle Reportsでは、次のような方法でExtensible Markup Language(XML)を使用します。

XMLは、多くの異なるアプリケーションで読み込むことができるエンコーディング・テキスト・フォーマットの形式です。XMLタグは、情報を出力するために使用するか、またはサードパーティ製アプリケーションと電子データを交換(EDI)するプラッガブル・データ・ソースを構築するベースとして使用します。

レポートのXML出力を制御するXMLプロパティは、レポート、グループおよび列という3つのレベルで変更できます。Reports Builderで生成されたXMLファイルでは、その出力は、グループと列で構造化されたデータ・モデルを擬似実行します。XML出力の変更を表示する方法は、第3.7.7項「XML出力の生成」を参照してください。

レポートの配布でのXMLの使用、およびXMLを使用したレポートのカスタマイズの詳細は、『Oracle Application Server Reports ServicesレポートWeb公開ガイド』の「拡張配布の作成」と「XMLによるレポートのカスタマイズ」の章を参照してください。このマニュアルは、Oracle Technology NetworkのOracle Reportsドキュメントのページ(http://www.oracle.com/technology/documentation/reports.html)から入手できます。

関連項目

第3.7.7項「XML出力の生成」

第3.7.1項「ユーザー・インタフェースからのレポートの実行と出力」

Oracle Reportsオンライン・ヘルプの「XML PDS」の項

2.8.8 HTMLおよびHTMLCSS出力について

Reports Builderでは、レポート出力を、フォーマットされたデータとすべてのオブジェクトを含むHypertext Markup Language(HTML)ファイルおよびカスケード・スタイル・シートのHypertext Markup Language(HTMLCSS)ファイルに生成できます。HTMLは、Microsoft Front Pageなどの多くの異なるWebページ開発ソフトウェア・パッケージやWebブラウザで読み込むことができるエンコーディング・テキスト・フォーマットの形式です。ソフトウェアの編集およびグラフィック機能を使用して、レポート出力を変更および拡張できます。レポート出力をHTMLまたはHTMLCSSファイルに生成する場合、その出力を電子メール、プリンタ、OracleAS PortalおよびWebブラウザなどの、任意のHTML宛先に配布できます。


注意

このトピックでは、ペーパーベースのレポートをHTMLファイルまたはHTMLCSSファイルに実行したときに生成されるHTMLについて説明しています。これらは、JSPベースのWebレポートを実行(ツールバーの「Webレイアウトを実行」ボタンをクリックまたは「プログラム」→「Webレイアウトを実行」を選択)したときに生成されるHTMLとは関係ありません。 


使用に関する注意
制限
関連項目

第1.2.2項「Webレポートについて」

第2.2.3項「HTML出力のWebリンクについて」

第3.7.5項「HTMLまたはHTMLCSS出力の生成」

第3.9.2.3項「HTMLタグのボイラープレート・テキスト・オブジェクトの作成」

第3.9.2.7項「HTMLテキスト・オブジェクトのファイルへのリンク」

第3.8.4項「データベースからのHTMLタグの選択」

2.8.8.1 HTMLページ・ストリーミングについて

HTMLページ・ストリーミングを使用すると、レポート全体をダウンロードしなくても、HTML/HTMLCSSレポート出力のページを個別にWebブラウザに表示できます。レポートの第1ページから、残りのレポートの任意のページにナビゲートできます。ブックマークまたはハイパーリンクで宛先をクリックした場合、次のように処理されます。

ナビゲーション・コントロール

次のいずれかの方法で、レポートのナビゲーション・コントロール・スクリプトを指定できます。

出力ファイル名

HTMLページ・ストリーミングでは、各ページが個別のHTMLドキュメントとして書式設定されます。HTMLファイルの名前がmyreport.htmで、ブックマークがない場合、新しいファイルには次のような名前が付けられます。

HTML出力の有効範囲

レポートの最初(ヘッダー)または最後(フッター)のページにのみ表示されるHTMLを指定するには、「Before Report」プロパティまたは「After Report」プロパティを設定するか、SRW.SET_BEFORE_REPORT_HTMLまたはSRW.SET_AFTER_REPORT_HTML PL/SQLプロシージャを使用します。バックグラウンド・カラーやイメージなど、グローバルHTMLをレポート全体に適用するように指定するには、「ページ前」プロパティまたはSRW.SET_BEFORE_PAGE_HTML PL/SQLプロシージャを設定します。Reports Builderで生成されたHTMLロゴは、レポートの最後のページにのみ表示されます。

ページ・ストリーミングされた出力の有効化

レポートをHTML出力またはHTMLCSS出力としてフォーマットするときにページ・ストリーミングを有効にするには、コマンドラインでPAGESTREAM=YESを指定する必要があります。このオプションは、Reports Builderユーザー・インタフェースでは設定できません。

関連項目

第3.7.16.5項「HTMLレポート出力の各ページの表示」

第3.6.10.1.12項「プロパティ・インスペクタを使用した、ページがストリーミングされたHTML出力へのナビゲーション・コントロールの追加」

第3.6.10.2.11項「PL/SQLを使用した、ページがストリーミングされたHTML出力へのナビゲーション・コントロールの追加」

2.8.9 HTMLフォーマットについて

Oracle Reportsでは、レポート内のテキスト・オブジェクトに様々なフォント、スタイルおよびカラーを指定できます。SRWビルトイン・プロシージャ(Oracle Reportsオンライン・ヘルプの「リファレンス」の項を参照)を使用すると、エンド・ユーザーが実行時にオブジェクト全体に対してテキスト属性を変更することはできますが、テキストのセクションごとに変更することはできません(テキスト・オブジェクトの部分ごとに別々のフォーマットを指定するなど)。以前のリリースでは、列にリッチ・テキスト・コンテンツが含まれていても(フォーマット命令がテキストに埋め込まれている場合など)、このフォーマットは解析されず、レポート出力に適用されませんでした。この制限は、HTMLタグを使用してフォーマットし、オブジェクトの「HTMLタグを含む」プロパティを「はい」に設定することによって対処できますが、こうして指定したフォーマットを表示できるのはHTML出力またはHTMLCSS出力のみでした。その他の出力フォーマット(PDF、RTF、PostScriptなど)で生成されたレポートでは、HTMLタグ自体が出力に表示されました。

Oracle Reports 10gリリース2(10.1.2)で導入されたテキスト・フォーマット拡張機能では、HTMLフォーマット・タグの定義済みのセットを使用してテキスト・スタイル(太字、イタリック、下線および取消し線)およびテキスト属性(フォント名、フォント・カラーおよびフォント・サイズ)をフォーマットし、オブジェクトの「HTMLタグを含む」プロパティを「はい」に設定すれば、Oracle Reportsでサポートされているすべてのビットマップ出力形式でフォーマット済のテキスト・オブジェクトを生成できます。

ボイラープレート・テキスト・オブジェクトにはスタティック値を指定し、フィールド・オブジェクトやテキスト・ファイル・リンク・オブジェクトには動的な値を指定できます。ボイラープレート・テキスト・オブジェクトでも、フィールド・オブジェクトやレポートレベルの列が参照先になっている場合は、動的な値を指定できます。ボイラープレート・テキストに関しては、設計時に指定された形式は、実行時に取得されるリッチ・テキスト形式とマージされます。この機能では、HTMLタグを含むマルチバイト・テキストもサポートされています。

ペーパー・デザイン・ビューまたはペーパー・レイアウト・ビューでは、「HTMLタグを含む」プロパティを「はい」に設定することにより、HTMLフォーマットを適用するオブジェクトを選択できます。CONTAINSHTMLTAGS=NOを使用して、コマンドラインからレポートを実行した場合、Oracle Reportsでは、オブジェクトの「HTMLタグを含む」プロパティの設定にかかわらず、レポートのHTMLタグが解析されません。HTML出力およびHTMLCSS出力では、ブラウザによってHTMLフォーマット・タグが解析されますが、その他の出力形式では、HTMLタグ自体がレポート出力にそのまま表示されます。

次のHTMLタグは、ボイラープレート・テキスト、テキスト・ファイル・リンクまたはフィールド・オブジェクトに表示されている場合にOracle Reportsで解析されます。記載されていないHTMLタグまたは属性は、HTML/HTMLCSS以外のレポート出力では、そのまま表示されます。

表2-2    サポートされているHTMLタグ 
タグ  結果 

<b>

<strong> 

このいずれかのタグで囲まれているテキストは太字になります。

:

テキストが次のようにフォーマットされている場合:
<b>my format</b>

出力は次のようになります。
my format 

<i>

<em> 

このいずれかのタグで囲まれているテキストはイタリックになります。

:

テキストが次のようにフォーマットされている場合:
<i>my format</i>

出力は次のようになります。
my format 

<u> 

このタグで囲まれているテキストは下線付きになります。

:

テキストが次のようにフォーマットされている場合:
<u>my format</u>

出力は次のようになります。
my format 

<s>

<strike> 

このいずれかのタグで囲まれているテキストは取消し線で消されます。

:

テキストが次のようにフォーマットされている場合:
<s>my format</s>

出力は、取消し線付きで表示されます。 

<span>  

フォント・ファミリ、サイズおよびカラーの属性を指定する汎用スタイル・コンテナ。詳細は表2-3を参照してください。

:

<span style="font-family:Times New Roman; font-size:10pt; color:rgb (255,0,0);">my format</span>

出力は、Times New Romanフォントの10ポイント・サイズで赤色で表示されます。 

spanタグのstyle属性でサポートされているプロパティは次のとおりです。

表2-3    spanタグのstyle属性でサポートされているプロパティ 
プロパティ  結果 

font-family 

このプロパティではフォント名を指定します。Oracle Reportsで指定できるフォント名は1つだけです。カンマ区切りのリストで複数のフォント名を指定した場合、Oracle Reportsではシステムのデフォルト・フォント(通常はCourierかそれと同等のフォント)が使用され、警告が生成されることなくこのタグがレンダリングされます。

:

font-family: Arial 

font-size 

このプロパティではフォントのサイズを指定します。

CSSレベル2では、このプロパティの次のオプションを指定します。

absolute_size|relative_size|length|percentage

Oracle Reportsでは、absolute_sizeおよびlengthのみを指定できます。

前述のオプションの意味は次のとおりです。

absolute-sizeは次のとおりです。
xx-small | x-small | small | medium | large | x-large | xx-large

xx-small: 7ポイント
x-small: 8ポイント
small: 10ポイント
medium: 12ポイント
large: 14ポイント
x-large: 17ポイント
xx-large: 20ポイント

lengthは次のとおりです。
font_sizepx | font_sizept

:

font-size:xx-large
font-size:12pt
 

カラー 

このプロパティでは、タグ内の要素のテキスト・コンテンツのカラーを指定します。

Oracle Reportsでは、このプロパティの次のオプションがサポートされています。

color_name|#rgb|#rrggbb|rgb(r_integer, g_integer, b_integer)|rgb(r_value%, g_value%, b_value%)

カラー名とrgbは次のように対応しています。

aqua(淡緑青): #0FF
black(黒): #000
blue(青): #00F
fuchsia(紫紅): #F0F
gray(グレー): #7F7F7F
green(緑): #007F00
lime(黄緑): #0F0
maroon(葡萄茶): #7F0000
navy(紺): #00007F
olive(濃黄緑): #7F7F00
purple(紫): #7F007F
red(赤): #F00
silver(銀): #C0C0C0
teal(暗緑青): #007F7F
white(白): #FFF
yellow(黄): #FF0

:

color:aqua
color:#FB0
color:#0FACED
color:rgb(100, 245, 33)
color:rgb(23%, 45%, 87%)

注意: rgb(x, x, x)の指定では、カラー濃度をパーセンテージ(0-100)またはrgb整数(0-255)で指定する必要があります。指定可能な範囲を超える値を指定した場合は、最大値に設定されます。カラー濃度に負の値を指定すると無効になります。次のように、カラーのパーセント値とrgb整数値を混在させることができます。

<span style="color:rgb(100%, 125, 3%)">

前述の例は、次と同じです。

<span style="color:rgb(255, 125, 8)">
または
<span style="color:rgb(100%, 49%, 3%)"> 

使用に関する注意
制限

例1: インライン・フォント変更

ボイラープレート・テキスト・オブジェクトでは、テキスト・ボイラープレートを次のように指定できます。

<b>My</b>text

「HTMLタグを含む」プロパティを「はい」に設定すると、これは次のようなフォーマット出力になります。

My text

例2: 1行のテキストに複数のフォーマットの指定

次のような、1行でフォーマットされるテキストの範囲(ボイラープレート・オブジェクト内またはデータベース列内)があるとします。

<b>My <span style="font-family:Courier">HTML</span>
</b><u><span style="font-family:Times New Roman">Formats</span></u>

「HTMLタグを含む」プロパティを「はい」に設定すると、これは次のようなフォーマット出力になります。

My HTML Formats

例3: 複数行のテキストに複数のフォーマットの指定

次のような、複数行でフォーマットされるテキストの範囲があるとします。

Line 1: <i>My<span style="font-family:Courier">
Line 2: HTML</span></i><span style="font-family:Times New Roman><u>
Line 3: Formatting</u></span>.

「HTMLタグを含む」プロパティを「はい」に設定すると、これは次のようなフォーマット出力になります。

Line 1: My
Line 2: HTML
Line 3: Formatting.

前述の例で、複数の連続する行でフォーマットが維持されていることを確認してください。

関連項目

第3.7.5項「HTMLまたはHTMLCSS出力の生成」

第3.9.2.3項「HTMLタグのボイラープレート・テキスト・オブジェクトの作成」

第3.9.2.7項「HTMLテキスト・オブジェクトのファイルへのリンク」

第3.8.4項「データベースからのHTMLタグの選択」

2.8.10 PDF出力について

Reports Builderでは、レポート出力を、フォーマットされたデータとすべてのオブジェクトを含むPDFファイルに生成できます。レポート出力をPDFファイルに生成する場合、その出力を電子メール、プリンタ、OracleAS PortalおよびWebブラウザなどの、任意のPDFの宛先に配布できます。

PDF出力のドキュメントの分類(種別)は、「タイトル」、「作成者」、「件名」および「キーワード」のレポート・プロパティにより行われ、レポート・ドキュメントのカタログ化と検索に役立ちます。

フォントのサブ設定を使用すると、レポートを表示するマシンで該当するフォントが使用できるかどうかにかかわらず、PDFファイルのレンダリングに必要なフォント情報がPDFファイルに含まれます。PDFのフォントのサブ設定は、シングルバイト、マルチバイトおよびUnicodeのフォントでも機能するため、マルチバイト・レポートの作成に適しています。

Oracle Reports 10gリリース2(10.1.2)には、次のようなPDS出力の拡張機能が含まれています。

圧縮、フォントの別名の作成、フォントのサブ設定、フォントの埋込みとアクセス可能性を示すタグなど、Oracle ReportsにおけるPDFの拡張および各種機能の詳細は、『Oracle Application Server Reports ServicesレポートWeb公開ガイド』の「Oracle ReportsでのPDFの使用」の章を参照してください。このマニュアルは、Oracle Technology NetworkのOracle Reportsドキュメントのページ(http://www.oracle.com/technology/documentation/reports.html)から入手できます。

使用に関する注意
制限
関連項目

第1.2.2項「Webレポートについて」

第2.2.4項「PDF出力のWebリンクについて」

第3.7.6項「PDF出力の生成」

2.8.11 RTF出力について

Reports Builderでは、レポート出力を、フォーマットされたデータとすべてのオブジェクトを含むRich Text Format(RTF)ファイルに生成できます。RTFは、Microsoft Wordなどの多くの異なるワード・プロセッシング・ソフトウェア・パッケージで読み込むことができます。ソフトウェアの編集およびグラフィック機能を使用して、レポート出力を変更および拡張できます。レポート出力をRTFファイルに生成する場合、その出力を電子メール、プリンタ、OracleAS PortalおよびWebブラウザなどの、任意のRTFの宛先に配布できます。

使用に関する注意
関連項目

第3.7.8項「RTF出力の生成」

第3.7.1項「ユーザー・インタフェースからのレポートの実行と出力」

2.8.12 デリミタ付き出力について

Oracle Reportsでは、デリミタを含むレポート出力を、デリミタ付きファイル(カンマやタブで区切られたデータを含むファイルなど)に生成できます。これらのファイルは、簡単にスプレッドシートにインポートしたり、ワード・プロセッサで使用できます。

Oracle Reportsでデリミタ付き出力の生成には、次の2つのオプションがあります。

次のいずれかの方法を使用して、レポート出力内のデータ(ボイラープレートまたはフィールド・オブジェクト)を区切るデリミタ(文字または文字列)を指定できます。

セルの囲みを使用してさらにセルを区別できます。セルの囲みは、カンマやカッコなどの一連の文字で構成されます。

たとえば、レポート出力のデータにデリミタと同じ文字(たとえば、カンマ)が含まれる場合、カッコをセルの囲みに使用して、それぞれのセルを区別できます。

(1,000,000),(3,6000),(543),(2,003,500)…
使用に関する注意

DelimitedData出力:

DelimitedData出力にレポートを生成すると、データのみ(レポート・データ・モデルで定義されているもの)が出力に表示されます。レイアウトで定義されているフォーマット変更は、DelimitedData出力では反映されません。

次の列プロパティを設定すると、DelimitedData出力ファイルで列名の変更や列の除外が可能です。

レポートのレイアウト情報を保持するレポート出力を生成するには、第2.8.13項「スプレッドシート出力について」を参照してください。

デリミタ付き出力:

デリミタ付き出力にレポートを生成した場合、データは、ペーパー・レイアウト・ビューのオブジェクトの位置に従って表示されます。

制限
関連項目

第3.7.10項「デリミタ付き出力の生成」

第3.7.1項「ユーザー・インタフェースからのレポートの実行と出力」

第1.2.2項「Webレポートについて」

2.8.13 スプレッドシート出力について

10gリリース2(10.1.2)からOracle Reportsに導入されている新しい出力フォーマットを使用すると、ペーパー・レイアウト・レポートからHTMLファイルへ出力を生成し、Microsoft Excel 2000で直接開くことができます。新しいDESFORMAT=SPREADSHEETを使用すると、次のことが可能です。

前提条件
使用に関する注意
制限

URLを使用してレポートのペーパー・レイアウトをMicrosoft Excel出力に生成するには(rwservletを使用)、次の内容を含むコマンドをコマンドラインに入力します。

http://hostname:port/reports/rwservlet?report=report_name
  +server=server_name+userid=db_connect_string+destype=file
  +desformat=spreadsheet+desname=C:¥temp¥myexcel_output.htm


注意

Microsoft Office 2000/2002/2003では、Hypertext Markup Language(HTML)はネイティブのファイル形式としてサポートされています。スプレッドシート出力はHTML出力の生成に依存しているため、有効なExcelフォーマットとしてMicrosoft Excelで認識できます。 


スプレッドシート出力生成のその他の機能

新しいスプレッドシート出力機能に加えて、Oracle Reports 10gリリース2(10.1.2)より前のリリースで実装される次の方法でも、スプレッドシート出力を生成できます。

関連項目

第3.7.11項「スプレッドシート出力の生成」

与えられた要件に適切なデリミタ付き出力ソリューションを選択する場合の詳細は、『Oracle Application Server Reports ServicesレポートWeb公開ガイド』のOracleAS Reports Servicesのトラブルシューティングに関する付録にある、Microsoft Excelにおけるレポート出力の表示に関する項を参照してください。

2.8.14 テキスト出力について

Reports Builderでは、レポート出力を、フォーマットされたデータとすべてのオブジェクトを含むテキスト・ファイルに生成できます。レポート出力をテキストに生成し、その実行モードがキャラクタである場合(MODE=CHARACTER、またはMODEシステム・パラメータの「初期値」プロパティが「キャラクタ」に設定されている場合)、その結果は純粋なテキスト出力となり、様々なアプリケーションで読み取ることができます。実行モードがビットマップの場合(MODE=BITMAP、またはMODEシステム・パラメータの「初期値」プロパティが「ビットマップ」に設定されている場合)、その結果はPostScript出力となり、PostScript対応のアプリケーション(PostScriptプリンタなど)でのみ、読み取ったり、レンダリングしたりできます。

関連項目

第3.7.9項「テキスト出力の生成」

2.8.15 ASCII(キャラクタ・モード)レポートの作成について

キャラクタ・モードのレポートを作成するには、まずビットマップ・レポートを作成してから、そのレポートをASCII(キャラクタ・モード)レポートに変換します。この処理では、キャラクタ・モード・バージョンのビットマップ・レポートが新たに作成され、元のビットマップ・レポートはそのまま変更されません。

変換後、フィールドおよびテキスト・オブジェクトの多くをサイズ変更する必要があります。また、イメージや描画などのグラフィック・オブジェクトは、キャラクタ・モードのレポートには含まれません。次に、各出力フォーマットでサポートされているアイテムをまとめます。

表2-4    ビットマップおよびキャラクタ・モードのレポートでサポートされるアイテム 
ビットマップ  キャラクタ・モード 

イメージ 

ボックス 

カラー 

水平線 

描画 

垂直線 

楕円/円 

ASCIIテキスト 

イタリック・テキスト 

太字テキスト 

対角線 

下線 

ビットマップ・パターン 

 

マルチメディア・オブジェクト 

 

関連項目

第3.5.9項「ASCII(キャラクタ・モード)レポートの作成」

第3.2.5項「ASCII(キャラクタ・モード)レポートのプロパティの設定」

第3.7.1項「ユーザー・インタフェースからのレポートの実行と出力」

2.9 データ・ソース

Oracle Reportsでは、様々なデータ・ソースにアクセスできます。第3.15.2項「Oracle以外のデータ・ソースへのアクセス」を参照してください。

この項の各トピックでは、Reports Builderで他のデータ・ソースにアクセスする場合の情報を説明します。

関連項目

Oracle Reportsオンライン・ヘルプの「プラッガブル・データ・ソース」の項には、次のトピックが含まれています。

2.9.1 データベース・ロールについて

データベース・ロールによって、エンド・ユーザーはアクセス権限を持たない表に問合せを行うレポートを実行できるようになります。たとえば、最終的なレポートには表示されなくても、給与データなどの機密情報が含まれた表にレポートが問合せを実行する場合があります。

データベース・ロールは、ランタイム環境でのみチェックされます。特別なアクセス権限を必要とする表の場合、このような権限を持たないエンド・ユーザーは、その表からデータを取り出すレポートを実行できません。しかし、レポートにデータベース・ロールを定義しておくと、そのロールの権限を持つエンド・ユーザーは、Reports Runtimeを使用してレポートを実行できます(rwrun)。


注意

データベース・ロールが定義されたレポートを実行するには、エンド・ユーザーが、.repファイルではなく.rdfファイルを実行する必要があります。複数のレポートを実行する場合、Reports Runtimeでは自動的に、現行のレポートに定義されたロールに切り替えられます。 


データベース・ロールが定義されたレポートをReports Builderで開こうとすると、ロール・パスワードを入力するように求められます。一般に、この情報を所有しているのは、レポートの作成者とDBAのみです。

関連項目

第3.16.1項「データベース・ロールの設定」

2.9.2 Oracle Net Servicesについて

Oracle Net Servicesは、Oracleのリモート・データ・アクセス・ソフトウェアで、任意のネットワークでクライアントとサーバー間およびサーバー間の通信を可能にします。分散処理と分散データベースの機能がサポートされます。Oracle Net Servicesは、多くの通信プロトコルで実行され、これらを相互接続します。Oracle Net Servicesは、Net8およびSQL*Netと下位互換性があります。

2.9.3 ユーザー・イグジットについて

以前のリリースでは、ユーザー・イグジットを使用して、Reports Builderからユーザーが記述したプログラムに制御を渡し、そこで何らかの機能を実行して、制御を再びReports Builderに戻しました。オペレーティング・システムのテキスト・ファイルからReports Builderにデータを渡したり、LONG RAWデータを操作したり、PL/SQLブロックをサポートしたり、プリンタやロボットなどのリアルタイム・デバイスを制御したりする複雑なデータ操作を実行するには、ORACLE Precompilerユーザー・イグジット、ORACLE Call Interface(OCI)ユーザー・イグジットまたは非ORACLEユーザー・イグジットを記述する必要がありました。

このリリースでは、ORA_JAVAビルトイン・パッケージとJava Importerを使用して、Javaメソッドをコールできます。これによってレポートでのユーザー・イグジットの必要性が軽減され、さらにオープンでポータブルな配置が可能になります。また、ORA_FFIビルトイン・パッケージを使用することもできます。これにより、ダイナミック・ライブラリにあるC関数をコールするための外部関数インタフェースを使用できます。これらの新しいビルトイン・パッケージが使用可能になったことにより、Oracle Reportsでは、ユーザー・イグジットの使用が推奨されなくなりました。ただし、既存のユーザー・イグジットを継続して使用できるように、現在でもメイクファイルは提供されています。

2.9.4 Oracle Call Interface(OCI)について

以前のリリースでは、Oracle Call Interface(OCI)により、Oracle Reportsの実行可能ファイルをコールするために、各自の3GLプログラムでコールする一連の標準プロシージャが提供されました。これらのCで書かれたプロシージャは、Reports Builder、Reports RuntimeおよびReports Converterの各実行可能ファイルに付属しています。そのため、たとえば、Pro*FORTRANプログラムからReports Builderレポートを実行するには、Reports Runtimeの実行可能ファイルを使用して、各自のプログラムにRWCRRBプロシージャのコールを追加し、レポートを実行していました。

このリリースでは、OCIが廃止されています。かわりに、rwclientコマンドライン・インタフェースまたはJSPタグ・ライブラリを使用します。

2.10 デバッグ・ツール

この項の各トピックでは、Reports Builderのデバッグ・レポートについて説明します。

2.10.1 デバッグ・プロセスについて

アプリケーションのデバッグは、アプリケーション・エラーを識別し、修正する反復プロセスです。一般に、アプリケーションのデバッグを適切に行うには、誤りのあるコードを素早く識別し、特定することが不可欠です。

関連項目

第3.14.1項「レポートのデバッグ」

第3.14.2項「デバッグ・モードでのレポートの実行」

2.10.2 PL/SQLインタプリタについて

PL/SQLインタプリタは、デバッグの作業領域で、ソース・コードを表示し、デバッグ・アクションを作成し、プログラム・ユニットを実行し、インタプリタ・コマンド、PL/SQLおよびSQL文を実行できます。

PL/SQLインタプリタでは、デフォルトで、2つのペイン(「ソース」ペインと「インタプリタ」ペイン)が常に開いています。

次のようなデバッグ機能があります。

2.10.3 「ソース」ペインについて

PL/SQLインタプリタの「ソース」ペインには、現在「オブジェクト・ナビゲータ」ペインで選択されているプログラム・ユニットの読取り専用コピーが表示されます。

左側のマージンにある番号は、表示されているプログラム・ユニットの行番号に対応します。

また、マージンには、次に示す記号が表示されることもあります。

表2-5    「ソース」ペインのマージンに表示される記号 
記号  説明 

現在のソース位置を指定します。 

=> 

現在のスコープ位置を指定します。 

-  

現在の実行位置を指定します(現在のスコープ位置と異なる場合)。 

B(n) 

ブレークポイントの位置を指定します。nは対応するデバッグ・アクションIDです。この記号は、行番号列に表示されます。  

T(n

トリガーの位置を指定します。nは対応するデバッグ・アクションIDです。この記号は、行番号列に表示されます。  

2.10.4 PL/SQLインタプリタのデバッグ・コマンドについて

PL/SQLインタプリタを使用する場合、次のコマンドを実行できます。

表2-6    PL/SQLインタプリタのコマンド 
コマンド  説明 

CREATE 

ファイル・システムまたは現在のデータベースに格納できる新しいライブラリを作成します。 

DELETE 

次のものを削除します。

  • 現在のデータベースに存在するライブラリ

  • ライブラリのプログラム・ユニット

  • プログラム・ユニット

 

DESCRIBE 

現在のスコープ位置に対してローカルな変数またはパラメータを検査します。この説明には、指定したローカルの名前、タイプおよび値が含まれます。 

EXPORT 

1つ以上のプログラム・ユニットのソースをテキスト・ファイルに書き込みます。 

LIST 

プログラム・ユニットのソース・テキスト、トリガーおよびデバッグ・アクションを表示します。 

LOG 

PL/SQLインタプリタの入力および出力のトランスクリプトを、指定したログ・ファイルに保存します。 

RESET 

現在のデバッグ・レベルで実行を継続せずに、外部デバッグ・レベルに制御を戻します。 

SET 

現在のスコープ位置をスタックの指定した枠に変更します。現在のスタック枠から別の枠へ相対的な移動を指定することも、スタック上の特定のサブプログラムへ移動することもできます。次のような方法で、SETをコールします。

  • オブジェクト・ナビゲータで枠エントリを選択します。

  • PL/SQLインタプリタでSETコマンドを入力します。

 

SHOW 

現在のスコープ位置のすべての変数およびパラメータについて、名前、タイプおよび値を表示します。 

2.10.5 デバッグ・アクションについて

PL/SQLインタプリタをレポート・コード(トリガー、ユーザー命名プログラム・ユニット、ライブラリなど)から起動するには、コードでデバッグ・アクションを作成します。これらは、PL/SQLプログラム・ユニットの実行を追跡して、それを監視できるようにする命令です。

作成した各デバッグ・アクションには、自動的に一意の数値IDが割り当てられます。デバッグ中に、このIDを参照して、Reports Builderのデバッグ・コマンドで特定のデバッグ・アクションを参照、表示または変更できます。

1つ以上のデバッグ・アクションに関する詳細情報を表示できます。詳細情報には、そのID、ソースの位置、および有効化されているかどうかなどの情報が含まれます。また、特定のデバッグ・アクションを一時的に無効化し、必要に応じて後でもう一度有効化できます。

デバッグ・アクションには、ブレークポイントとデバッグ・トリガーの2種類があります。

ブレークポイントは、プログラム・ユニットの特定のソース行で実行を中断し、PL/SQLインタプリタに制御を渡します。

ブレークポイントを作成して、特定のデバッグ領域を識別します。たとえば、ブレークポイントを行10と行20に作成すると、この領域内のコードがデバッグされます。

ブレークポイントでは、ブレーク・ポイントを指定した行に到達する直前に中断が発生します。この時点で、PL/SQLインタプリタの機能を使用して、プログラムの状態を検査または変更できます。完了したら、GOコマンドまたはSTEPコマンドで実行を再開するか、RESETコマンドを使用して実行を強制終了します。

デバッグ・トリガーは、一般的な形式のデバッグ・アクションで、PL/SQLコードのブロックをプログラム・ユニット内の特定のソース行に関連付けます。デバッグ・トリガーを検出すると、Reports Builderはデバッグ・トリガー・コードを実行します。

デバッグ・トリガーを作成して、次のいずれかの場合のデバッグ時にPL/SQLコードのブロックを実行します。

デバッグ・トリガーは、特に条件付きブレークポイントとして有効です。トリガー内から例外DEBUG/BREAKをコールできます。たとえば、次のデバッグ・トリガーは、my_procの行10に条件付きブレークポイントを設定します。これは、ローカルNUMBER変数my_salが5,000を超えた場合にのみ条件と一致します。

PL/SQL>line 10 is
+> IF Debug.Getn('my_sal') > 5000 THEN
+> Raise Debug.Suspend;
+> END IF;

2.10.5.1 デバッグ・アクションの作成について

PL/SQLインタプリタでは、次の方法で、デバッグ・アクション(ブレーク・ポイントとデバッグ・トリガー)を作成できます。

デバッグ・アクションを作成する場合、実行可能なプログラム・ユニットのソース行に、ブレークポイントまたはデバッグ・トリガーを連結します。ソース行は、PL/SQLコンパイラがコードを生成する1つ以上の文が含まれる場合に実行可能とみなされます。たとえば、代入文とプロシージャ・コールが含まれたソース行は実行可能ですが、コメント、空白行、宣言またはNULL文が含まれたソース行は実行可能ではありません。

関連項目

第3.14.3項「ブレークポイントの設定」

第3.14.4項「デバッグ・トリガーの設定」

2.10.6 現在の実行位置について

現在の実行位置は、実行する次のPL/SQLソース行を指定します。これは、一般にプログラム・カウンタ(PC)と呼ばれているものに相当します。

プログラムの実行中に制御がPL/SQLインタプリタに渡された場合(たとえば、ブレークポイントに達した場合やステップ実行で行っている場合)、PL/SQLインタプリタの「ソース」ペインには、現在の実行位置に対応するソース行が自動的に表示されます。

現在の実行位置を手動で表示するには、「インタプリタ」ペインでLISTコマンドを使用します。

たとえば、次のように入力します。

.LIST PC

これで、「ソース」ペインに現在の実行位置が表示されます。

2.10.7 現在のスコープ位置について

現在のスコープ位置は、PL/SQLインタプリタがローカル変数およびパラメータを検索する場所を指示します。この位置は、スタック上での1つのPL/SQLサブプログラムの現在の実行位置に対応します。

プログラム・ユニットの実行が中断するたびに(たとえば、デバッグ・アクションによって)、スコープ位置はスタックの一番下にあるサブプログラムの実行位置に初期化されます。

実行が中断された後で、現在のスコープ位置を、スタック上の別の枠に変更できます。これにより、呼び出し連鎖内の別のサブプログラムのローカル変数を表示できます。

関連項目

第3.14.14項「現行のスコープ位置の表示」

2.10.8 デバッグ・レベルについて

デバッグ・アクションがプログラムの実行を中断すると、PL/SQLインタプリタが制御を受け取り、デバッグ・レベルを設定します。デバッグ・レベルでは、コマンドやPL/SQL文を入力し、中断されたプログラムの状態を検査および変更したり、実行を再開したりできます。

デバッグ・レベルでインタラクティブに入力したPL/SQLコード自体も中断できるので(たとえば、別のブレークポイントを検出した場合)、デバッグ・レベルをネストすることができます。デバッグ・レベルを区別しやすくするため、レベルには番号が付けられます。最も深くネストされたレベルには、一番大きな番号が割り当てられます。番号は、最も外側のレベルでゼロから始まります。

0番または最も外側のレベルは通常、トップ・レベルと呼ばれます。トップ・レベルは、プログラム・ユニットが最初にコールされた最も外側のレベルであるため、関連付けられたプログラム状態はありません。トップ・レベルからコールされたコードが中断された場合、デバッグ・レベル1が設定されます。同様に、デバッグ・レベル1からコールされたコードが中断されると、デバッグ・レベル2が設定され、後に続きます。

PL/SQLインタプリタのコマンド・プロンプトには現在のデバッグ・レベルが反映されます。PL/SQLインタプリタがトップ・レベルより下のレベルへ入ると、プロンプトには、現在のデバッグ・レベル番号を含むプリフィックスが表示されます。たとえば、PL/SQLインタプリタのコマンド・プロンプトは、デバッグ・レベル1で次のように表示されます。

(debug 1)PL/SQL>

2.10.9 実行時のコード変更について

実行時に、現在のスタック上にない任意のプログラム・ユニット、メニュー項目コマンドまたはトリガーを変更し、コンパイルできます。


注意

現在のスタック上の項目を変更するには、最初にRESETコマンドを発行してスタックをクリアする必要があります。 


実行時のコード変更はReports Builderには通知されませんが、最終的な修正の実装へ戻る前に、可能な修正をインタラクティブにテストすることができます。

関連項目

第3.14.13項「実行時におけるコードの変更」


戻る 次へ
Oracle
Copyright © 2003, 2005 Oracle.

All Rights Reserved.
目次
目次
索引
索引