Oracle® Fusion Middleware

Oracle Reportsレポート作成のためのユーザーズ・ガイド

11gリリース1 (11.1.1)

B61376-03(原本部品番号:B32122-03)

2013年7月

Oracle Fusion Middleware Oracle Reportsレポート作成のためのユーザーズ・ガイド, 11gリリース1 (11.1.1)

B61376-03

Copyright © 2003, 2013, Oracle and/or its affiliates.   All rights reserved.

原本主著者: Swati Thacker

協力者: Ingrid Snedecor、Gururaj B S、Rohit Marwaha、Ratheesh Pai、Rajesh Ramachandran、Rajiv Malhotra、Prabakara Reddy、Balaravikumar Shanmugasundaram、Suma Shanthappa、Navneet Singh、Hariharan Srinivasan、Vidya Viswanathan、Philipp Weckerle、Vikram Nanda、Pankaj Yadav、Vinod Murthy、Usha M P

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントが、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供される場合は、次のNoticeが適用されます。

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.   As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、このソフトウェアまたはハードウェアを安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、他社の商標の可能性があります。

このソフトウェアおよびドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

目次

例一覧

図一覧

表一覧

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

- サンプル・レポートへのアクセス

- データ・ソースへのアクセス

1 基本的な概念

- 1.1 Oracle Reports Builder

- 1.1.1 Oracle Reports Builderについて

- 1.1.2 このリリースについて

- 1.2 レポート

- 1.2.1 レポートについて

- 1.2.1.1 レポート・ウィザードを使用した新規レポートの作成

- 1.2.1.2 手動での新規レポートの作成

- 1.2.2 Webレポートについて

- 1.3 レポート・スタイル

- 1.3.1 表形式レポートについて

- 1.3.2 グループ上レポートについて

- 1.3.3 グループ左レポートについて

- 1.3.4 フォーム形状レポートについて

- 1.3.5 フォーム・レター・レポートについて

- 1.3.6 メール・ラベル・レポートについて

- 1.3.7 マトリックス・レポートについて

- 1.3.7.1 マトリックス・データ・モデル

- 1.3.7.2 マトリックスのレイアウト

- 1.4 ウィザード

- 1.4.1 レポート・ウィザードについて

- 1.4.2 レポート・ブロック・ウィザードについて

- 1.4.3 データ・ウィザードについて

- 1.4.4 グラフおよびグラフ・ウィザードについて

- 1.5 オブジェクト・ナビゲータ

- 1.5.1 オブジェクト・ナビゲータについて

- 1.5.2 オブジェクト・ナビゲータのビューについて

- 1.6 レポート・エディタ

- 1.6.1 レポート・エディタについて

- 1.6.2 データ・モデル・ビューについて

- 1.6.3 ペーパー・レイアウト・ビューについて

- 1.6.4 ペーパー・デザイン・ビューについて

- 1.6.5 ペーパー・パラメータ・フォーム・ビューについて

- 1.6.6 Webソース・ビューについて

- 1.6.7 ツール・パレットおよびツールバーについて

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

- 1.7.1 問合せについて

- 1.7.2 グループについて

- 1.7.3 データベース列について

- 1.7.4 データ・リンクについて

- 1.7.5 クエリー・ビルダーについて

- 1.8 レイアウト・オブジェクト

- 1.8.1 枠について

- 1.8.2 繰返し枠について

- 1.8.3 枠と繰返し枠のサイズ変更について

- 1.8.4 フィールドについて

- 1.8.5 ボイラープレート・オブジェクトについて

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

- 1.9.1 パラメータについて

- 1.9.2 パラメータ・フォーム・フィールドについて

- 1.9.3 パラメータ・フォーム・ボイラープレートについて

- 1.9.4 Webレポートのパラメータ・フォームについて

- 1.10 プロパティ・インスペクタ

- 1.10.1 プロパティ・インスペクタについて

- 1.10.1.1 プロパティ・インスペクタでの複数選択について

- 1.11 実行時ビュー

- 1.11.1 ランタイム・パラメータ・フォームについて

- 1.11.2 プレビューアについて

- 1.12 Oracle Reportsコンポーネント

2 拡張概念

- 2.1 レポート

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

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

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

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

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

- 2.1.6 条件付き書式について

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

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

- 2.2 Webレポート

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

- 2.2.1.1 Oracle ReportsでのJSPの使用

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

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

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

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

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

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

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

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

- 2.2.8 ブックマークについて

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

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

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

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

- 2.3.1 サマリー列について

- 2.3.2 式列について

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

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

- 2.3.4.1 バインド参照について

- 2.3.4.2 字句参照について

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

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

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

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

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

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

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

- 2.4.3 イメージについて

- 2.4.4 アンカーについて

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

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

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

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

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

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

- 2.6 PL/SQL

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

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

- 2.6.3 構文パレットについて

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

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

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

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

- 2.6.8 式について

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

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

- 2.6.11 DMLとDDLについて

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

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

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

- 2.6.13 トリガーについて

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

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

- 2.6.13.3 検証トリガーについて

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

- 2.7 テンプレート

- 2.7.1 テンプレートについて

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

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

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

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

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

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

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

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

- 2.8.3.1 DSTファイルについて

- 2.8.4 プラガブル宛先について

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

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

- 2.8.7 レポートのXMLについて

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

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

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

- 2.8.10 PDF出力について

- 2.8.11 RTF出力について

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

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

- 2.8.14 テキスト出力について

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

- 2.9 データ・ソース

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

- 2.9.2 Oracle Net Servicesについて

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

- 2.9.4 Oracle Call Interface (OCI)について

- 2.10 デバッグ・ツール

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

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

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

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

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

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

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

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

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

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

3 ビジュアル索引

- 3.1 第1部: 基本的なレポートの作成

- 3.1.1 表形式レポートの作成

- 3.1.2 メール・ラベル・レポートの作成

- 3.1.3 フォーム・レター・レポートの作成

- 3.1.4 マスター/マスター・レポートの作成

- 3.1.5 サマリー・レポートの作成

- 3.2 第2部: グループ・レポートの作成

- 3.2.1 1つの問合せを使用したグループ・レポートの作成

- 3.2.2 2つの問合せを使用したグループ・レポートの作成

- 3.2.3 横グループ・レポートの作成

- 3.2.4 グループ左サマリー・レポートの作成

- 3.2.5 グループ左式レポートの作成

- 3.3 第3部: 特別な書式設定を含むレポートの作成

- 3.3.1 ラップ・フィールド・レポートの作成

- 3.3.2 ヘッダー/フッター付レポートの作成

- 3.3.3 データベース値を使用したヘッダー付レポートの作成

- 3.3.4 グラフィック、テキストおよびカラーを使用したレポートの作成

- 3.3.5 繰返し枠ごとにページ番号をリセットするレポートの作成

- 3.3.6 混合フィールド・レポートの作成

- 3.3.7 ラベルを非表示にするレポートの作成

- 3.3.8 条件付きフォーム・レター・レポートの作成

- 3.3.9 条件付きハイライトを使用したレポートの作成

- 3.3.10 動的グラフィックを使用したレポートの作成

- 3.4 第4部: マトリックス・レポートの作成

- 3.4.1 マトリックス・レポートの作成

- 3.4.2 ネストしたマトリックス・レポートの作成

- 3.4.3 グループ上マトリックス・レポートの作成

- 3.5 第5部: 業務用レポートの作成

- 3.5.1 時系列計算レポートの作成

- 3.5.2 Microsoft Excel出力へのペーパー・レポートの配布

- 3.5.3 集約データを使用したレポートの作成

- 3.5.4 金額がスペル表記された請求書印刷レポートの作成

- 3.5.5 印刷済フォームを使用したレポートの作成

- 3.5.6 請求書レポートの作成

- 3.5.7 ランキング・レポートの作成

- 3.5.8 単純な目次と索引を使用したレポートの作成

- 3.5.9 複数階層の目次を使用したレポートの作成

- 3.5.10 レポートの一括処理と配布

- 3.5.11 PDF出力用のマルチバイト・キャラクタを含むレポートの作成

- 3.6 第6部: PL/SQLとJavaを使用したレポートの作成

- 3.6.1 PL/SQLレポートの作成

- 3.6.2 REFカーソルを使用したペーパー・レポートの作成

- 3.6.3 JSPベースのWebレポートに対する単純なパラメータ・フォームの作成

- 3.6.4 バーコードを使用したレポートの作成

- 3.6.5 アクセス可能なJSPベースのWebレポートの作成

- 3.7 第7部: プラガブル・データ・ソースを使用したレポートの作成

- 3.7.1 XMLプラガブル・データ・ソースを使用したレポートの作成

- 3.7.2 テキスト・プラガブル・データ・ソースを使用したレポートの作成

- 3.8 サマリー

4 方法

- 4.1 Oracle Reportsのドキュメントへのアクセス

- 4.1.1 Oracle Reportsオンライン・ヘルプの使用

- 4.1.2 他のドキュメントの検索

- 4.2 プロパティと環境設定の設定

- 4.2.1 プロパティ・インスペクタの表示

- 4.2.2 レポートのプロパティの設定

- 4.2.3 レポートの環境設定の設定

- 4.2.3.1 自動保存機能の使用

- 4.2.4 オブジェクト・ナビゲータの環境設定の設定

- 4.2.5 ASCII(キャラクタ・モード)レポートのプロパティの設定

- 4.2.6 カラー・パレットの環境設定の設定

- 4.2.7 複数オブジェクトのプロパティの設定

- 4.2.8 オブジェクトどうしのプロパティの比較

- 4.3 共通タスクの実行

- 4.3.1 データベースへの接続

- 4.3.2 レポートを開く

- 4.3.3 レポートの保存

- 4.3.4 レポートのコピー

- 4.3.5 レポート名の変更

- 4.3.6 レポートの削除

- 4.3.7 オブジェクトの選択と選択解除

- 4.3.7.1 単一オブジェクトの選択

- 4.3.7.2 複数オブジェクトの選択

- 4.3.7.3 枠に囲まれたオブジェクトの選択

- 4.3.7.4 グループ化されたオブジェクトの選択

- 4.3.7.5 レポート領域内のすべてのオブジェクトの選択

- 4.3.7.6 オーバーラップしたオブジェクトの選択

- 4.3.7.7 単一オブジェクトの選択解除

- 4.3.7.8 複数オブジェクトの選択解除

- 4.3.8 オブジェクトの削除

- 4.4 オブジェクト・ナビゲータの操作

- 4.4.1 オブジェクト・ナビゲータからのレポート・エディタのビューの表示

- 4.4.2 ノードの開閉

- 4.4.3 ノードの検索

- 4.4.4 オブジェクト・ナビゲータの表示の変更

- 4.4.5 オブジェクト・ナビゲータの環境設定の設定

- 4.5 レポートの操作

- 4.5.1 レポートの作成

- 4.5.2 複数問合せのグループ上レポートの作成

- 4.5.3 ネストしたマトリックス・レポートの作成

- 4.5.4 レポートのデフォルト・レイアウトの作成

- 4.5.5 追加のレポート・レイアウトの作成

- 4.5.6 レポートへのタイトルの追加

- 4.5.7 レポートへの目次の追加

- 4.5.8 レポートへの索引の追加

- 4.5.9 ASCII(キャラクタ・モード)レポートの作成

- 4.5.10 複数プラットフォーム・レポートの準備

- 4.5.11 レポートを他の言語に翻訳するための準備

- 4.6 Webレポートの操作

- 4.6.1 Webレポートの作成

- 4.6.2 Webレポートのソース・コードの表示

- 4.6.3 既存のWebページ(HTMLファイル)へのレポート・データの追加

- 4.6.4 Webページへのレポート・ブロックの追加

- 4.6.5 イメージの追加

- 4.6.6 グラフの追加

- 4.6.7 グラフの編集

- 4.6.8 グラフ・ハイパーリンクの追加

- 4.6.9 ペーパーベースのレポートのWeb用の準備

- 4.6.10 ペーパーベースのレポートへのWebリンクの追加

- 4.6.10.1 ユーザー・インタフェースの使用

- 4.6.10.2 PL/SQLの使用

- 4.7 レポートの実行と出力

- 4.7.1 ユーザー・インタフェースからのレポートの実行と出力

- 4.7.2 コマンドラインからのレポートの実行

- 4.7.3 コマンド・ファイルを使用したレポートの実行

- 4.7.4 リモートのReports Serverでのレポートの実行

- 4.7.5 HTMLまたはHTMLCSS出力の生成

- 4.7.6 PDF出力の生成

- 4.7.7 XML出力の生成

- 4.7.8 RTF出力の生成

- 4.7.9 テキスト出力の生成

- 4.7.10 デリミタ付き出力の生成

- 4.7.11 拡張スプレッドシート出力の生成

- 4.7.12 複数の宛先へのレポートの配布

- 4.7.13 レポートの配布

- 4.7.14 印刷方向の変更

- 4.7.15 パラメータ・フォームの非表示

- 4.7.16 レポート出力の表示

- 4.7.16.1 印刷可能領域の表示

- 4.7.16.2 ペーパー・デザイン・ビューでのレポート出力の表示

- 4.7.16.3 プレビューアでのレポート出力の表示

- 4.7.16.4 Webブラウザでのレポート出力の表示

- 4.7.16.5 HTMLレポート出力の各ページの表示

- 4.7.16.6 スクロールとページング

- 4.7.16.7 表示領域の分割

- 4.7.16.8 出力の拡大または縮小

- 4.7.17 レポートの印刷

- 4.7.17.1 ペーパー・デザイン・ビューまたはペーパー・レイアウト・ビューでのレポートの印刷

- 4.7.17.2 プレビューアでのレポートの印刷

- 4.7.17.3 Webブラウザでのレポートの印刷

- 4.7.17.4 印刷済フォームでのレポートの印刷

- 4.7.17.5 プリンタ・トレーの切替え

- 4.7.17.6 UNIXでのレポートの印刷

- 4.7.18 電子メールによるレポートの送信

- 4.8 データ・モデルの操作

- 4.8.1 問合せの作成

- 4.8.1.1 問合せの作成: レポート・ウィザード

- 4.8.1.2 問合せの作成: データ・ウィザード

- 4.8.1.3 問合せの作成: SQL問合せツール

- 4.8.1.4 問合せの作成: XML Queryツール

- 4.8.1.5 問合せの作成: JDBC Queryツール

- 4.8.1.6 問合せの作成: Text Queryツール

- 4.8.1.7 問合せの作成: REFカーソル問合せツール

- 4.8.2 問合せの変更

- 4.8.3 クエリー・ビルダーの使用

- 4.8.4 データベースからのHTMLタグの選択

- 4.8.5 データベースからのイメージの選択

- 4.8.6 データベースからのイメージURLの選択

- 4.8.7 ブレーク・グループの作成

- 4.8.8 マトリックス(クロス積)グループの作成

- 4.8.9 データ・リンクの作成

- 4.8.10 式列の作成または編集

- 4.8.11 サマリー列の作成

- 4.8.12 プレースホルダ列の作成または編集

- 4.9 レポート・レイアウトの操作

- 4.9.1 標準レイアウト・オブジェクト

- 4.9.1.1 フィールド・オブジェクトの作成

- 4.9.1.2 枠または繰返し枠の作成

- 4.9.1.3 マトリックス・オブジェクトの作成

- 4.9.1.4 バーコード・フォントを使用したバーコードの作成

- 4.9.1.5 条件付き書式のレイアウト・オブジェクトへの適用

- 4.9.2 テキスト・オブジェクト

- 4.9.2.1 テキストのボイラープレート・オブジェクトの作成

- 4.9.2.2 2ページごとに表示されるテキストのボイラープレート・オブジェクトの作成

- 4.9.2.3 HTMLタグのボイラープレート・テキスト・オブジェクトの作成

- 4.9.2.4 テキストの編集

- 4.9.2.5 ボイラープレート・テキスト内でのフィールドの参照

- 4.9.2.6 ボイラープレート・テキスト・オブジェクトのファイルへのリンク

- 4.9.2.7 HTMLテキスト・オブジェクトのファイルへのリンク

- 4.9.2.8 フィールドのテキストの折返し

- 4.9.2.9 テキスト属性の変更

- 4.9.2.10 PL/SQLを使用したテキスト属性の変更

- 4.9.3 ページ番号または日付/時刻スタンプ

- 4.9.3.1 ページ番号の作成

- 4.9.3.2 ページ番号のリセット

- 4.9.3.3 時刻スタンプまたは日付スタンプの作成

- 4.9.4 境界線

- 4.9.4.1 オブジェクトの境界線の表示または非表示

- 4.9.4.2 オブジェクトの境界線属性の変更

- 4.9.4.3 現行のモード(制限またはフレックス)の変更

- 4.9.5 アンカー

- 4.9.5.1 アンカー・オブジェクトによる連動

- 4.9.5.2 暗黙的なアンカーの表示

- 4.9.5.3 アンカーの移動

- 4.9.6 カラー、パターンおよびハイライト

- 4.9.6.1 カラー・パレットの環境設定の設定

- 4.9.6.2 カラーの変更

- 4.9.6.3 パターンの変更

- 4.9.6.4 PL/SQLを使用したカラーおよびパターンの変更

- 4.9.6.5 カラー・パレットの変更

- 4.9.6.6 カラー・パレットのインポートまたはエクスポート

- 4.9.6.7 値のハイライト

- 4.9.6.8 行のハイライト

- 4.9.6.9 行カラーの交互適用

- 4.9.7 書式マスク

- 4.9.7.1 日付書式マスクおよび時刻書式マスクの指定

- 4.9.7.2 数値書式マスクの指定

- 4.9.7.3 数値オブジェクトへの書式マスクの適用

- 4.9.7.4 日付オブジェクトへの書式マスクの適用

- 4.9.7.5 カスタム書式マスクの追加

- 4.9.7.6 複数のフィールドの書式マスクの変更

- 4.9.8 グラフィック・オブジェクトまたはイメージ・オブジェクト

- 4.9.8.1 イメージの追加

- 4.9.8.2 グラフの追加

- 4.9.8.3 グラフの編集

- 4.9.8.4 グラフ・ハイパーリンクの追加

- 4.9.8.5 描画オブジェクトの作成

- 4.9.9 ページまたはグループのヘッダーとフッター

- 4.9.9.1 テキスト・ヘッダーの作成

- 4.9.9.2 データベース値を含むヘッダーの作成

- 4.9.9.3 グループのヘッダーまたはフッターの作成

- 4.9.10 マージン・オブジェクト、ヘッダー・ページ・オブジェクトまたはトレーラ・ページ・オブジェクト

- 4.9.10.1 マージン・オブジェクトの作成

- 4.9.10.2 ヘッダー・ページ・オブジェクトまたはトレーラ・ページ・オブジェクトの作成

- 4.9.11 オブジェクトの移動

- 4.9.11.1 複数オブジェクトの移動

- 4.9.11.2 オブジェクトの親の外への移動

- 4.9.11.3 親の境界線の自動調整

- 4.9.11.4 レポート出力の列の移動

- 4.9.11.5 グループ・レポートのディテール・オブジェクトのオフセット

- 4.9.11.6 オブジェクトの整列

- 4.9.11.7 オブジェクトのレイヤーの変更

- 4.9.11.8 ボイラープレート・オブジェクトの回転

- 4.9.12 オブジェクトのサイズ変更

- 4.9.12.1 オブジェクトのサイズ変更

- 4.9.12.2 複数オブジェクトの同一サイズ化

- 4.9.12.3 オブジェクトの境界線のサイズ変更

- 4.9.13 間隔の変更

- 4.9.13.1 列のラベルまたは幅の変更

- 4.9.13.2 テキスト・オブジェクト内の間隔の変更

- 4.9.13.3 デフォルトのレイアウト間隔の変更

- 4.9.13.4 すべての行の間の間隔の変更

- 4.9.13.5 行のグループ間への空白行の追加

- 4.9.14 ページ・レイアウトの変更

- 4.9.14.1 マージンの調整

- 4.9.14.2 改ページの追加

- 4.10 レポート・セクションの操作

- 4.10.1 セクションのレイアウト・ビューの表示

- 4.10.2 セクションのデフォルト・レイアウトの作成

- 4.11 パラメータとパラメータ・フォームの操作

- 4.11.1 事前定義されたシステム・パラメータの使用

- 4.11.2 ユーザー・パラメータの作成

- 4.11.3 パラメータの値リスト(LOV)の作成

- 4.11.4 実行時におけるパラメータ値の検証

- 4.11.5 デフォルト・パラメータ・フォームの作成

- 4.11.6 ランタイム・パラメータ・フォームに追加するパラメータの選択

- 4.11.7 実行時におけるパラメータ・フォームの表示

- 4.11.8 ランタイム・パラメータ・フォームへのページの追加

- 4.11.9 バッチ・モードで実行中のレポートへのパラメータ渡し

- 4.11.10 PL/SQLを使用したHTMLパラメータ・フォーム・ヘッダーの作成

- 4.11.11 PL/SQLを使用したHTMLパラメータ・フォーム・フッターの作成

- 4.11.12 HTMLパラメータ・フォームの入力イベントまたは選択イベントの作成

- 4.11.13 HTMLパラメータ・フォームの入力の大文字への変更

- 4.12 テンプレートの定義

- 4.12.1 テンプレートの作成

- 4.12.2 デフォルトのテンプレート属性の定義

- 4.12.3 上書きテンプレート属性の定義

- 4.12.4 レポートへのテンプレートの適用

- 4.12.5 テンプレートのレポート・タイトルのフォーマット

- 4.12.6 テンプレートへの項目とオブジェクトの追加

- 4.12.7 テンプレートのマージンでのオブジェクトの変更

- 4.12.8 テンプレートの本体オブジェクトのカラー、パターンまたは境界線の変更

- 4.12.9 事前定義テンプレートのリストへのテンプレートの追加

- 4.12.10 レポート・ポートレットのHTMLテンプレートの作成

- 4.13 レポートまたはテンプレートでのPL/SQLの使用

- 4.13.1 ビルトイン・パッケージの使用

- 4.13.2 PL/SQLエディタの操作

- 4.13.2.1 PL/SQLの定義

- 4.13.2.2 プログラム・ユニット内のテキストの検索および置換

- 4.13.2.3 プログラム・ユニットの編集

- 4.13.2.4 PL/SQLエディタへの構文の挿入

- 4.13.3 レポートレベルまたはテンプレートレベルのPL/SQLの作成または編集

- 4.13.3.1 ローカル・プログラム・ユニットの作成

- 4.13.3.2 ストアド・プログラム・ユニットの作成

- 4.13.3.3 プログラム・ユニットの削除

- 4.13.3.4 クライアントとデータベース・サーバー間でのプログラム・ユニットの移動

- 4.13.3.5 レポート・トリガーの作成

- 4.13.3.6 レポート・トリガーの削除

- 4.13.3.7 データベース・トリガーの作成

- 4.13.4 オブジェクトレベルのPL/SQLの作成または編集

- 4.13.4.1 フォーマット・トリガーの作成または編集

- 4.13.4.2 グループ・フィルタの作成または編集

- 4.13.4.3 式列の作成または編集

- 4.13.4.4 プレースホルダ列の作成

- 4.13.4.5 PL/SQLを使用したカラーおよびパターンの変更

- 4.13.5 外部PL/SQLライブラリの作成または編集

- 4.13.5.1 外部PL/SQLライブラリの作成

- 4.13.5.2 開いているライブラリへのプログラム・ユニットの追加

- 4.13.5.3 PL/SQLライブラリでのプログラム・ユニットの編集

- 4.13.5.4 PL/SQLライブラリからのプログラム・ユニットの削除

- 4.13.5.5 PL/SQLライブラリの連結

- 4.13.5.6 外部PL/SQLライブラリの変換

- 4.13.6 プログラム・ユニットのコンパイルおよび実行

- 4.13.6.1 単一プログラム・ユニットのコンパイル

- 4.13.6.2 すべてのプログラム・ユニットのコンパイル

- 4.13.6.3 すべてのコンパイルされていないプログラム・ユニットのコンパイル

- 4.14 レポートのデバッグ

- 4.14.1 レポートのデバッグ

- 4.14.2 デバッグ・モードでのレポートの実行

- 4.14.3 ブレークポイントの設定

- 4.14.4 デバッグ・トリガーの設定

- 4.14.5 デバッグ・アクションの参照

- 4.14.6 デバッグ・アクションの編集

- 4.14.7 デバッグ・アクションの無効化と有効化

- 4.14.8 デバッグ・アクションの削除

- 4.14.9 PL/SQLインタプリタでのプログラム・ユニットの実行

- 4.14.10 PL/SQLインタプリタへの「ナビゲータ」ペインの挿入

- 4.14.11 プログラム・ユニットの実行の制御

- 4.14.12 コードのステップ・スルー

- 4.14.13 実行時におけるコードの変更

- 4.14.14 現行のスコープ位置の表示

- 4.14.15 ローカル変数のチェックまたは変更

- 4.14.16 アプリケーション変数の変更

- 4.14.17 サブプログラム参照の表示

- 4.14.18 レポートの実行のトレース

- 4.14.19 レポートの配布のトレース

- 4.14.20 SQL TRACEファンクションを使用したトレース

- 4.14.20.1 ユーザーレベル・トレースの実行

- 4.14.20.2 システムレベル・トレースの実行

- 4.15 他の製品との統合

- 4.15.1 Oracle Portalでのレポートの公開

- 4.15.1.1 Oracle Portalでのアイテム・リンクとしてのレポートの実行

- 4.15.2 Oracle以外のデータ・ソースへのアクセス

- 4.16 Oracle Reports Builderの管理

- 4.16.1 データベース・ロールの設定

- 4.16.2 別のフォーマットへの変換

- 4.16.3 SQL文を使用したパフォーマンスの改善

- 4.16.4 WHERE句を使用したパフォーマンスの改善

第I部 基本的なレポートの作成

5 表形式レポートの作成

- 5.1 この例の前提条件

- 5.2 レポート・ウィザードを使用したレポートの作成

- 5.3 サマリー

6 メール・ラベル・レポートの作成

- 6.1 この例の前提条件

- 6.2 レポート・ウィザードを使用したメール・ラベル・レポートの作成

- 6.3 垂直間隔の追加

- 6.4 サマリー

7 フォーム・レター・レポートの作成

- 7.1 この例の前提条件

- 7.2 レポート・ウィザードを使用したフォーム・レター・レポートの作成

- 7.3 サマリー

8 マスター/マスター・レポートの作成

- 8.1 この例の前提条件

- 8.2 手動での新規レポートの作成

- 8.3 データ・ウィザードを使用した2つの問合せの作成

- 8.4 レポート・ウィザードを使用したデータのレイアウト

- 8.5 ペーパー・レイアウト・ビューを使用した空白の追加

- 8.6 フィールドの書式設定

- 8.7 サマリー

9 サマリー・レポートの作成

- 9.1 この例の前提条件

- 9.2 データ・モデルとグループ上レイアウトの作成

- 9.3 フィールドの書式設定

- 9.4 サマリー列のプロパティのチェック(オプション)

- 9.5 サマリー

第II部 グループ・レポートの作成

10 1つの問合せを使用したグループ・レポートの作成

- 10.1 この例の前提条件

- 10.2 ブレーク列が1つあるグループ・レポート

- 10.2.1 ブレーク・グループを含むデータ・モデル、およびグループ左レイアウトの作成

- 10.2.2 フィールドの書式設定

- 10.2.3 プロパティ・インスペクタを使用した空白の追加

- 10.3 ブレーク列が2つあるグループ・レポート

- 10.3.1 データ・モデルの変更

- 10.3.2 レイアウトのデフォルトの再設定

- 10.4 ブレーク・グループが2つあるグループ・レポート

- 10.4.1 データ・モデルの変更

- 10.4.2 レイアウトのデフォルトの再設定

- 10.5 サマリー

11 2つの問合せを使用したグループ・レポートの作成

- 11.1 この例の前提条件

- 11.2 手動での新規レポートの作成

- 11.3 データ・リンクを含むデータ・モデルの作成

- 11.4 レポート・ウィザードを使用したデータのレイアウト

- 11.5 フィールドの書式設定

- 11.6 サマリー

12 横グループ・レポートの作成

- 12.1 この例の前提条件

- 12.2 2つの問合せの作成

- 12.3 デフォルト・レイアウトの作成

- 12.4 ペーパーを対象としたレポートの実行

- 12.5 サマリー

13 グループ左サマリー・レポートの作成

- 13.1 この例の前提条件

- 13.2 手動での新規レポートの作成

- 13.3 データ・リンクを含むデータ・モデルの作成

- 13.4 ペーパー・レイアウト・ビューによる2つのレイアウトの作成

- 13.5 2つのレイアウトのマージ

- 13.6 フィールドの書式設定

- 13.7 サマリー

14 グループ左の式レポートの作成

- 14.1 この例の前提条件

- 14.2 レポート・ウィザードを使用した単純なレポートの作成

- 14.3 2つの式列の作成

- 14.3.1 税金を計算するための式列の作成

- 14.3.2 顧客の発注合計額を計算する式列の作成

- 14.3.3 レポート・レイアウトへの式列の追加

- 14.4 サマリー

第III部 特別な書式設定を含むレポートの作成

15 ラップ・フィールド・レポートの作成

- 15.1 この例の前提条件

- 15.2 データ・モデル・ビューでの問合せの作成

- 15.3 3つのサマリー列の作成

- 15.4 レポート・ウィザードを使用したデフォルト・レイアウトの作成

- 15.5 レポートのレイアウトの変更

- 15.6 ペーパーを対象としたレポートの実行

- 15.7 サマリー

16 ヘッダー/フッター付レポートの作成

- 16.1 この例の前提条件

- 16.2 データ・モデルとグループ左レイアウトの作成

- 16.3 サマリーの移動

- 16.4 ページ・ヘッダーの追加

- 16.5 空白の追加とフィールドの書式設定

- 16.6 サマリー

17 データベース値を使用したヘッダー付レポートの作成

- 17.1 この例の前提条件

- 17.2 データ・モデルとグループ左レイアウトの作成

- 17.3 ヘッダー・データ用のサマリー列の追加

- 17.4 ページ・ヘッダーの追加

- 17.5 サマリー

18 グラフィック、テキストおよびカラーを使用したレポートの作成

- 18.1 この例の前提条件

- 18.2 簡単なレポート定義の作成

- 18.3 ペーパー・レイアウト・ビューでのレポートの変更

- 18.3.1 レポートの周囲への境界線の追加

- 18.3.2 フォントのサイズとスタイルの変更

- 18.3.3 レポートへの箇条書きのドットの追加

- 18.3.4 各レコード間の線の表示

- 18.3.5 レポートへのタイトルの追加

- 18.4 サマリー

19 繰返し枠ごとにページ番号をリセットするレポートの作成

- 19.1 この例の前提条件

- 19.2 データ・モデルとグループ上レイアウトの作成

- 19.3 2番目の問合せの追加

- 19.4 レイアウトのデフォルトの再設定

- 19.5 プロパティの設定とフィールドの書式設定

- 19.6 新しいフィールドの作成

- 19.7 フィールドの参照

- 19.8 サマリー

20 混合フィールド・レポートの作成

- 20.1 この例の前提条件

- 20.2 データ・モデルとレイアウトの作成

- 20.3 式列の追加

- 20.4 フィールドの追加

- 20.5 冗長なフィールドの削除

- 20.6 冗長な値の抑止

- 20.7 サマリー

21 ラベルを非表示にするレポートの作成

- 21.1 この例の前提条件

- 21.2 2つの問合せをリンクしたデータ・モデルの作成

- 21.3 式列とサマリー列の作成

- 21.3.1 ディテール問合せ内の式列の作成

- 21.3.2 マスター問合せ内のサマリー列の作成

- 21.4 レポート・レイアウトの作成

- 21.4.1 レポートの初期レイアウトの作成

- 21.5 ラベルを非表示にするフォーマット・トリガーの追加

- 21.6 レコードがないときに表示するテキストの追加

- 21.7 サマリー

22 条件付きハイライトを使用したレポートの作成

- 22.1 この例の前提条件

- 22.2 基本的な表形式レポートの作成

- 22.3 レポートへの条件付き書式の追加

- 22.4 条件付きフォーマット・トリガーのコードの検証

- 22.5 サマリー

23 条件付きフォーム・レター・レポートの作成

- 23.1 この例の前提条件

- 23.2 データ・モデルとレイアウトの作成

- 23.3 テキストの追加

- 23.4 テキストのロジックの追加

- 23.5 サマリー

24 動的グラフィックを使用したレポートの作成

- 24.1 この例の前提条件

- 24.1.1 データ・ソースへのアクセスとPictures表のインストール

- 24.1.2 レポートで使用するグラフィック

- 24.2 2つの問合せをリンクしたデータ・モデルの作成

- 24.3 レポートのレイアウトの作成

- 24.3.1 レポート・ウィザードを使用したレポートの初期レイアウトの作成

- 24.3.2 レポートのレイアウトの変更

- 24.4 ペーパーを対象としたレポートの実行

- 24.5 サマリー

第IV部 マトリックス・レポートの作成

25 マトリックス・レポートの作成

- 25.1 この例の前提条件

- 25.2 単一問合せマトリックスの作成

- 25.3 複数問合せマトリックスの作成

- 25.3.1 手動での新規レポートの作成

- 25.3.2 クロス積とデータ・リンクを含むデータ・モデルの作成

- 25.3.3 レポート・ウィザードによるレイアウトの作成

- 25.4 単一問合せマトリックスへのサマリーの追加

- 25.5 金額の書式設定

- 25.6 空白のかわりにゼロを追加

- 25.7 グリッドの追加

- 25.8 サマリー

26 ネストしたマトリックス・レポートの作成

- 26.1 この例の前提条件

- 26.2 単一問合せマトリックスの作成

- 26.3 複数問合せマトリックスの作成

- 26.3.1 手動での新規レポートの作成

- 26.3.2 クロス積とデータ・リンクを含むデータ・モデルの作成

- 26.3.3 レポート・ウィザードによるレイアウトの作成

- 26.4 ブレークを含む複数問合せマトリックスの作成

- 26.4.1 手動での新規レポートの作成

- 26.4.2 クロス積とデータ・リンクを含むデータ・モデルの作成

- 26.4.3 レポート・ウィザードによるレイアウトの作成

- 26.5 金額の書式設定

- 26.6 サマリー

27 グループ上マトリックス・レポートの作成

- 27.1 この例の前提条件

- 27.2 マトリックス・グループのデータ・モデルとレイアウトの作成

- 27.3 サマリーのラベルと線の追加

- 27.4 グループ間への空白の追加

- 27.5 Webレイアウトの作成

- 27.6 サマリー

第V部 業務用レポートの作成

28 時系列計算レポートの作成

- 28.1 この例の前提条件

- 28.2 問合せとレイアウトの作成

- 28.3 JSPレポートのWebソースの変更

- 28.4 サマリー

29 拡張スプレッドシート出力のレポートの作成

- 29.1 この例の前提条件

- 29.2 問合せとレイアウトの作成

- 29.3 JSPレポートのWebソースの変更

- 29.4 Microsoft Excelで表示するためのJSPレポートに対する変更

- 29.5 サマリー

30 集約データを使用したレポートの作成

- 30.1 この例の前提条件

- 30.2 問合せとレイアウトの作成

- 30.3 JSPレポートのWebソースの変更

- 30.4 サマリー

31 金額がスペル表記された請求書印刷レポートの作成

- 31.1 この例の前提条件

- 31.2 レポート・ウィザードによるレポートの作成

- 31.3 スペル表記された請求書金額を返す式列の作成

- 31.3.1 PL/SQLファンクションの作成

- 31.3.2 データ・モデルでの式列の作成

- 31.4 注文の品目を返す問合せの作成

- 31.5 請求書イメージのインポートと印刷用のフィールドの配置

- 31.5.1 レイアウト・オブジェクトの再配置

- 31.5.2 空白の請求書イメージのインポート

- 31.5.3 請求書印刷用フィールドの設定

- 31.5.4 空白の請求書イメージに合せた新規フィールドの再配置

- 31.5.5 請求書のルック・アンド・フィールの変更

- 31.6 支払い情報および注文詳細情報を備えた請求書のスタブの作成

- 31.6.1 ペーパー・デザイン・ビューでの請求書のスタブの作成

- 31.6.2 請求書のスタブへの注文詳細情報の追加

- 31.7 サマリー

32 印刷済フォームを使用したレポートの作成

- 32.1 この例の前提条件

- 32.2 レポートのデータ・モデルの手動作成

- 32.2.1 問合せの作成

- 32.2.2 データ・モデルの変更

- 32.3 レポートのレイアウトの作成

- 32.3.1 レポート・レイアウトの設定

- 32.3.2 フォームの住所ラベルの作成

- 32.3.3 レポートへの注文品目詳細情報の追加

- 32.3.4 レイアウトの調整とサマリーの追加

- 32.4 ペーパー・デザイン・ビューでのレポートのフォーマット

- 32.5 ページ番号の追加(オプション)

- 32.6 サマリー

33 請求書レポートの作成

- 33.1 この例の前提条件

- 33.2 手動での新規レポートの作成

- 33.3 データ・リンクを含むデータ・モデルの作成

- 33.4 サマリー列と式列の作成

- 33.5 レイアウトの準備

- 33.6 請求書情報の挿入

- 33.7 サマリー

34 ランキング・レポートの作成

- 34.1 この例の前提条件

- 34.2 データ・モデルと表形式のレイアウトの作成

- 34.3 上位顧客数によるランキング・ロジックの作成

- 34.4 パラメータ用のレイアウト・オブジェクトの追加

- 34.5 パラメータ・フォームの作成

- 34.6 パーセンテージによるランク付けの追加

- 34.7 サマリー

35 単純な目次と索引を使用したペーパー・レポートの作成

- 35.1 この例の前提条件

- 35.2 単純な目次の作成

- 35.2.1 TOCデータを格納するデータベース表の作成

- 35.2.2 グループ上レポートの作成

- 35.2.3 After Parameter Formトリガーとフォーマット・トリガーの作成

- 35.2.3.1 After Parameter Formトリガーの作成

- 35.2.3.2 フォーマット・トリガーの作成

- 35.2.4 データ・モデルでの2番目の問合せの作成

- 35.2.5 目次を表示するレポート・ブロックの作成

- 35.2.6 ペーパーを対象とした単純な目次を使用するレポートの実行

- 35.3 索引の作成

- 35.3.1 索引用の情報を格納するデータベース表の作成

- 35.3.2 フォーマット・トリガーの作成

- 35.3.3 データ・モデルへの問合せの追加

- 35.3.4 トレーラ・セクションに索引を表示するためのレポート・ブロックの作成

- 35.3.5 ペーパーを対象としたレポートの実行

- 35.4 サマリー

36 複数階層の目次を使用したペーパー・レポートの作成

- 36.1 この例の前提条件

- 36.2 TOCデータを格納するデータベース表の作成

- 36.3 After Parameter Formトリガーとフォーマット・トリガーの作成

- 36.3.1 After Parameter Formトリガーの作成

- 36.3.2 フォーマット・トリガーの作成

- 36.4 データ・モデルでの2番目の問合せの作成

- 36.5 目次を表示するレポート・ブロックの作成

- 36.6 ペーパーを対象とした複数階層の目次を使用するレポートの実行

- 36.7 サマリー

37 レポートの一括処理と配布

- 37.1 この例の前提条件

- 37.2 既存のレポートを一括処理するための設定

- 37.3 配布XML定義の編集

- 37.4 レポートの実行

- 37.5 サマリー

38 PDF出力用のマルチバイト・キャラクタを含むレポートの作成

- 38.1 この例の前提条件

- 38.2 マルチバイト・レポートの問合せおよびペーパー・レイアウトの作成

- 38.3 レポートでのマルチバイト・キャラクタの表示

- 38.4 レポートのPDFドキュメントの作成

- 38.5 サマリー

第VI部 PL/SQLとJavaを使用したレポートの作成

39 グラフを使用したレポートの作成

- 39.1 グラフおよびグラフ・ウィザードについて

- 39.2 新機能と利点

- 39.3 新しいタイプのグラフ

- 39.3.1 ファンネル・グラフ

- 39.3.2 曲線グラフまたは近似曲線グラフ

- 39.3.3 拡張円グラフ

40 PL/SQLを含むレポートの作成

- 40.1 この例の前提条件

- 40.2 新しいPL/SQLライブラリの作成

- 40.3 レポート定義の作成

- 40.3.1 問合せの作成

- 40.3.2 ボーナスを計算する式列の作成

- 40.3.3 報酬合計を計算するレポートレベルのファンクションの作成

- 40.3.4 報酬合計用の第2の式列の作成

- 40.4 レポート・ブロック・ウィザードを使用したレポート・レイアウトの作成

- 40.5 レコード間への垂直間隔の追加

- 40.5.1 ユーザー・パラメータの作成

- 40.5.2 レコード数をカウントするサマリー列の作成

- 40.5.3 レイアウトの変更

- 40.5.4 フォーマット・トリガーの作成

- 40.6 ペーパーを対象としたレポートの実行

- 40.7 サマリー

41 REFカーソルを使用したペーパー・レポートの作成

- 41.1 この例の前提条件

- 41.2 REFカーソル型の定義

- 41.3 REFカーソル問合せの作成

- 41.4 データ・モデルの調整

- 41.5 REFカーソル問合せ間のリンクの作成

- 41.6 サマリー列の追加

- 41.7 レイアウトの作成

- 41.8 パッケージへのSELECT文の移動

- 41.9 ライブラリへのパッケージの移動

- 41.10 サマリー

42 JSPベースのWebレポートに対する単純なパラメータ・フォームの作成

- 42.1 この例の前提条件

- 42.2 HTMLでのパラメータ・フォームの作成

- 42.3 Reports BuilderでのHTMLパラメータ・フォームの変更

- 42.3.1 パラメータ・フォームに対するデータ・モデルの手動での作成

- 42.3.2 パラメータ・フォームでの動的LOVの作成

- 42.3.3 パラメータ・フォーム・レポートのWebに対する実行

- 42.4 ターゲット・レポートの設定

- 42.5 JSPパラメータ・フォームとターゲット・レポートの配布

- 42.6 サマリー

43 バーコードを使用したレポートの作成

- 43.1 この例の前提条件

- 43.1.1 REPORTS_CLASSPATH環境変数の更新

- 43.2 ペーパー出力用バーコード・レポートの作成

- 43.2.1 Reports BuilderへのJavaクラスのインポート

- 43.2.2 情報を格納するパッケージの作成

- 43.2.3 Before Reportトリガーの作成

- 43.2.4 データ・モデル・ビューでの問合せの作成

- 43.2.5 バーコード・イメージを取得する式列の作成

- 43.2.6 発注合計額を返す式列の作成

- 43.2.7 レポートのレイアウトの作成

- 43.3 Web用バーコード・レポートの作成

- 43.3.1 既存のHTMLファイルにおける問合せの作成

- 43.3.2 データ・モデルにおける3つの式列の作成

- 43.3.3 バーコードJavaBeanの初期化とそのプロパティの設定

- 43.3.4 Webに対するレポートの実行

- 43.4 サマリー

44 アクセス可能なJSPベースのWebレポートの作成

第VII部 プラガブル・データ・ソースを使用したレポートの作成

45 XMLプラガブル・データ・ソースを使用したレポートの作成

- 45.1 この例の前提条件

- 45.2 SQL問合せとXML問合せを使用したレポートの手動作成

- 45.2.1 新規レポートのSQL問合せの作成

- 45.2.2 XMLデータ・ソースへのアクセスに使用するXML問合せの作成

- 45.2.3 2つの問合せ間のデータ・リンクの作成

- 45.2.4 レポート・ウィザードを使用したレポートのレイアウトの作成

- 45.2.5 レポートの行カラーの交互適用

- 45.2.6 グループ・フィルタを使用したXMLデータのフィルタリング

- 45.3 ペーパーを対象としたレポートの実行

- 45.4 サマリー

46 テキスト・プラガブル・データ・ソースを使用したレポートの作成

- 46.1 この例の前提条件

- 46.2 textpds.confファイルの設定

- 46.3 レポート・ウィザードを使用したレポートの作成

- 46.4 サマリー

A ツール・パレットとツールバーのリファレンス

- A.1 メイン・ツールバー

- A.2 データ・モデル・ビューのツール・パレット

- A.3 ペーパー・レイアウト・ビューのツール・パレット

用語集

索引

例一覧

- 45-1 ネストしているXMLデータ・ファイル

- 45-2 平面化されたXMLデータ・ファイル

- 45-3 対応するネストしているXMLスキーマ・ファイル

- 45-4 対応する平面化されたXMLスキーマ・ファイル

図一覧

- 1-1 マトリックス・レポートの例

- 1-2 マトリックス・データ・モデル

- 1-3 マトリックスの概念

- 1-4 マトリックス・データ・モデルのリレーションシップ

- 1-5 ネストしたマトリックス・レポートのサンプル

- 1-6 マトリックスのサマリーの設定

- 1-7 マトリックスのサマリーの設定

- 1-8 マトリックスのサマリーの設定

- 1-9 マトリックスのレイアウト・モデル・ビュー

- 1-10 同じデータの異なる方法でのフォーマット

- 1-11 互いに関連がない問合せ

- 1-12 サンプルのデータ・リンク

- 1-13 サンプルのデータ・リンクの出力

- 1-14 繰返し枠のサイズ変更

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

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

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

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

- 2-5 子オブジェクトの上に位置する親オブジェクト

- 2-6 子オブジェクトの右に位置する親オブジェクト

- 2-7 他の2つのオブジェクトのプッシュ・パスにあるオブジェクト

- 2-8 Bの上にAがある場合のデリミタ付き出力

- 2-9 繰返し枠を枠で囲んだ場合のデリミタ付き出力

- 2-10 繰返し枠を2つの枠で囲んだ場合のデリミタ付き出力

- 2-11 マトリックスの外にボイラープレートがある場合のデリミタ付き出力

- 3-1 表形式レポートの最終出力のサンプル

- 3-2 メール・ラベル・レポートの最終出力のサンプル

- 3-3 フォーム・レターの最終出力のサンプル

- 3-4 最初のマスター/マスター・レポートの最終出力のサンプル

- 3-5 2番目のマスター/マスター・レポートの最終出力のサンプル

- 3-6 サマリー・レポートの最終出力のサンプル

- 3-7 1つの問合せを使用したグループ・レポートの最終出力のサンプル

- 3-8 2つの問合せを使用したグループ・レポートの最終出力のサンプル

- 3-9 横グループ・レポートの最終出力のサンプル

- 3-10 グループ左サマリー・レポートの最終出力のサンプル

- 3-11 グループ左式レポートの最終出力のサンプル

- 3-12 ラップ・フィールド・レポートの最終出力のサンプル

- 3-13 ヘッダー/フッター付レポートの最終出力のサンプル

- 3-14 データベース値を使用したヘッダー付レポートの最終出力のサンプル

- 3-15 グラフィック、テキストおよびカラーを使用したレポートの最終出力のサンプル

- 3-16 繰返し枠ごとにページ番号をリセットするレポートの最終出力のサンプル

- 3-17 混合フィールド・レポートの最終出力のサンプル

- 3-18 ラベルを非表示にするレポートの最終出力のサンプル

- 3-19 最初の条件付きフォーム・レター・レポートの最終出力のサンプル

- 3-20 2番目の条件付きフォーム・レター・レポートの最終出力のサンプル

- 3-21 条件付きハイライトを使用したレポートの最終出力のサンプル

- 3-22 動的グラフィックを使用したレポートの最終出力のサンプル

- 3-23 マトリックス・レポートの最終出力のサンプル

- 3-24 ネストしたマトリックス・レポートの最終出力のサンプル

- 3-25 グループ上マトリックス・レポートの最終出力のサンプル

- 3-26 時系列計算レポートの最終出力のサンプル

- 3-27 Microsoft Excelレポートの最終出力

- 3-28 集約データのレポートの最終出力のサンプル

- 3-29 金額がスペル表記された請求書印刷レポートの最終出力

- 3-30 印刷済フォームの最終出力のサンプル

- 3-31 請求書レポートの最終出力のサンプル

- 3-32 ランキング・レポートの最終出力のサンプル

- 3-33 単純な目次

- 3-34 索引

- 3-35 複数階層の目次

- 3-36 日本語によるUTF8のマルチバイト・キャラクタ・セット・レポート

- 3-37 PL/SQLレポートの最終出力のサンプル

- 3-38 REFカーソルの最終出力のサンプル

- 3-39 JSPパラメータ・フォーム

- 3-40 ユーザー・パラメータに基づくJSPベースのWebレポート

- 3-41 ペーパー・レイアウトでのバーコード・レポートの最終出力

- 3-42 Webレイアウトでのバーコード・レポートの最終出力

- 3-43 XML PDSの最終出力のサンプル

- 3-44 テキストPDSの最終出力のサンプル

- 4-1 マトリックス・オブジェクトの例

- 5-1 表形式レポートの出力

- 5-2 表形式レポートのペーパー・デザイン・ビュー

- 6-1 メール・ラベル・レポートの出力

- 6-2 メール・ラベル・レポートのペーパー・デザイン・ビュー

- 6-3 垂直間隔を追加した最終的なメール・ラベル・レポート

- 7-1 フォーム・レター・レポートの出力

- 7-2 フォーム・レター・レポートのペーパー・デザイン・ビュー

- 8-1 マスター/マスター・レポートの出力

- 8-2 マスター/マスター・レポートの出力

- 8-3 関連のない2つの問合せを持つデータ・モデル

- 8-4 マスター/マスター・レポートのペーパー・デザイン・ビュー

- 8-5 2つのレイアウトに空白が追加された状態のペーパー・レイアウト・ビュー

- 8-6 金額が書式設定されたペーパー・デザイン・ビュー

- 9-1 サマリー・レポートの出力

- 9-2 レポート・ウィザードの「グループ」ページ

- 9-3 レポート・ウィザードの「合計」ページ

- 9-4 金額が書式設定されたサマリー・レポートの出力

- 9-5 レポートの合計が書式設定されたサマリー・レポート

- 10-1 グループ・レポートの出力

- 10-2 レポート・ウィザードの「グループ」ページ

- 10-3 レポート・ウィザードの「フィールド」ページ

- 10-4 1つの問合せを使用したグループ左レポートのペーパー・デザイン・ビュー

- 10-5 書式設定された給与

- 10-6 マスター繰返し枠のプロパティ・インスペクタ

- 10-7 空白を追加したペーパー・デザイン・ビュー

- 10-8 ブレーク列が2つあるグループ左レポートの出力

- 10-9 ブレーク列が2つあるデータ・モデル

- 10-10 ブレーク・グループが2つあるグループ左レポートの出力

- 11-1 2つの問合せを使用したグループ上レポート

- 11-2 2つの問合せを使用するデータ・モデル(データ・リンクなし)

- 11-3 2つの問合せを使用するデータ・モデル(データ・リンクあり)

- 11-4 レポート・ウィザードの「フィールド」ページ

- 11-5 2つの問合せを使用したグループ・レポートのペーパー・デザイン・ビュー

- 11-6 金額が書式設定されたグループ上レポートの出力

- 12-1 横グループ・レポートの出力

- 12-2 問合せ1のデータ・モデル

- 12-3 リンクされた2つの問合せのデータ・モデル

- 12-4 横グループ・レポートのペーパー・レイアウト・ビュー

- 12-5 横グループ・レポートのペーパー・デザイン・ビュー

- 13-1 グループ左サマリー・レポートの出力

- 13-2 データ・ウィザードの「グループ」ページ

- 13-3 2つの問合せを使用するデータ・モデル(サマリーあり)

- 13-4 2つの問合せを使用するデータ・モデル(データ・リンクあり)

- 13-5 レポート・ウィザードの「フィールド」ページ

- 13-6 2つのグループ列を使用したグループ左レイアウトのペーパー・デザイン・ビュー

- 13-7 2つのレイアウトがあるペーパー・レイアウト・ビュー

- 13-8 2つのレイアウトが1つにマージされたペーパー・レイアウト・ビュー

- 13-9 2つのレイアウトがマージされたペーパー・デザイン・ビュー

- 13-10 グループ左と表形式を結合したレポートの出力

- 14-1 式レポートの出力

- 14-2 式レポートのペーパー・デザイン・ビュー

- 14-3 式レポートのデータ・モデル

- 14-4 式列を持つデータ・モデル

- 14-5 式レポートの最終出力

- 15-1 ラップ・フィールド・レポートの出力

- 15-2 問合せのデータ・モデル

- 15-3 グループを持つデータ・モデル

- 15-4 新しいG_Nameグループを持つデータ・モデル

- 15-5 3つのサマリー列を持つデータ・モデル

- 15-6 ラップ・フィールド・レポートのペーパー・デザイン・ビュー

- 15-7 ラップ・フィールド・レポートのペーパー・デザイン・ビュー

- 16-1 ヘッダー/フッター付グループ左レポートの出力

- 16-2 マスター繰返し枠にフッターが付いたグループ左レポートの出力

- 16-3 サマリーをラベルに近づけたグループ左レポートの出力

- 16-4 ページ・ヘッダー付グループ左レポートの出力

- 16-5 値が書式設定されたグループ左レポートの出力

- 17-1 ヘッダーにデータベース値が含まれるグループ左レポートの出力

- 17-2 値が書式設定されたグループ左レポートの出力

- 17-3 ヘッダー用サマリー列作成後のデータ・モデル

- 17-4 ヘッダーにデータベース値が含まれるグループ左レポートの出力

- 18-1 グラフィック、テキストおよびカラーを使用したレポートの出力

- 18-2 1つの問合せを使用したグラフィック・レポートのペーパー・デザイン・ビュー

- 18-3 レポート・レイアウトを調整したペーパー・レイアウト・ビュー

- 18-4 繰返し枠を延長したペーパー・レイアウト・ビュー

- 18-5 R_G_DEPARTMENT_ID繰返し枠を延長したペーパー・レイアウト・ビュー

- 18-6 境界線を付けたレポートのプレビュー

- 18-7 新しいフォントを使用したレポートのペーパー・デザイン・ビュー

- 18-8 箇条書きのドットを付けたレポートのペーパー・デザイン・ビュー

- 18-9 線セパレータを使用したペーパー・レイアウト・ビュー

- 18-10 線セパレータを使用したレポートのペーパー・デザイン・ビュー

- 18-11 タイトルを付けたレポートのペーパー・デザイン・ビュー

- 19-1 繰返し枠ごとにページ番号がリセットされたレポートの出力

- 19-2 レポート・ウィザードでのグループ・フィールドの選択

- 19-3 レポート・ウィザードで指定するラベルと幅

- 19-4 ペーパー・デザイン・ビューのレポート・レイアウト

- 19-5 変更後のレポート・レイアウトのペーパー・デザイン・ビュー

- 19-6 レポートの上のマージンのページ番号ソース・フィールド

- 19-7 レポートの上のマージンのページ番号ソース・フィールドおよび参照フィールド

- 19-8 繰返し枠ごとにページ番号がリセットされたレポートの最終出力

- 20-1 中央にマスター・レコードのグループがあるレポート出力

- 20-2 レポート・ウィザードの「グループ」ページ

- 20-3 混合フィールド・レポートのペーパー・デザイン・ビュー

- 20-4 混合フィールド・レポートのペーパー・デザイン・ビュー

- 20-5 ペーパー・デザイン・ビューに表示された出力

- 20-6 新規プログラム・ユニット・ダイアログ・ボックス

- 20-7 ペーパー・デザイン・ビューに表示された最終的なレポート出力

- 21-1 ラベルを非表示にしたレポート出力

- 21-2 ラベルを非表示にするレポートのデータ・モデル・ビュー

- 21-3 式列とサマリー列作成後のデータ・モデル・ビュー

- 21-4 ラベルを非表示にするレポートのペーパー・デザイン・ビュー

- 21-5 M_G_DEPTNO1_HDRへのナビゲート

- 21-6 オブジェクト選択後のオブジェクト・ナビゲータ

- 21-7 選択したオブジェクトを前面に移動後のオブジェクト・ナビゲータ

- 21-8 ラベルを非表示にするレポートの最終的なペーパー出力

- 22-1 条件付きハイライト・レポートの出力

- 22-2 最初の表形式レポートのペーパー・デザイン・ビュー

- 22-3 フォーマットした「Salary」列

- 22-4 表形式レポートのペーパー・デザイン・ビュー

- 22-5 「書式の例外」ダイアログ・ボックス

- 22-6 「条件付き書式」ダイアログ・ボックス

- 22-7 最終的な条件付き書式レポート

- 22-8 新しいフォーマット・トリガーのPL/SQLコード

- 23-1 条件付きフォーム・レター・レポートの出力、基本バージョン

- 23-2 条件付きフォーム・レター・レポートの出力、追加バージョン

- 23-3 アンカーのプロパティが表示されているプロパティ・インスペクタ

- 23-4 変更したレポートのペーパー・レイアウト・ビュー

- 24-1 動的グラフィック・レポートの出力

- 24-2 動的グラフィック・レポートのデータ・モデル・ビュー

- 24-3 動的グラフィック・レポートの最初のペーパー・レイアウト・ビュー

- 24-4 レイアウト変更後のペーパー・レイアウト・ビュー

- 24-5 最終的な動的グラフィック・レポート

- 25-1 マトリックス・レポートの出力

- 25-2 マトリックス・レポートのペーパー・デザイン・ビュー

- 25-3 関連付けられていない3つの問合せのデータ・モデル

- 25-4 クロス積グループがある3つの問合せのデータ・モデル

- 25-5 クロス積グループとデータ・リンクがある3つの問合せのデータ・モデル

- 25-6 レポート・ウィザードの「グループ」ページ

- 25-7 レポート・ウィザードの「フィールド」ページ

- 25-8 マトリックス・レポートのペーパー・デザイン・ビュー

- 25-9 金額が書式設定されたマトリックス・レポートのペーパー・デザイン・ビュー

- 25-10 新しいオブジェクトが選択されたオブジェクト・ナビゲータ

- 25-11 繰返し枠とフィールドが選択されたオブジェクト・ナビゲータ

- 25-12 空白がゼロに置き換えられたマトリックス・レポートの出力

- 25-13 グリッドを使用したマトリックス・レポートの出力

- 26-1 ネストしたマトリックス・レポートの出力

- 26-2 レポート・ウィザードの最初のマトリックス行

- 26-3 レポート・ウィザードの2番目のマトリックス行

- 26-4 ネストしたマトリックス・レポートのペーパー・デザイン・ビュー

- 26-5 4つの問合せを持つデータ・モデル

- 26-6 4つの問合せとクロス積グループを持つデータ・モデル

- 26-7 ネストしたマトリックスのデータ・モデル

- 26-8 レポート・ウィザードの「グループ」ページ

- 26-9 レポート・ウィザードの「フィールド」ページ

- 26-10 ネストしたマトリックス出力のペーパー・デザイン・ビュー

- 26-11 3つの問合せを持つデータ・モデル

- 26-12 3つの問合せとクロス積グループを持つデータ・モデル

- 26-13 ネストしたマトリックスのデータ・モデル

- 26-14 レポート・ウィザードの「グループ」ページ

- 26-15 レポート・ウィザードの「フィールド」ページ

- 26-16 ネストしたマトリックス・レポートの最終出力のペーパー・デザイン・ビュー

- 26-17 書式設定された金額を含む、ネストしたマトリックス・レポートの出力

- 27-1 グループ上マトリックス・レポートの出力

- 27-2 グループ上マトリックス・レポートのペーパー・デザイン・ビュー

- 27-3 サマリー・ラベルが付いたグループ上マトリックス・レポートの出力

- 27-4 列サマリーの上に線が追加されたレイアウト・モデル

- 27-5 空白を追加したグループ上マトリックス・レポートの出力

- 28-1 時系列計算レポートの出力

- 28-2 時系列計算レポートのペーパー・デザイン・ビュー

- 28-3 時系列計算レポートのデータ・モデル・ビュー

- 28-4 時系列計算のJSPベースのWebレポート

- 29-1 拡張スプレッドシート・レポートの出力

- 29-2 ペーパー・デザインの出力

- 29-3 Webデザインでの出力

- 29-4 レポートのMicrosoft Excel出力

- 30-1 集約データ・レポートの出力

- 30-2 集約データ・レポートのペーパー・デザイン・ビュー

- 30-3 集約データ・レポートのペーパー・レイアウト・ビュー

- 30-4 新しいボイラープレート・テキストが付いたペーパー・レイアウト・ビュー

- 30-5 ペーパー・デザイン・ビュー

- 30-6 集約データ・レポートのデータ・モデル

- 30-7 集約データのJSPベースのWebレポート

- 31-1 請求書印刷レポートの出力

- 31-2 単純なレポートのペーパー・デザイン・ビュー

- 31-3 SPELLファンクションを表示しているPL/SQLエディタ

- 31-4 SPELL PL/SQLファンクション作成後のオブジェクト・ナビゲータ

- 31-5 データ・モデル・ビュー

- 31-6 サイズ変更後のデータ・モデル・ビュー

- 31-7 SPELLED_AMOUNT式列作成後のデータ・モデル

- 31-8 2つの問合せを持つデータ・モデル

- 31-9 2つの問合せ間のデータ・リンク

- 31-10 レポートのペーパー・レイアウト・ビュー

- 31-11 マージン・サイズ変更後のペーパー・レイアウト・ビュー

- 31-12 F_ORDER_TOTAL1が追加されたペーパー・レイアウト・ビューの一部

- 31-13 F_ORDER_DATE1が追加されたペーパー・レイアウト・ビューの一部

- 31-14 F_CUSTOMER_NAME1が追加されたペーパー・レイアウト・ビューの一部

- 31-15 F_CHECK_NO1およびF_CHECK_NO2が追加されたペーパー・レイアウト・ビューの一部

- 31-16 F_1フィールドが追加されたペーパー・レイアウト・ビューの一部

- 31-17 請求書レポートのペーパー・デザイン・ビューの一部

- 31-18 空白の請求書の「Amount」領域

- 31-19 フィールド配置後の請求書イメージ

- 31-20 書式設定後の請求書

- 31-21 水平基準線が付いた請求書レポートのペーパー・デザイン・ビューの一部

- 31-22 「Order No.」ボイラープレート・テキストが付いた請求書のペーパー・デザイン・ビューの一部

- 31-23 ペーパー・デザイン・ビューの「Order No.」フィールドと「F_ORDER_ID」フィールド

- 31-24 ペーパー・デザイン・ビューの「Order Date」フィールド

- 31-25 「Order Date」テキストの横の「F_ORDER_DATE1」フィールド

- 31-26 ペーパー・デザイン・ビューでの請求書のスタブの一部

- 31-27 ペーパー・デザイン・ビューの2本目の垂直基準線

- 31-28 ペーパー・デザイン・ビューの「Customer」フィールド

- 31-29 「Customer」フィールドと「F_CUSTOMER_NAME1」フィールド

- 31-30 ペーパー・デザイン・ビューでの請求書のスタブの一部

- 31-31 書式設定後の請求書のスタブ

- 31-32 請求書印刷レポート(注文詳細情報の書式は未設定)

- 31-33 最終的な請求書レポート(スペル表記された金額とスタブを含む)

- 32-1 印刷済フォームへのレポートの印刷

- 32-2 最初の問合せのデータ・モデル・ビュー

- 32-3 問合せが2つ表示されたデータ・モデル・ビュー

- 32-4 リンクされた問合せとブレーク・グループが表示されたデータ・モデル・ビュー

- 32-5 印刷済フォームのデータ・モデル・ビューの例

- 32-6 初期レイアウトのペーパー・レイアウト・ビュー

- 32-7 オブジェクト・ナビゲータでのレポート・ブロックのボイラープレート・オブジェクト

- 32-8 印刷済フォームのペーパー・レイアウト・ビューの例(メール・ラベルと注文品目詳細情報を含む)

- 32-9 オブジェクト・ナビゲータで選択された枠

- 32-10 ペーパー・レイアウト・ビューで選択された繰返し枠

- 32-11 ペーパー・レイアウト・ビューの「F_PAGE_TOTAL」フィールドと「F_ORDER_TOTAL」フィールド

- 32-12 印刷済フォーム・レポートの最終的なプレビュー

- 32-13 サンプルの印刷済フォームに印刷された最終的なレポート

- 32-14 ページ番号が表示された印刷済フォーム・レポートのペーパー・デザイン・ビュー

- 33-1 請求書レポートの出力

- 33-2 データ・モデル・ビューの問合せ

- 33-3 データ・リンク、サマリー列および式列が表示されたデータ・モデル・ビュー

- 33-4 請求書レポートのレイアウト

- 33-5 請求書レポートの最終出力

- 34-1 数値とパーセンテージで顧客をランク付けした表形式のレポート出力

- 34-2 ランキング・レポートのペーパー・デザイン・ビュー

- 34-3 上位3顧客に制限した表形式のレポート出力

- 34-4 パラメータ値が表示された表形式のレポート出力

- 34-5 ランキング・レポートのデータ・モデル・ビュー

- 34-6 数値とパーセンテージで顧客を制限した表形式のレポート出力

- 35-1 大規模なレポート用の単純な目次

- 35-2 大規模なレポート用の単純な索引

- 35-3 単純な目次

- 35-4 グループ上レポートのデータ・モデル

- 35-5 グループ上レポートのペーパー・レイアウト・ビュー

- 35-6 2番目の問合せを持つデータ・モデル

- 35-7 ヘッダー・セクションのペーパー・レイアウト・ビュー

- 35-8 レポートの目次ページ

- 35-9 アルゼンチンの顧客の出力結果

- 35-10 ペーパー・レポート用の索引のサンプル

- 35-11 索引のデータ・モデル・ビュー

- 35-12 レポートの索引ページ

- 36-1 複数階層の目次

- 36-2 レポートのメイン・カテゴリとサブカテゴリのサンプル・ページ

- 36-3 複数階層のTOCを使用したレポートのデータ・モデル

- 36-4 ヘッダー・セクションのペーパー・レイアウト・ビュー

- 36-5 レポートの目次ページ

- 36-6 製品部門BOYS、サブカテゴリSHIRTSの出力結果

- 37-1 繰返し枠の削除

- 38-1 日本語でのマルチバイト・キャラクタ・セットUTF8のレポートの出力

- 38-2 ポーランド語での同じマルチバイト・キャラクタ・セットUTF8のレポートの出力

- 38-3 編集してTrueTypeフォント・ファイル名を挿入したuifont.aliファイル

- 38-4 デフォルト設定の日本語文字がないレポートのペーパー・デザイン・ビュー

- 38-5 日本語文字を含むレポートのペーパー・デザイン・ビュー

- 38-6 ポーランド語キャラクタを含むレポートのペーパー・デザイン・ビュー

- 38-7 ポーランド語文字を含むレポートのPDFファイル

- 39-1 不規則な時間間隔のプロット

- 39-2 新しいチャート・スタイル

- 39-3 ファンネル・グラフ

- 39-4 曲線グラフ

- 40-1 PL/SQLレポートの出力

- 40-2 オブジェクト・ナビゲータ

- 40-3 PL/SQLレポートのデータ・モデル・ビュー

- 40-4 G_FIRST_NAMEが拡張されたデータ・モデル

- 40-5 名前付けされていない式列を含むデータ・モデル

- 40-6 BONUS式列作成後のデータ・モデル

- 40-7 FINAL_CALCファンクション作成後のオブジェクト・ナビゲータ

- 40-8 BONUS式列とTOTAL_COMP式列作成後のデータ・モデル

- 40-9 「表示フィールド」リスト

- 40-10 PL/SQLサンプル・レポートのペーパー・レイアウト・ビュー

- 40-11 M_NAME繰返し枠作成後のオブジェクト・ナビゲータ

- 40-12 変更したレポートのペーパー・デザイン・ビュー

- 40-13 オブジェクト・ナビゲータのユーザー・パラメータ

- 40-14 新しいサマリー列作成後のデータ・モデル

- 40-15 垂直間隔を追加したレイアウト

- 40-16 最終的なPL/SQLサンプル・レポート

- 41-1 REFカーソル・レポートの出力

- 41-2 REFカーソルの例の概要

- 41-3 3つの問合せを持つデータ・モデル

- 41-4 グループを持つ問合せ

- 41-5 グループを持つデータ・モデル

- 41-6 リンクを持つデータ・モデル

- 41-7 サマリー列を持つデータ・モデル

- 41-8 REFカーソル・レポートのペーパー・デザイン・ビュー

- 42-1 JSPパラメータ・フォーム

- 42-2 ユーザー・パラメータに基づくJSPベースのWebレポート

- 42-3 HTMLパラメータ・フォームのサンプル

- 42-4 パラメータ・フォームのデータ・モデル・ビュー

- 42-5 値が含まれるパラメータ・フォーム

- 42-6 選択項目のあるJSPパラメータ・フォーム

- 42-7 ユーザー・パラメータに基づく従業員レポートのサンプル

- 43-1 バーコードJavaBeanのWebレポート出力

- 43-2 問合せのデータ・モデル

- 43-3 2つの新しい式列を持つデータ・モデル

- 43-4 バーコード・ペーパー・レポートのペーパー・デザイン・ビュー

- 43-5 JSPベースWebレポートの問合せのデータ・モデル

- 43-6 3つの式列を持つデータ・モデル

- 43-7 バーコードを含んだ最終的なJSPベースWebレポートのスナップショット

- 45-1 XML PDSを使用したレポート出力

- 45-2 XML PDSの例のSQL問合せで使用するデータ・モデル

- 45-3 XML問合せとSQL問合せを含むXML PDSの例のデータ・モデル

- 45-4 SQL問合せとXML問合せ間にデータ・リンクが作成されたデータ・モデル

- 45-5 XML PDSレポートのペーパー・デザイン・ビュー

- 45-6 交互の行カラーを適用したXML PDSレポート

- 45-7 グループ階層を持つデータ・モデル

- 45-8 XML PDSのサンプル・レポートの最終的なペーパー・デザイン・ビュー

- 46-1 テキストPDSを使用したレポート出力

- 46-2 textpds.confエントリのスナップショット

- 46-3 テキストPDSレポートのペーパー・デザイン・ビュー

- A-1 メイン・ツールバー

- A-2 データ・モデル・ビューのツール・パレット

- A-3 ペーパー・レイアウト・ビューのツール・パレット

表一覧

- 1-1 システム・パラメータの説明

- 1-2 プロパティ・インスペクタの「論理積」と「論理和」

- 1-3 印刷プレビューアでの処理

- 1-4 Oracle Reportsコンポーネントの説明

- 2-1 レポートとHTMLのフォント・サイズ

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

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

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

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

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

- 4-1 Oracle Reportsのドキュメント・ロードマップ

- 4-2 日付書式マスクおよび時刻書式マスク

- 4-3 日付書式マスクの接尾辞

- 4-4 日付書式マスクの例

- 4-5 数値書式マスクのトークン

- 4-6 数値書式マスクの例

- 4-7 PL/SQLエディタの編集機能

- 4-8 PL/SQLエディタでのキーボードの使用

- 4-9 PL/SQLエディタでのマウスの使用

- 4-10 プログラム・ユニットの実行

- 11-1 「ラベル」ページのフィールドの説明

- 13-1 「ラベル」ページのフィールドの説明

- 13-2 フィールドの説明

- 29-1 レポートのサンプル・ファイル

- 31-1 「ラベル」ページのフィールドの説明

- 36-1 レポートのサンプル・ファイル

- 37-1 レポートのサンプル・ファイル

- 39-1 11gの機能と10gの機能の比較

- 41-1 レポートのサンプル・ファイル

- 41-2 サマリーの特性

- 41-3 「ラベル」ページのフィールドの説明

- 42-1 レポートのサンプル・ファイル

- 43-1 レポートのサンプル・ファイル

- 45-1 レポートのサンプル・ファイル

- 46-1 レポートのサンプル・ファイル

はじめに

このマニュアルは、Reports Builder (Oracle Reportsのレポートを作成するコンポーネント)の機能全般の習得に役立ち、様々なタイプのレポートを作成する方法、および幅広い要件に合致するようにレポートをカスタマイズする方法を示します。

対象読者

このマニュアルは、Oracle Reportsを使用してレポートを作成するすべてのユーザーを対象としています。初級者から上級者までの幅広い読者のニーズに対応しています。説明に従って手順を始めから終わりまで実行すると、サンプル・レポートを作成できます。各レポートを作成することにより、Reports Builderの多くの優れた機能の使用方法がわかるようになっています。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracleサポートへのアクセス

Oracleカスタマは、My Oracle Supportから電子サポートにアクセスできます。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info) か、聴覚に障害のあるお客様は (http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。

関連ドキュメント

Oracle Reportsの詳細は、次のリソースを参照してください。

- 『Oracle Reportsチュートリアル』

- 『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』

- Oracle Reportsオンライン・ヘルプ。第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」に記載されているように、Reports BuilderまたはOracle Technology Network (OTN)から入手できます。

表記規則

本文では、次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するグラフィカル・ユーザー・インタフェース要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック

イタリックは、特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、パラグラフ内のコマンド、URL、例に記載されているコード、画面に表示されるテキスト、または入力するテキストを示します。

固定幅フォントのイタリック

固定幅フォントのイタリックは、変数またはユーザー指定の名前を示します。

[ ]

大カッコは、カッコ内の句を任意に選択できることを表します。ただし選択できるのは1つだけです。

サンプル・レポートへのアクセス

作成するレポートのサポート・ファイルは、Oracle Technology Network (OTN)から入手可能です。Oracle Reports ページ(http://www.oracle.com/technology/products/reports/index.html)で、「Getting Started」をクリックして「Getting Started with Oracle Reports」ホーム・ページを表示します。左側にあるトピックのリストの中から「Index」をクリックします。「Topic」リストで、「Building and Developing Reports」を選択します。「Collateral Type」リストで、「Examples」を選択し、「Search」をクリックします。表示されたトピックの一覧で、「Building Reports sample files」を探してから、ダウンロード・アイコンをクリックし、ZIPファイル(ファイル名はbuildingreports_examples.zip)をダウンロードします。このzipファイルにあるサブフォルダの名前は、各章の名前に対応しています。各サブフォルダには、個々のレポートを作成するために必要なすべてのファイル(サンプル・レポート、イメージ、SQL問合せのコードなど)が含まれています。このzipファイルをORACLE_HOME\examples(たとえば、D:\orawin\examples)で解凍します。

また、「Getting Started with Oracle Reports」には、記載されているサンプルのWebベース版や、このマニュアルで説明されていないサンプルなどもあります。

データ・ソースへのアクセス

このマニュアルで使用するデータ・ソースは次のとおりです。

- SCOTTスキーマ

- サンプルのHuman Resourcesスキーマ、Sales HistoryスキーマとOrder Entryスキーマ

- Summit Sporting Goods (SUMMIT)スキーマ

SCOTTスキーマ、Human Resourcesスキーマ、Sales HistoryスキーマおよびOrder Entryスキーマは、Oracle Databaseに付属しています。スキーマの場所の詳細は、データベース管理者に問い合せてください。Oracle Technology Network (OTN)からSQLスクリプトをダウンロードして、Summit Sporting Goods (SUMMIT)スキーマをインストールできます。Oracle Reportsのページ(http://www.oracle.com/technology/products/reports/index.html)で、「Getting Started」をクリックして「Getting Started with Oracle Reports」ホームページを表示します。左側にあるトピックのリストの中から「Index」をクリックします。「Topic」リストで、「Building and Developing Reports」を選択します。「Collateral Type」リストで、「Tools/Utilities」を選択し、「Search」をクリックします。ツールとユーティリティの一覧が表示されたら、ダウンロード・アイコンをクリックして、SUMMITサンプル・スキーマをインストールするためのSQLスクリプトをダウンロードします。

1 基本的な概念

この章では、Oracle Reportsの11gリリース1 (11.1.1)コンポーネントの基本的な概念について説明します。この章の各トピックは、Oracle Reportsオンライン・ヘルプの「基本的な概念」の項にも含まれています(第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」を参照)。

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

- 第1.1項「Oracle Reports Builder」

- 第1.2項「レポート」

- 第1.3項「レポート・スタイル」

- 第1.4項「ウィザード」

- 第1.5項「オブジェクト・ナビゲータ」

- 第1.6項「レポート・ナビゲータ」

- 第1.7項「データ・モデル・オブジェクト」

- 第1.8項「レイアウト・オブジェクト」

- 第1.9項「パラメータ・フォーム・オブジェクト」

- 第1.10項「プロパティ・インスペクタ」

- 第1.11項「実行時ビュー」

- 第1.12項「Oracle Reportsのコンポーネント」

1.1 Oracle Reports Builder

この項の各トピックでは、Oracle Reports Builderの機能について説明します。

- Oracle Reports Builderについて

- このリリースについて

1.1.1 Oracle Reports Builderについて

Oracle Reports Builderは、Oracle Reportsのレポート作成コンポーネントです。強力な、企業向けレポート作成ツールであるこのReports Builderを使用すると、Oracleデータベース、JDBC、XML、テキスト・ファイルなどの任意のデータ・ソースに基づいて、洗練されたWebレポートやペーパー・レポートを迅速に作成して配置できます。JSPやXMLなどのJava EEテクノロジを活用し、スケーラブルかつ効率的な方法でレポートをあらゆる対象(電子メール、Webブラウザ、Oracle Portal、ファイル・システムなど)へ様々なフォーマット(HTML、XML、PDF、スプレッドシート、区切り記号付きテキスト、PostScript、RTFなど)で公開できます。Oracle Reports Builderは、Webパブリッシングとペーパー・パブリッシングの違いを認識するため、WebおよびE-Businessの要求を満たす高品質の出力を開発できるのみでなく、より正確な印刷レポートも生成できます。Oracle Reports Builderには、次の機能があります。

- レポート設計のプロセスを順に示すユーザーフレンドリなウィザード

- レポートでのあらゆるソースからのデータへのアクセスを可能にする、JDBCおよびXMLなどのプラガブル・データ・ソース(PDS)

- レポートのデータを取得するSQL文をグラフィカルに表示する問合せ作成ツール

- 必要に応じてカスタマイズ可能な、デフォルトのレポート・テンプレートとレイアウト・スタイル

- WYSIWYGモードでペーパー・レポートのレイアウトを変更できるライブ・エディタ

- HTMLドキュメントにカスタムのJSPタグを埋め込んで動的なレポート出力をHTMLページに追加する機能

- レポートのデータをグラフィカルに表示する、統合されたグラフ作成ツール

- レポートの実行方法をカスタマイズするためのコードを生成する機能

- データに基づいて動的にWebページを生成するツール

- 標準的なレポート出力フォーマット(HTML、HTMLCSS、XML、PDF、RTF、スプレッドシート、PCL、PostScript、ASCIIなど)

- JavaScriptを使用した、クライアント側のパラメータ検証

- PL/SQLプロシージャ内で動的SQL文を実行する機能

- Oracleデータベース・オブジェクト型のサポート

- イベントベースのレポート作成(データベース・イベントに基づくレポートの実行)

- Oracle Portalとのシームレスな統合による、レポートのセキュリティ管理およびポートレットへのレポート出力の公開

1.1.2 このリリースについて

Oracle Reports 11gリリース1 (11.1.1)では、多くの新機能および拡張機能が提供されます。このリリースでは、次のことが主なテーマとなっています。

- Oracle Fusion Middlewareプラットフォームおよびサービスとの密接な統合(複雑なトポロジおよびデプロイの管理を簡素化するため)

- アーキテクチャの変更によりトップ・クラスを誇るサポート性の分野を強化

- 企業でのレポート作成という主要分野における新機能

Oracle Technology Networkで入手可能な『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「概要」には、Oracle Reports 11gリリース1 (11.1.1)の新機能、およびそれと同等の10gリリース2 (10.1.2)の機能(存在する場合)が記載されています。

詳細は、Oracle Technology NetworkのOracle Reports 11gのページを参照してください。

1.2 レポート

この項の各トピックでは、レポートの基本的な概念について説明します。高度な概念は、第2.1項「レポート」を参照してください。

- レポートについて

- Webレポートについて

1.2.1 レポートについて

レポートは次のオブジェクトから構成されており、これら全体が1つのレポートを定義します。

- データ・モデル・オブジェクト(問合せ、グループ、列、リンク、ユーザー・パラメータ)

- レイアウト・オブジェクト(繰返し枠、枠、フィールド、ボイラープレート、アンカー)

- パラメータ・フォーム・オブジェクト(パラメータ、フィールド、ボイラープレート)

- PL/SQLオブジェクト(プログラム・ユニット、トリガー)

- 外部PL/SQLライブラリへの参照(ある場合)

- Webソース・ビューに表示されるコード(JSPベースのWebレポートの場合)

プロパティ・インスペクタを使用して、レポートのプロパティを定義します。ドキュメントの分類(種別)プロパティ(「タイトル」、「作成者」、「件名」および「キーワード」)は、レポート・ドキュメントのカタログ化と検索に役立ちます。

Oracle Reports Builderを起動したときに、既存のレポートを開くか、レポート・ウィザードを使用して新規レポートを作成するか、手動で新規レポートを作成するかを選択できます。

注意:

「ソース・コントロール」はデフォルトで無効になっています。このため、「ファイル」メニューの「管理」オプションは常に無効になっています。

1.2.1.1 レポート・ウィザードを使用した新規レポートの作成

レポート・ウィザードを使用すると、Webとペーパーの両方のレイアウトに対応したレポートを作成する手順を迅速かつ簡単に実行できます。

1. 新規レポート定義を作成します。

2. データ・モデルを定義します(レポート出力を生成するために使用するデータ、データ・リレーションシップおよび計算を選択します)。

3. レイアウトを指定します。デフォルトのレイアウトを使用してそれを必要に応じてカスタマイズすることも、独自のレイアウトを作成することもできます。Oracle Reports Builderには、第1.3項「レポート・スタイル」で説明しているデフォルトのレイアウト・スタイルが付属しています。

4. 次に、レポート・エディタの様々なビューを使用してレポートを変更します。

1.2.1.2 手動での新規レポートの作成

手動での新規レポートの作成を選択すると、Oracle Reports Builderによって新しいデフォルトのレポート定義が作成されます。最初に表示されるウィンドウは、オブジェクト・ナビゲータと呼ばれます。このウィンドウには、レポート・オブジェクトの詳細なリストが表示されます。まず、Oracle Reports Builderによってレポート定義の構成要素として作成されたすべてのオブジェクトが表示されます。オブジェクト・ナビゲータを使用して、レポートの定義時に、連結ライブラリ、トリガーおよびプログラム・ユニットを含むレポート内の全オブジェクトへのアクセスと変更を行うことができます。オブジェクト・ナビゲータ表示を変更して、オブジェクトを階層やタイプ別に一覧表示できます。

関連項目

第4.5.1項「レポートの作成」

1.2.2 Webレポートについて

Webパブリッシングに重点を置くことにより、Oracle Reportsでは、包括的なパブリッシング・ソリューションとしての役割がさらに強化されました。以前のリリースでは、Oracle Reports BuilderのWeb機能は、単にペーパー・レポート(複数のページ)をHTMLまたはPDFで表示するものでした。これによって企業のデータをWebに移行することが可能となりましたが、作成されるHTMLはサイズが大きく、あまり柔軟性がありませんでした。

Webレポートにこれまで備わっていたペーパーベースのレポートのための機能はそのまま残されていますが(第4.6.10項「ペーパーベースのレポートへのWebリンクの追加」を参照)、Oracle ReportsではJavaServer Pages (JSP)が基盤テクノロジとして使用されており、Oracle Reports Builderを使用して取り出した情報をWebページに組み込むこともできます。これに伴ってレポートのWebソース・ビューが導入され、1つのレポートでJSPベースの定義とペーパーベースの定義の両方を作成できるようになりました。つまり、ペーパー・レポートを様々な出力形式でWebに公開することも、Webソース・ビューにJSPコーディングを追加してWebの機能をさらに活用することもできるようになります。たとえば、1つのレポートでペーパーのPDFバージョンとJSPベースのWebバージョンを作成する場合に、どちらを選択するかは、要件に応じて、およびWebソース・ビューとペーパー・デザイン・ビューのどちらがより目的の出力を容易に作成できるかによって決定できます。

Oracle Reportsにはサーブレット・テクノロジも採用されています。サーブレットは、CGIにかわるJavaベースのプログラムです。サーブレットを利用すると、プラットフォームに依存せずにWebベースのアプリケーションを構築でき、CGIプログラムでのパフォーマンスの制限もありません。

Webレポートは、次のいずれかの方法で作成できます。

- レポート・ウィザードで、レポート・レイアウトをWebレポートおよびペーパー・レポートの両方、Webレポートのみ、またはペーパー・レポートのみ、のいずれにするかを選択します。Webレポートとペーパー・レポートの両方に使用されるデフォルトのレイアウトが、ペーパー・デザイン・ビューに表示されます。Webレポートのソース・コードは、Webソース・ビューで参照できます。

- 既存のHTMLドキュメント(Webページ)を開き、レポート・ブロック・ウィザードを使用してWebページにレポートを埋め込みます。この方法では、柔軟にレポートを作成でき、複数のソースからの情報を1つのWebページに完全に統合するといった要求を満たすことができます。第4.6.4項「Webページへのレポート・ブロックの追加」を参照してください。

- Webソース・ビューを表示して(第4.6.2項「Webレポートのソース・コードの表示」を参照)、Oracle ReportsのカスタムJSPタグを手動で挿入します。Oracle Reportsオンライン・ヘルプのリファレンスに関する項にあるOracle ReportsのJSPタグに関するトピックを参照してください。

- 既存のWebページに、既存のレポートを挿入します。それを行うには、Webソース・ビューを使用してレポートとWebページのソース・コードを表示し、レポート・ブロックをコピーしてWebページ内の目的の位置に貼り付けます。

- Oracle Reports 6i以降で利用可能となった機能を使用して、HTMLとハイパーリンクを既存のレポートに追加してペーパーベースのWebレポート(HTMLファイル)を作成します。第4.6.10項「ペーパーベースのレポートへのWebリンクの追加」を参照してください。

レポート出力をWebブラウザでプレビューするには、「プログラム」→「Webレイアウトを実行」を選択します。プレビューを使用すると、変更がレポートの出力にどのように影響するかをすぐに確認できます。

注意:

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

関連項目

第2.2項「Webレポート」

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

第2.8.8項「HTMLおよびHTMLCSS出力について」

第2.8.10項「PDF出力について」

第4.6.1項「Webレポートの作成」

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

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

1.3 レポート・スタイル

この項の各トピックでは、Oracle Reports Builderに組み込まれているレポート・スタイルについて説明します。

- 表形式レポートについて

- グループ上レポートについて

- グループ左レポートについて

- フォーム形状レポートについて

- フォーム・レター・レポートについて

- メール・ラベル・レポートについて

- マトリックス・レポートについて

1.3.1 表形式レポートについて

表形式レポートは、最も基本的なタイプのレポートです。各列は、データベースから選択された列に対応しています。

関連項目

第4.5.1項「レポートの作成」

1.3.2 グループ上レポートについて

グループ上レポートのデータ・モデルには、複数のグループが含まれています。グループ上レポートはマスター/ディテール・レポートで、マスター・グループに多くの情報が含まれる場合があります。各マスター・グループに対して、ディテール・グループの関連する値がデータベースからフェッチされ、マスター情報の下に表示されます。

関連項目

第4.5.1項「レポートの作成」

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

第4.8.7項「ブレーク・グループの作成」

1.3.3 グループ左レポートについて

グループ左レポートにも、データ・モデルに複数のグループが含まれています。このレポートでは、表の行は列のいずれかの共通する値に基づいて分けられます。関連する列の値が変化する間、列の同じ値が何度も表示されないようにする場合に、このタイプのレポートを使用します。グループ上レポートとグループ左レポートは、データ・モデルは同じですが、レイアウトが異なります。グループ上レポートではマスター情報が上に表示され、グループ左レポートではブレーク列が横に表示されます。

関連項目

第4.5.1項「レポートの作成」

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

第4.8.7項「ブレーク・グループの作成」

1.3.4 フォーム形状レポートについて

フォーム形状レポートでは、1ページにレコード1つが表示され、フィールド・ラベルの右にフィールドの値が表示されます。

関連項目

第4.5.1項「レポートの作成」

1.3.5 フォーム・レター・レポートについて

フォーム・レター・レポートでは、ボイラープレート・テキスト(レポート・エディタで入力またはインポートされたあらゆるテキスト)にデータベース値が埋め込まれます。

関連項目

第4.5.1項「レポートの作成」

1.3.6 メール・ラベル・レポートについて

メール・ラベル・レポートでは、各ページに複数列のメール・ラベルが印刷されます。レポート・ウィザードを使用して、メール・ラベルのフォーマットを指定できます。

関連項目

第4.5.1項「レポートの作成」

1.3.7 マトリックス・レポートについて

マトリックス(クロス積)レポートは、次の4つのデータ・グループのクロス集計です。

- データ・グループの1つは、ページの横方向に表示されます。

- データ・グループの1つは、ページの縦方向に表示されます。

- データ・グループの1つはクロス積です。これによって、縦方向のデータと横方向のデータが結び付けられる位置がすべて決定し、これらの位置のそれぞれにセルが配置されます。

- データ・グループの1つは、セルにデータを供給するフィラーとして表示されます。

図1-1 マトリックス・レポートの例

このように、マトリックス・レポートを作成するには、少なくとも4つのグループがデータ・モデルに必要です。その中の1つはクロス積グループである必要があります。また、ラベルを付けるために、クロス積グループ内にあるグループが2つ必要です。さらに、セルに挿入される情報を集計するグループが少なくとも1つ必要です。これらのグループがすべて同じ問合せに属していなくてもかまいません。

マトリックス・レポートの特長の1つは、データベースからデータをフェッチするまでは列の数がわからないことです。

Oracle Reports Builderでは、様々なマトリックス・レポートを作成できます。一般的なマトリックス・レポートのタイプは、単純マトリックス、ネストしたマトリックス、ブレークあり複数問合せマトリックスおよびマトリックス・ブレークの4つですが、これ以外のレポートも作成できます。

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

1.3.7.1 マトリックス・データ・モデル

マトリックス・データ・モデルを作成するときは、次の点を考慮してください。

- 問合せの数

- グループの構造

- サマリーの設定

1.3.7.1.1 問合せの数

マトリックス・レポートには、少なくとも4つのグループが常に必要ですが、これらを作成するための問合せの数はいくつでもかまいません。1つの問合せのみを使用するマトリックス・レポート(一般に最も効率のよい構造)を作成する場合は、デフォルトで作成される1つのグループのほかに少なくとも3つのグループを作成する必要があります。複数の問合せ(3つ以上)を使用するマトリックス・レポートを作成する場合も、グループを少なくとも1つ追加する必要があります。次の図は、マトリックス・データ・モデルに対して使用可能な2種類の問合せ構造を示します。

図1-2 マトリックス・データ・モデル

単一問合せデータ・モデルの利点の1つは、一般に、複数の問合せを含むデータ・モデルに基づくレポートよりも効率のよいレポートが作成されることです。

複数の問合せからなるマトリックス。単純な問合せが複数ある場合や、1つの問合せからなる同等のデータ・モデルよりも維持が容易な場合は、複数の問合せからなるデータ・モデルを使用できます。さらに、マトリックスの種類によっては(一部のネストされたマトリックス・レポートなど)、複数の問合せからなるデータ・モデルが必要です。

1.3.7.1.2 グループの構造

マトリックス・レポートは、4つ以上のグループを使用して作成します。

- 2つ以上のディメンション・グループ。ディメンション・グループは、クロス積グループ内に含まれます。レイアウトでは、縦方向と横方向に、それぞれ1つ以上のグループの情報が表示されることでグリッドが形成されます。これらのグループの情報は、マトリックスの列ラベルおよび行ラベルとして表示されるため、マトリックス・ラベルと呼ばれることがあります。

- 1つ以上のクロス積グループ。クロス積グループは、ディメンション・グループの値のすべての可能な組合せを表します。レイアウトでは、クロス積グループは横方向と縦方向のディメンション・グループに対応する繰返し枠の共通部分として表されます。レポートを実行するとレポートが拡張し、データの共通部分の各インスタンスは個別のセルになります。次の図は、この概念をわかりやすくグラフィカルに示します。四角形がセルで、それぞれ部門と職種の有効な組合せを示しています。

図1-3 マトリックスの概念

- 1つのセル(フィラー)グループ。セル・グループの内容は、クロス積の各セルによって表される実際の情報です。ディメンション・グループの値の共通部分(セル)のそれぞれに対して、セル・グループは0個、1個または複数の値を保持しています。レポートを実行すると、これらの値は該当するセルに表示されます。

次の図は、単一問合せデータ・モデルと複数問合せデータ・モデルでのグループの関連をグラフィカルに示します。

図1-4 マトリックス・データ・モデルのリレーションシップ

各データ・モデルにおいて、クロス積グループは大きい四角形で表され、ディメンション・グループはその中の小さい四角形で表され、セル・グループはクロス積グループの外にあります。

1.3.7.1.3 サマリーの設定

マトリックスのサマリーの作成には、他の種類のレポートのサマリーを作成するよりも多くの情報が必要です。マトリックスのサマリー列を作成するときは、次のことを指定する必要があります。

- サマリーの頻度。頻度では、どのディメンション・グループのサマリーを計算するかを指定します。

- サマリーを計算する順序。順序では、マトリックスのどの方向にサマリーを計算するかを指定します(上から下または左から右)。

Oracle Reports Builderでは、サマリーの「積順序」プロパティを設定してこの情報を指定します。クロス積グループによって所有されるすべてのサマリーに「積順序」が指定されている必要があります。次のようなマトリックス・レポートがあるとします。

図1-5 ネストしたマトリックス・レポートのサンプル

これはネストされたマトリックス・レポートです。グループG_YEARにはYEAR列、G_DEPTにはDEPTNO列、G_JOBにはJOB列が含まれています。G_CROSSはクロス積グループです。

職種別給与のサマリーを作成し、各職種のマトリックスの最下部に表示するには、G_CROSSにサマリー列を作成し、次のようにプロパティを設定します。

図1-6 マトリックスのサマリーの設定

これらの設定によって、G_JOBグループの職種ごとにサマリーを計算し、G_JOBグループの職種ごとにサマリーを0にリセットすることを指定します。

年度別給与のサマリーを作成し、マトリックスの右側のボイラープレートの線のすぐ下に表示するには、G_CROSSにサマリー列を作成し、次のようにプロパティを設定します。

図1-7 マトリックスのサマリーの設定

これらの設定によって、G_YEARグループの年度ごとにサマリーを計算し、G_YEARグループの年度ごとにサマリーを0にリセットすることを指定します。年度と部門別給与のサマリーを作成し、値が含まれている部門の行ごとにマトリックスの右側に表示するには、G_CROSSにサマリー列を作成し、次のようにプロパティを設定します。

図1-8 マトリックスのサマリーの設定

この設定は、G_YEARの各レコードにあるG_DEPTのレコードごとにサマリーを計算することを指定します。このレポートではG_DEPTがG_YEARよりも頻繁に変化するため、「積順序」ではG_YEARの後にG_DEPTを指定します。G_YEARの方が頻繁に変化する場合は(部門ごとに年度が一覧表示される場合など)、「積順序」を「G_DEPT, G_YEAR」とする方が有効です。

このサマリーは、G_DEPTグループのレコードごとに0にリセットされます。「積順序」に複数のグループを指定した場合に、サマリーが累積されないようにするには、リセット・グループが「積順序」の最後のグループと同じになるようにします。「積順序」に複数のグループを指定した場合に、サマリーが累積されるようにするには、リセット・グループには「積順序」の最後のグループ以外のものを指定します。

1.3.7.2 マトリックスのレイアウト

次の図は、単純な2次元のマトリックスを構成するオブジェクトを示します。ボイラープレートのフィールド・ラベルを除き、これらのオブジェクトはすべてマトリックスに必要です。

図1-9 マトリックスのレイアウト・モデル・ビュー

マトリックスのレイアウト・モデルは、次のレイアウト・オブジェクトで構成する必要があります。

- 少なくとも3つの繰返し枠。1つは「印刷方向」プロパティを「縦」に設定し、もう1つは「横」に設定します。最後の1つはマトリックス・オブジェクト内のセル用です。

- いくつかのグループ枠、ヘッダー枠およびフッター枠(サマリーが含まれる場合)。

- クロス積グループ用に作成された1つのマトリックス・オブジェクト。この中にマトリックスのセルがあります(たとえば、前述の図の四角の中にF_SUMSALがあります)。

- 値の各行と各列、およびサマリー(たとえば、JobとDeptno)に対応するボイラープレート。ボイラープレートの表示はオプションですが、Oracle Reports Builderではデフォルトで生成されます。

注意:

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

1.3.7.2.1 マトリックス・オブジェクト

マトリックス・オブジェクトは、2つ以上の繰返し枠の共通部分を定義します。繰返し枠はマトリックスのディメンションで、マトリックス・オブジェクトにはフィラーまたはセル・グループの値を保持する繰返し枠が含まれます。レイアウト内の交差する繰返し枠の組合せごとに、1つのマトリックス・オブジェクトが必要です。マトリックスを形成するには、繰返し枠の1つは「印刷方向」プロパティを「縦」に、もう1つは「横」に設定する必要があります。

詳細は、第2.3.7項「マトリックス・オブジェクトについて」を参照してください。

使用に関する注意

マトリックス・レポートのパフォーマンスは、次のもので改善できます。

- 少ない問合せ数

- WHERE句

注意:

クロス積グループでは、必ず事前フェッチが発生します。これは、Oracle Reports Builderがクロス積グループ内のデータをクロス集計するために、最初にすべてのデータをフェッチする必要があるためです。

関連項目

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

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

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

第2.4.2項「レイアウトのデフォルトについて」

第4.5.1項「レポートの作成」

1.4 ウィザード

Oracle Reports Builderに含まれているウィザードを利用すると、レポートの定義とレポートへのオブジェクトの追加をすばやく簡単に行うことができます。この項の各トピックでは、Oracle Reports Builderの各ウィザードについて説明します。

- レポート・ウィザードについて

- レポート・ブロック・ウィザードについて

- データ・ウィザードについて

- グラフおよびグラフ・ウィザードについて

1.4.1 レポート・ウィザードについて

レポート・ウィザードを利用すると、Webレイアウトとペーパー・レイアウトのどちらの場合も単一問合せレポートをすばやく簡単に定義できます。Oracle Reports Builderでは、ウィザードの各ページで指定された内容でレポートのデータ・モデルとレイアウトが作成されます。ウィザードによってレポートが作成された後に、レポート・エディタのビューを使用してレポートを変更できます。第1.6.1項「レポート・エディタについて」を参照してください。

再実行

既存のレポートに対してレポート・ウィザードを再実行するには:

- レポートをクリックし、「ツール」→「レポート・ウィザード」を選択します。

レポート・ウィザードの使用

ウィザードのタブ・ページのフィールドに関するヘルプを参照するには、タブ・ページの下部にある「ヘルプ」をクリックします。

1.4.2 レポート・ブロック・ウィザードについて

レポート・ブロック・ウィザードは、レポート・ウィザードのバージョンの1つです。既存のHTMLドキュメント(Webページ)を開き、レポート・ブロック・ウィザードを使用してWebページにレポートを埋め込み、データのレイアウトを指定できます。

アクセス

レポート・ブロック・ウィザードを表示するには:

- ペーパー・レイアウト・ビューまたはWebソース・ビューで、「挿入」→「レポート・ブロック」を選択します。

- ペーパー・レイアウト・ビューで、ツール・パレットの「レポート・ブロック」ツールをクリックし、ペーパー・レイアウト・ビューの空き領域をクリックします。

レポート・ブロック・ウィザードの使用

ウィザードのタブ・ページのフィールドに関するヘルプを参照するには、タブ・ページの下部にある「ヘルプ」をクリックします。

1.4.3 データ・ウィザードについて

データ・ウィザードを利用すると、複数問合せレポートの問合せ、ブレーク・グループおよび合計をすばやく簡単に定義できます。ウィザードによってデータ・モデルが作成された後、次の操作を行うことができます。

- データ・モデル・ビューでのデータ・モデルの変更

- データ・ウィザードを使用した追加の問合せの作成

- レポート・ウィザードを使用したデフォルトのレイアウトの設定

- ペーパー・レイアウト・ビューでのレイアウトの変更(レイアウト・セクションの並べ替えや追加など)

アクセス

データ・ウィザードを表示するには:

- データ・モデル・ビューで、「挿入」→「問合せ」を選択します。

注意:

データ・ウィザードでは、問合せ間のリンクを作成することはできません。問合せに親子リレーションシップを定義するには、データ・リンクを手動で作成します。

再実行

既存の問合せに対してデータ・ウィザードを再実行するには、次のいずれかの操作を行います。

- 問合せを右クリックして「データ・ウィザード」を選択します。

- グラフをクリックし、「編集」→「設定」を選択します。

データ・ウィザードの使用

ウィザードのタブ・ページのフィールドに関するヘルプを参照するには、タブ・ページの下部にある「ヘルプ」をクリックします。

1.4.4 グラフおよびグラフ・ウィザードについて

グラフ・ウィザードでは、ペーパーベースとJSPベースの両方のWebレポートに、様々な種類のグラフを簡単に追加できます。Oracle Reports Builderは、ウィザードの各ページで指定された情報を使用して、グラフを表すXML定義を作成し、実行時に結果のグラフの外観を表示します。

詳細は、第39章「グラフを使用したレポートの作成」を参照してください。

1.5 オブジェクト・ナビゲータ

この項の各トピックでは、Oracle Reports Builderのオブジェクト・ナビゲータについて説明します。

- オブジェクト・ナビゲータについて

- オブジェクト・ナビゲータのビューについて

1.5.1 オブジェクト・ナビゲータについて

オブジェクト・ナビゲータには、レポートまたはテンプレートのすべてのオブジェクト(連結ライブラリやプログラム・ユニットも含む)が階層表示されます。

オブジェクト・ナビゲータを使用すると、次の操作を実行できます。

- レポート、パラメータ、PL/SQLプログラム・ユニットおよび連結ライブラリの作成

- レポート、問合せ、PL/SQLプログラム・ユニットとライブラリ、データ・モデル・オブジェクト、レイアウト・オブジェクトおよびパラメータ・フォーム・オブジェクトの選択および操作

- レポート・エディタのビューの表示

- ノードの開閉

- オブジェクトの検索

- オブジェクトの階層表示またはタイプ別表示

- プロパティの表示

- オブジェクト・ナビゲータのカスタマイズ

- PL/SQLプログラム・ユニットのドラッグ・アンド・ドロップ

アクセス

オブジェクト・ナビゲータを表示するには:

- レポート・ウィザードで、「終了」または「取消」をクリックします。

- 既存のレポートを開きます。

- 「ツール」→「オブジェクト・ナビゲータ」を選択します。

- [F5]を押します。

関連項目

第4.2.4項「オブジェクト・ナビゲータの環境設定の設定」

1.5.2 オブジェクト・ナビゲータのビューについて

オブジェクト・ナビゲータを利用すると、オブジェクトを所有関係に従って階層表示したり、オブジェクト・タイプ別に表示したりすることができます。

- 「表示」→「表示を変更」→「所有者別表示」を選択すると、親子階層でオブジェクトが表示されます。たとえば、問合せの列はその問合せの下に表示され、フィールドはそのフィールドを囲む繰返し枠の下に表示されます。このビューでは、オブジェクト間のリレーションシップを簡単に確認できるので、デバッグ用のツールとして利用できます。

- 「表示」→「表示を変更」→「オブジェクト・タイプ別表示」を選択すると、オブジェクトがタイプ別に表示されます。たとえば、「問合せ」というヘッダーの下にすべての問合せが表示され、「データベース列」というヘッダーの下にすべてのデータベース列が表示されます。このビューは、オブジェクト・ナビゲータですばやくオブジェクトを見つけるときに便利です。

関連項目

第4.2.4項「オブジェクト・ナビゲータの環境設定の設定」

1.6 レポート・エディタ

この項の各トピックでは、レポート・エディタおよびレポート・エディタでのレポートの様々なビューについて説明します。

- レポート・エディタについて

- データ・モデル・ビューについて

- ペーパー・レイアウト・ビューについて

- ペーパー・デザイン・ビューについて

- ペーパー・パラメータ・フォーム・ビューについて

- Webソース・ビューについて

- ツール・パレットおよびツールバーについて

1.6.1 レポート・エディタについて

レポート・エディタは、レポートのオブジェクトを直接操作したり、プロパティ・インスペクタでプロパティを変更したりできる作業領域です。「レポート・エディタ」ウィンドウでは、レポートについて、データ・モデル・ビュー、ペーパー・レイアウト・ビュー、ペーパー・デザイン・ビュー、ペーパー・パラメータ・フォームおよびWebソース・ビューという異なるビュー間をナビゲートできます。

注意:

デフォルトでは、「ファイル」→「管理」オプションは常に無効になっています。

1.6.2 データ・モデル・ビューについて

レポート・エディタのデータ・モデル・ビューは、レポートで使用するデータ・モデル・オブジェクト(問合せ、グループ、式列、サマリー列、プレースホルダ列、システム・パラメータ、ユーザー・パラメータおよびデータ・リンク)を作成、定義および変更する作業領域です。このビューでは、オブジェクトとそのプロパティ設定が記号で表示され、オブジェクトのタイプとリレーションシップがハイライトされます。データ・モデルの問合せオブジェクトを作成するには、レポート・ウィザード、データ・ウィザードまたはツール・パレットの問合せツールを使用できます。

Oracle Reports Builderでは、データ・モデルを使用して、レポートに取り出すデータが決定されます。データベースから取り出されたデータは、レポートの出力に表示されることも表示されないこともあります。

アクセス

データ・モデル・ビューを表示するには:

- いずれかのレポート・エディタ・ビューで、「表示」→「表示を変更」→「データ・モデル」を選択します。

- ツールバーの「データ・モデル」ボタンをクリックします。

- オブジェクト・ナビゲータで、「データ・モデル」ノードの横の「データ・モデル」ビュー・アイコンをダブルクリックします。

1.6.3 ペーパー・レイアウト・ビューについて

レポート・エディタのペーパー・レイアウト・ビューは、ペーパー・レポートのフォーマットを変更できる作業領域です。レポートのデフォルトのフォーマットは、レポート・ウィザードで指定した情報によって定義されます。レイアウト・オブジェクト(ボイラープレート・テキストとグラフ・オブジェクト、枠、繰返し枠、グラフ、フィールド、アンカー、ファイル・リンク、レポート・ブロックなど)を操作して、フォーマットを変更できます。このビューでは、オブジェクトとそのプロパティ設定が記号で表示され、オブジェクトのタイプとリレーションシップがハイライトされます。

ペーパー・レイアウト・ビューは、レポートのフォーマットを変更する作業領域という点ではペーパー・デザイン・ビューと類似しています。ただし、ペーパー・デザイン・ビューでは、レポートを実行するときにのみ表示され、レポートをプレビューしながら実際のデータ(ライブ・データ)を操作できます。ペーパー・デザイン・ビューでは、レポートを対話形式でカスタマイズできます。つまり、変更を加えるとすぐにその結果を参照できます。

アクセス

ペーパー・レイアウト・ビューを表示するには:

- いずれかのレポート・エディタ・ビューで、「表示」→「表示を変更」→「ペーパー・レイアウト」を選択します。

- ツールバーの「ペーパー・レイアウト」ボタンをクリックします。

- オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードの横の「ペーパー・レイアウト」ビュー・アイコンをダブルクリックします。

1.6.4 ペーパー・デザイン・ビューについて

レポート・エディタのペーパー・デザイン・ビューは、ペーパー・レポートをプレビューしながら、実際のデータ(ライブ・データ)を操作できる作業領域です。ペーパー・デザイン・ビューでは、レポートを対話形式でカスタマイズできます。つまり、変更を加えるとすぐにその結果を参照できます。

列サイズの変更など、レポートを編集するには、ペーパー・デザイン・ビューがフレックス・モードである必要があります。

アクセス

ペーパー・デザイン・ビューは、レポートを実行するたびに表示されます。オブジェクト・ナビゲータまたは任意のエディタからレポートを実行するには、ツールバーの「ペーパー・レイアウトを実行」をクリックするか、「プログラム」→「ペーパー・レイアウトを実行」を選択します。レポート・ウィザードからレポートを実行するには、「終了」をクリックします。

ペーパー・デザイン・ビューは、次の方法で表示することもできます。

- いずれかのレポート・エディタ・ビューで、「表示」→「表示を変更」→「ペーパー・デザイン」を選択します。

注意:

オブジェクト・ナビゲータには「ペーパー・デザイン」ノードはありません。このビューは、レポートを実行した後にのみ表示されます。

- ツールバーの「ペーパー・デザイン・ビュー」ボタンをクリックします。

使用に関する注意

レポートの実行速度を上げるには、レポート出力をペーパー・デザイン・ビューに送信するときに先行フェッチが行われないようにします。次の項目が依存しているデータよりも先にこれらの項目が参照されたときに、先行フェッチが発生します。

- 総ページ数および総パネル数

- 総計

- 計算式であるブレーク列

- 「NULL時の値」が指定されているブレーク列

マトリックス(クロス積)グループを使用するときも、先行フェッチが発生します。Oracle Reports Builderでは、データをクロス集計するために、最初にすべてのデータをフェッチする必要があります。

これらの項目があるとペーパー・デザイン・ビューの実行速度が低下しますが、ファイルなどの出力先に書き出すときのパフォーマンスには影響しません。

注意:

列は、表示されない場合でも、先行フェッチの原因となることがあります。たとえば、総計はレポートの出力に表示されないこともありますが、レポートの一部であるため、Oracle Reports Builderによって計算されるときに先行フェッチが発生します。

1.6.5 ペーパー・パラメータ・フォーム・ビューについて

レポート・エディタのペーパー・パラメータ・フォーム・ビューは、レポートのランタイム・パラメータ・フォームのフォーマットを定義する作業領域です。フォーマットを定義するには、パラメータ・フォーム・オブジェクト(フィールドとボイラープレート)を定義および変更します。「パラメータ・フォーム・ビルダー」を使用して、事前定義されたシステム・パラメータを選択してレポートで使用することも、独自のパラメータを作成することもできます。

レポートを実行するとき、Oracle Reports Builderではペーパー・パラメータ・フォーム・ビューがランタイム・パラメータ・フォームのテンプレートとして使用されます。フィールドとボイラープレートは、ペーパー・パラメータ・フォーム・ビューで表示されているとおりにランタイム・パラメータ・フォームに表示されます。ペーパー・パラメータ・フォーム・ビューでランタイム・パラメータ・フォームを定義しない場合は、実行時にデフォルトのランタイム・パラメータ・フォームが表示されます。

注意:

実行時にランタイム・パラメータ・フォームが表示されるのは、ペーパー・レポート・レイアウトを実行する場合のみです。JSPベースのWebレポートの場合は、ランタイム・パラメータ・フォームはデバッグを目的としてOracle Reports Builderからレポートを実行したときに表示されますが、実行時には表示されません。詳細は、第1.9.4項「Webレポートのパラメータ・フォームについて」を参照してください。

アクセス

ペーパー・パラメータ・フォーム・ビューを表示するには:

- いずれかのレポート・エディタ・ビューで、「表示」→「表示を変更」→「ペーパー・パラメータ・フォーム」を選択します。

- ツールバーの「ペーパー・パラメータ・フォーム」ボタンをクリックします。

- オブジェクト・ナビゲータで、「ペーパー・パラメータ・フォーム」ノードの横の「ペーパー・パラメータ・フォーム」ビュー・アイコンをダブルクリックします。

1.6.6 Webソース・ビューについて

レポート・エディタのWebソース・ビューには、HTMLタグ、JSPタグおよびXMLタグを含む、JSPベースのWebレポートのソース・コードが表示されます。これは1つのWebページです。レポート・ブロック・ウィザードを使用して動的なレポート・ブロックを表示または追加したり、グラフ・ウィザードを使用してグラフを表示または追加したりすることができます。経験豊富なWeb開発者であれば、JSPタグ、HTML、JavaおよびXMLを使用して、このビューでWebソースを直接編集できます。

アクセス

Webソース・ビューを表示するには、次のいずれかの操作を行います。

- いずれかのレポート・エディタ・ビューで、「表示」→「表示を変更」→「Webソース」を選択します。

- ツールバーの「Webソース」ボタンをクリックします。

- オブジェクト・ナビゲータで、「Webソース」ノードの横の「Webソース」ビュー・アイコンをダブルクリックします。

使用に関する注意

- Webソース・ビューでは、アラビア語、中央ヨーロッパ言語、キリル言語、ギリシャ語、ヘブライ語、日本語、タイ語、およびトルコ語が文字化けして表示される場合があります。この問題に対処するには、uifont.ali(ORACLE_INSTANCE\config\FRCommonComponent\
frcommon\guicommon\tk\admin内)にOracle 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です。

- Webソース・ビューで検索や置換の操作を行う場合、Windows上でアジア言語(日本語など)を使用して行っていると、Oracle Reports Builderでエラーが発生します。この問題はUNIXでは発生しません。

関連項目

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

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

第4.6.3項「既存のWebページ(HTMLファイル)へのレポート・データの追加」

第4.6.4項「Webページへのレポート・ブロックの追加」

第4.9.8.2.2項「JSPベースのWebレポートへのグラフの追加」

Oracle Reportsオンライン・ヘルプのリファレンスに関する項にあるOracle Reports JSPタグに関するトピック

1.6.7 ツール・パレットおよびツールバーについて

ツール・パレットとツールバーには、レポート・エディタのビュー(Webソース・ビューを除く)でオブジェクトを手動で作成または操作するためのツールがあります。各ツールは、アイコンとして表示されます。「選択」ツールなど、レポート・エディタのすべてのビューのツール・パレットに共通するツールもあります。その他のツールは、ツールが表示されるビューに固有のものです。Oracle Reports Builderでは、ツールの上にカーソルを移動すると、どのようなツールかを示すヒント・テキストが表示されます。

ツール・パレット

ツール・パレットの位置は、レポート・エディタのビューの左側です。ツールをクリックするとそのツールがアクティブ化されて1つの操作を実行でき、ダブルクリックするとロックされて複数の操作を実行できます。ツール・パレットを非表示にするには、「表示」→「ツール・パレット」を選択して、その選択を解除します。

ツールバー

ツールバーの位置は、レポート・エディタのビューの上部です。ツールバーのツールを使用するには、目的のツールをクリックして処理を実行します。ツールバーのすべてのツールには、対応するメニューもあります。オブジェクトのグループに対して処理を実行するように設計されたツールの場合は、1つ以上のオブジェクトを選択するまではグレー表示されます。ツールをクリックすると、選択されているオブジェクトに対して処理が実行されます。

関連項目

付録A「ツール・パレットとツールバーのリファレンス」

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

この項の各トピックでは、データ・モデル・オブジェクトの基本的な概念について説明します。高度な概念は、第2.3項「データ・モデル・オブジェクト」を参照してください。

- 問合せについて

- グループについて

- データベース列について

- データ・リンクについて

- クエリー・ビルダーについて

1.7.1 問合せについて

問合せによって、レポートで使用するデータが取得されます。問合せは、レポート・ウィザードやデータ・ウィザードを使用して作成するか、データ・モデルのツール・パレットの問合せツールを使用して手動で作成します。問合せでは、あらゆるデータ・ソース(Oracle、XML、JDBC、テキストまたはプラガブル・データ・ソース(PDS) APIからアクセスできる独自のデータ・ソース)からデータを選択できます。また、REFカーソルを使用して問合せを作成することもできます(第2.6.10項「REFカーソル問合せについて」を参照)。

単一問合せレポート

1つの問合せを使用して作成されたレポートは最も単純なレポートです。単一問合せレポートの最も一般的なフォーマットは、表、メール・ラベル、フォーム・レターおよびブレーク(グループ上またはグループ左)です。1つのレポートに、1つの問合せのデータを何回でも、異なる形式でも表示できます。データをレポート出力に含めておかなくても問い合せることができます。これは、複数の問合せ間にリレーションシップを確立する場合や、計算を実行する場合などに便利です。

次の図は、様々な方法でフォーマットされた1つの問合せのデータを示します。

図1-10 同じデータの異なる方法でのフォーマット

最後のレポート・スタイル(グループ左ブレーク)では、最初の3つとはまったく異なる問合せを使用してデータを取得しているように見えます。ただし、最後のスタイルで表示されるデータは最初の3つでは非表示で、逆に最初の3つに表示されているデータは最後のスタイルでは非表示となっています。Oracle Reports Builderでは、問合せで取得したデータが、レポート出力に含まれないようにすることもできます。これは、複数の問合せ間にリレーションシップを確立する場合や、計算を実行する場合などに便利です。

複数問合せレポート

1つのレポートに含まれる問合せの数に制限はありません。複数問合せレポートは、次の場合に便利です。

- マルチパート非関連型問合せレポートを作成する場合。

- マルチパート関連型問合せレポートを作成する場合。

- 問合せを保守しやすいようにする場合(埋込みSELECT文や結合がある複雑な問合せを使用するレポートは、複数の単純な問合せをリンクしたものを使用して作成することもできます。多くの場合、後者のほうが他の開発者が理解しやすく保守も容易です)。

- 1つのレポートで、異なるソート条件で同じデータを2回表示する場合。

複数の問合せを使用するレポートを作成する場合は、問合せどうしを関連付けずにおくことも、データ・リンクを使用して問合せ間のリレーションシップを確立することもできます。

マルチパート非関連型問合せレポート

問合せどうしをリンクしない場合は、マルチパート非関連型問合せレポート(一般にマスター/マスター・レポートと呼ばれます)が作成されます。このようなタイプのレポートには、互いに関連がないデータのリストが表示されます。たとえば、次に示すレポートでは、1つの問合せで製品を選択し、別の問合せで顧客を選択しています。製品と顧客の間には、リレーションシップはありません。

図1-11 互いに関連がない問合せ

マルチパート関連型問合せレポート

多くのレポートでは、レポートのある部分にフェッチされるデータは、別の部分にフェッチされるデータによって決まります。これは、マスター/ディテールまたは親子関係と呼ばれ、2つの問合せ間のデータ・リンクで定義されます。マスター/ディテール・レポートを実行すると、マスター(または親)問合せの行ごとにディテール(または子)問合せが実行され、一致する行のみが取り出されます。

使用に関する注意

- 外部問合せのサポートは廃止されました。

- レポートで使用する問合せの数は、できるだけ少なくします。一般に、問合せの数が少なければ、レポートの実行が速くなります。複数問合せデータ・モデルのほうが理解しやすいことが多いようですが、単一問合せデータ・モデルのほうが通常は速く実行できます。

- 問合せはサーバー上で処理されます。

- 特定のユーザーが作成できるページ数を制限するには、そのユーザーのPRODUCT_PROFILE表にレコードを挿入します。

- 複数問合せデータ・モデルは、次の場合にのみ使用してください。

- 親からはサイズが大きい列を多数フェッチし、子からはサイズが小さい列を少数フェッチする場合

- 問合せのタイプ(SQL問合せなど)では直接サポートされていない処理(多方向外部結合など)を実行する場合

- 複合ビューがある場合(分散問合せ、GROUP BY問合せなど)

- 必要がある場合(ただしビューを使用する必要がない、あるいは使用したくない場合)。

理論的説明

単一問合せレポートの場合、Oracle Reports Builderはカーソルを1つのみ開いてすべてのマスター・レコードとディテール・レコードをフェッチします。2つの問合せを使用するレポートの場合、Oracle Reports Builderはディテール問合せのリンクをディテール問合せのWHERE句に付加した後、2つのカーソル(問合せごとに1つ)を開きます。したがって、Oracle Reports Builderは、マスター問合せでフェッチされたマスター・レコードごとにディテール問合せをリバインドして実行し、データをフェッチする必要があります。

関連項目

第2.3.5項「リンク不可能な問合せについて」

第4.8.1項「問合せの作成」

1.7.2 グループについて

グループは、レポート内の列を編成するために作成します。グループを使用すると、1つの問合せのデータをいくつかのセットに分けることと、問合せのデータをフィルタすることの2つが可能となります。

問合せを作成すると、その問合せによって選択される列を含むグループが自動的に作成されます。レポートのブレーク・レベルを作成するためのグループを追加するには、データ・モデル・ビューで手動で作成するか、レポート・ウィザードを使用してグループ上レポートまたはグループ左レポートを作成します。

グループは、一部の列を他の列とは異なる方法で処理する場合に作成します。たとえば、次のような場合にグループを作成します。

- 小計(より細かいレベルでの合計)を作成する場合

- レポート出力の中にブレークまたはクロス積を作成する場合

クロス積グループを除くすべてのユーザー作成グループは「ブレーク・グループ」と呼ばれます。

ブレーク・グループ

ブレーク・グループは、小計を作成する場合、列を別の方向に印刷する場合、ブレークを作成する場合などに作成します。ブレーク・グループを使用すると、連続するレコードの重複する値は抑制されます。たとえば、レコードごとに部門番号を選択することができますが、重複する部門番号は印刷されません。

クロス積グループ

クロス積グループは、クロス積の演算を行う場合に作成し、一般にマトリックス・レポートを作成するときに使用されます。

グループ・フィルタ

フィルタを利用すると、問合せで選択されたレコードを条件に応じて除去することができます。グループに設定できるフィルタには、次の2種類があります。

- Oracle Reports Builderのパッケージ・フィルタ

- 「最初」は、グループの最初のnレコード(たとえば、最初の5レコード)のみを表示する場合に使用します。

- 「最後」は、グループの最後のnレコードのみを表示する場合に使用します。

- PL/SQLを使用してユーザーが作成したフィルタ

関連項目

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

第2.6.9項「グループ・フィルタについて」

第1.3.2項「グループ上レポートについて」

第1.3.3項「グループ左レポートについて」

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

第4.5.1項「レポートの作成」

第4.5.2項「複数問合せのグループ上レポートの作成」

第4.8.7項「ブレーク・グループの作成」

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

1.7.3 データベース列について

データベース列は、問合せによって選択される列を表し、レポートで使用されるデータ値が格納されています。問合せで選択する列ごとに、レポートのデータ・モデルに列が自動的に作成されます。データベース列の値に対してサマリーや計算を実行するには、データ・モデル・ビューで新しい列を手動で作成するか(サマリー列および計算式列の場合)、レポート・ウィザードを使用します(サマリー列の場合)。作成したグループに列を再び割り当てることもできます。

従来の列型(日付、数値、文字など)に加えて、Oracle Reports Builderではグラフィックまたはイメージの列もサポートされています。この列の値は次のいずれかです。

- データベースに直接格納されているグラフィックまたはイメージ。このような列のデータ型は、通常LONGまたはLONG RAWで、1つのグラフィックまたはイメージが格納されています。この場合は、列のプロパティでグラフィックのフォーマットを指定します。

- ファイル名。このような列の値は、オペレーティング・システムに保存されているファイルへのポインタです。この場合は、列のプロパティで、列の値がファイルの内容であることと(「ファイルからの読込み」)、ファイルのフォーマットを指定します。BMP、CALS、CGM、GIF、JFIF、PCD、PCX、PICT、RAS、TIFFなど、グラフィックまたはイメージの多数のフォーマットがサポートされています。

関連項目

第4.8.1項「問合せの作成」

第4.8.5項「データベースからのイメージの選択」

第2.3.4項「列参照とパラメータ参照について」

第2.3.1項「サマリー列について」

第2.3.2項「式列について」

第2.3.3項「プレースホルダ列について」

1.7.4 データ・リンクについて

データ・リンク(または親子関係)は、複数の問合せの結果を関連付けます。データ・リンクによって、次のようなリレーションシップを確立できます。

- 1つの問合せの列と別の問合せの列の間。

- 1つの問合せのグループと別の問合せのグループの間(これは、子問合せが親のデータのことを知っている必要がある場合に便利です)。

データ・リンクを作成すると、親グループのインスタンスごとに子問合せが1回実行されます。子問合せが実行されるときは、親で使用された主キーの値が使用されます。

Oracle Reports Builderが問合せを解析できる場合、データ・リンクがあるレポートが実行されたとき、そのデータ・リンクはSQL句(リンクのプロパティ・インスペクタで指定)に変換されて、子問合せに追加されます。

重要な注意: 問合せを解析できない場合は、問合せは変更されません(たとえば、プラガブル・データ・ソースに対して定義されている問合せでは、データをフェッチする方法をOracle Reports Builderが変更することはできません)。

リンクは一般に等価結合ですが(たとえば、WHERE DEPTNO=DEPTNO)、SQLの様々な句(WHERE、HAVING、START WITH)と条件でリンクを作成できます。データベースにデータベース制約がある場合は、制約からSQL句と条件を導出するデータ・リンクを作成できます。個々の親問合せと子問合せのSELECT文はOracle Reports Builderで表示できますが、定義したデータ・リンクによって作成される句を含むSELECT文を表示することはできません。

例

次に示すレポートには、次のリンクが定義されています。

図1-12 サンプルのデータ・リンク

マスター問合せのデフォルト・グループ(列「Order ID」と列「Customer」を含む)は親グループで、ディテール問合せ(「Item」、「Product」および「Amount」が属している問合せ)は子問合せです。

図1-13 サンプルのデータ・リンクの出力

注意:

Oracle Reports Builderでは、列オブジェクトを含む問合せ間のデータ・リンクはサポートされていません。このようなリンクを作成しようとすると、メッセージ・ダイアログ・ボックスが表示され、グループ対グループの問合せをかわりに作成するか(親グループを使用)、操作を取り消すかを選択できます。なんらかのタイプの列と列オブジェクトの間のリンクを作成する場合は、子問合せのSQL文を手動で変更し、マスター問合せの列に基づく適切なWHERE句を追加します。

関連項目

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

第2.3.5項「リンク不可能な問合せについて」

第4.8.9項「データ・リンクの作成」

1.7.5 クエリー・ビルダーについて

クエリー・ビルダーは、アナリスト、管理者およびその他のビジネス・プロフェッショナル向けの使用しやすいデータ・アクセス・ツールです。これを使用することにより、社内データベースの情報に、論理的に、そして直感的にアクセスして、解析や報告に活用できます。

クエリー・ビルダーは、コンピュータ・プログラミングやデータベースの経験がない専門家でも使用できるよう設計されています。このツールは強力な問合せ機能とSQL (Structured Query Language)文のサポート機能を備えているため、経験豊富なデータベース・ユーザーとプログラマのニーズにも応えます。

クエリー・ビルダーのグラフィカルな「問合せ」ウィンドウで、組織のデータベースからデータを取り出すリクエストを指定できます。データのリクエストは、問合せと呼ばれます。

クエリー・ビルダーでは、SQL SELECT文を使用すると、作成する問合せのほとんどを定義できます。クエリー・ビルダーでは、作業領域に表示された列に基づいて、適切なSELECT FROM [table.column]句が自動的に生成されます。

関連項目

第4.8.3項「クエリー・ビルダーの使用」

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

この項の各トピックでは、レイアウト・オブジェクトの基本的な概念について説明します。高度な概念は、第2.4項「レイアウト・オブジェクト」を参照してください。

- 枠について

- 繰返し枠について

- 枠と繰返し枠のサイズ変更について

- フィールドについて

- ボイラープレート・オブジェクトについて

1.8.1 枠について

枠は、他のオブジェクトを囲むもので、これらのオブジェクトが上書きされたり他のオブジェクトによって押し出されたりしないように保護します。たとえば、あるグループによって所有されるすべてのオブジェクト、列ヘッダー、サマリーなどを枠で囲むことができます。

レポートのデフォルト・レイアウトを使用する場合、Oracle Reports Builderでは必要に応じてレポート・オブジェクトのまわりに枠が作成されます。また、ペーパー・レイアウト・ビューで枠を手動で作成することもできます。第1.6.3項「ペーパー・レイアウト・ビューについて」を参照してください。

枠は、次のような場合に作成します。

- 複数のオブジェクトをグループ化して、印刷時にオブジェクトどうしの相対位置が維持されるようにする場合。

- レポート内のセクションを線で囲む場合。
例: 各ページの上部は表形式にして、各ページの下部はマトリックス形式にします。

- 他のオブジェクトが上書きされないように保護する場合。
例: 2つの繰返し枠の下の中央にサマリーを配置します。デフォルトのルールでは、サマリーとの間に一定の距離をおく必要があるのはサマリーを上書きできる最初のオブジェクトのみなので、2番目の繰返し枠によってサマリーが上書きされる恐れがあります。両方の繰返し枠を枠で囲むことによって、サマリーは常に両方の繰返し枠から一定の距離をおいた位置に維持されるようになり、上書きを避けることができます。

- あるオブジェクトが、他のオブジェクトの印刷が完了してから印刷されるようにする場合。
例: 2つの繰返し枠の下の中央にサマリーを配置します。デフォルトのルールでは、最初の繰返し枠の印刷が完了するとすぐにサマリーが印刷されます。2つの繰返し枠の周囲に枠を作成することにより、両方の繰返し枠の印刷が完了した後にサマリーが印刷されるようにします。

関連項目

第4.9.1.2項「枠または繰返し枠の作成」

1.8.2 繰返し枠について

繰返し枠は、グループの列に対して作成されたすべてのフィールドを囲むものです。繰返し枠は、グループのレコードごとに1回印刷(起動)されます。

レポートのレイアウトを指定しない場合、Oracle Reports Builderによってデータ・モデルのグループごとに1つの繰返し枠が生成され、グループの列ごとに1つのフィールドがその中に配置されます。繰返し枠であらゆるレイアウト・オブジェクトを囲むことができ、繰返し枠で他の繰返し枠を囲むことも可能です。ネストした繰返し枠は、一般にマスター/ディテール・レポートおよびブレーク・レポートの作成に使用されます。外側の繰返し枠のレコードごとに、囲まれている繰返し枠のすべての関連レコードがフォーマットされます。

ペーパー・レイアウト・ビューで、繰返し枠を手動で作成することもできます。第1.6.3項「ペーパー・レイアウト・ビューについて」を参照してください。

関連項目

第4.9.1.2項「枠または繰返し枠の作成」

1.8.3 枠と繰返し枠のサイズ変更について

オブジェクトまたはレコードごとに、枠または繰返し枠のサイズを拡張可能にするか、縮小可能にするか、可変にするか、固定にするかを指定できます(「水平拡張度」プロパティおよび「垂直拡張度」プロパティで指定)。たとえば、水平方向のサイズは固定するが、レコードによって高さが足りないときは垂直方向に拡張するようにこれらのプロパティを設定できます。

次の図では、部門20には4レコードありますが、部門10と部門30には1レコードずつしかありません。繰返し枠は、部門20のレコードが収まるように垂直方向に拡張されています。

図1-14 繰返し枠のサイズ変更

オブジェクトやレコードに必要なスペースが、枠や繰返し枠の最初のサイズより小さい場合、水平方向または垂直方向に縮小できる枠や繰返し枠であれば、サイズを縮小できます。また、枠や繰返し枠のサイズを可変に設定しておくこともできます。その場合は、表示される値のサイズに応じて枠や繰返し枠が拡張または縮小します。また、枠や繰返し枠のサイズを固定に設定しており、フィールドが小さいためにオブジェクトやレコードのデータを収めきれなかった場合、残りのデータは同じX軸とY軸座標で次のページに表示されます。

関連項目

第4.9.1.2項「枠または繰返し枠の作成」

1.8.4 フィールドについて

フィールドは、パラメータ、列およびページ番号や現在の日付などの値のプレースホルダです。パラメータまたは列に関連付けられたフィールドがない場合、その値はレポート出力には表示されません。フィールドを所有するのは、そのフィールドを最初に囲むオブジェクト(枠または繰返し枠)です。

レポートのレイアウトを指定しない場合、Oracle Reports Builderによって列ごとに1つのフィールドが作成され、各フィールドは繰返し枠の中に配置されます。ペーパー・デザイン・ビュー、ペーパー・レイアウト・ビューまたはペーパー・パラメータ・フォーム・ビューで、フィールドを手動で作成することもできます。

注意:

テンプレート内にフィールド・オブジェクトを作成した場合、そのテンプレートがレポートに適用されるときにフィールドの名前が変更されます。たとえば、F_1という名前のフィールドを作成した場合、そのテンプレートがレポートに適用されると、フィールド名はF_1_SEC2に変更されます。そのため、ボイラープレート(&F_1)でF_1を参照している場合、その参照を更新する必要があります。

関連項目

第1.9.2項「パラメータ・フォーム・フィールドについて」

第4.9.1.1項「フィールド・オブジェクトの作成」

第4.9.2.5項「ボイラープレート・テキスト内でのフィールドの参照」

1.8.5 ボイラープレート・オブジェクトについて

ボイラープレート・オブジェクトは、レポートが実行されるたびにレポートに表示されるテキスト、線またはグラフィックです。

レポート・ウィザードで選択したラベルごとに、Oracle Reports Builderによって1つのボイラープレート・オブジェクトが作成されます(名前はB_columnnameとなります)。たとえば、列名がENAMEの場合、ENAMEを含むボイラープレート・オブジェクトがこの列に対して生成されます。レポート・タイプによっては、ラベルの下に線も生成されます。

ペーパー・デザイン・ビュー、ペーパー・レイアウト・ビューまたはペーパー・パラメータ・フォーム・ビューで、ツール・パレットの次のツールを使用してボイラープレート・オブジェクトを手動で作成することもできます。

- 「円弧」ツール

- 「楕円」ツール

- 「ファイル・リンク」ツール

- 「手書き」ツール

- 「線」ツール

- 「多角形」ツール

- 「折れ線」ツール

- 「四角形」ツール

- 「丸い四角形」ツール

- 「テキスト」ツール

ファイルからのボイラープレート

ファイルに格納されているテキスト、グラフィックまたはHTMLをボイラープレートとしてレポートに表示するには、次で説明する手順に従ってそのファイルにリンクします。

- 第4.9.2.6項「ボイラープレート・テキスト・オブジェクトのファイルへのリンク」

- 第4.9.8.1.2項「イメージ・オブジェクトのファイルへのリンク」

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

ファイルにリンクすると、レポートが実行されるたびにそのファイルの内容がボイラープレート・オブジェクトに取り出されることになります。この方法を使用すると、ファイルに対する最新の変更内容を確実に出力に反映できます。

ボイラープレート・イメージ・オブジェクトを、イメージが存在する場所のURLにリンクすることもできます。第4.9.8.1.3項「イメージ・オブジェクトのURLへのリンク」を参照してください。

注意:

これらの手順は、ペーパーベースのレポート専用です。ファイル・リンク・オブジェクトは、JSPベースのWebレポートに実装されていません。

関連項目

第1.9.3項「パラメータ・フォーム・ボイラープレートについて」

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

第4.9.2.2項「2ページごとに表示されるテキストのボイラープレート・オブジェクトの作成」

第4.9.2.5項「ボイラープレート・テキスト内でのフィールドの参照」

第4.9.11.8項「ボイラープレート・オブジェクトの回転」

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

この項の各トピックでは、パラメータ・フォーム・オブジェクトの基本的な概念について説明します。高度な概念は、第2.5項「パラメータ・フォーム・オブジェクト」を参照してください。

- パラメータについて

- パラメータ・フォーム・フィールドについて

- パラメータ・フォーム・ボイラープレートについて

- Webレポートのパラメータ・フォームについて

1.9.1 パラメータについて

パラメータは、実行時に値を設定できる変数です(ランタイム・パラメータ・フォーム、コマンドラインなどから)。実行時にSELECT文を変更する場合や、PL/SQL変数を設定する場合に特に便利です。

Oracle Reports Builderでは、実行時に一連のシステム・パラメータが自動的に作成されますが、ユーザー独自のパラメータを作成することもできます。問合せの任意の部分にある1つのリテラル値または式全体のいずれかを置換するパラメータを作成できます。パラメータは、レポートに条件論理を追加するPL/SQL構成体の内部など、レポート内のどこからでも参照できます。

注意:

ユーザー・パラメータは削除したり名前変更したりできますが、システム・パラメータは削除したり名前変更したりできません。

パラメータの値は、次の方法で指定できます。

- パラメータのデフォルト値を受け入れます(デフォルト値はパラメータのプロパティで設定し、実行時にランタイム・パラメータ・フォームに値を表示するかどうかを制御できます)。

- コマンドラインで、引数としてパラメータ値を入力します(該当する場合)。コマンド・ラインで指定したパラメータにより、レポート定義に設定された同等のシステム・パラメータ値がオーバーライドされます。コマンドラインの引数の詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』のコマンドライン・キーワードに関する付録、またはOracle Reportsオンライン・ヘルプを参照してください。

- ランタイム・パラメータ・フォームで、パラメータ値をリストから選択するか入力します。

システム・パラメータ

Oracle Reportsでは、次のシステム・パラメータがあらかじめ定義されています。前述の方法で、これらのデフォルト値を変更できます。

表1-1 システム・パラメータの説明

システム・パラメータ

説明

COPIES

レポートの印刷時に作成されるレポートの部数です。

DESFORMAT

次のいずれかです。

- レポートの出力フォーマット(ビットマップ・レポートのPDF、HTML、HTMLCSS、RTF、XML、SPREADSHEET、DELIMITED、DELIMITEDDATAなど)。

- DESTYPE=FILEおよびDESNAME=filenameの場合にレポートのフォーマット時に使用されるプリンタ定義。MODE=BITMAPの場合は、プリンタの名前です。MODE=CHARACTERの場合は、キャラクタ・モード・プリンタ定義ファイル(.prtファイル)です。

DESNAME

出力デバイスの名前です(ファイル名、プリンタ名、メール・ユーザーIDなど)。

DESTYPE

レポートの出力を受け取るデバイスのタイプです(SCREEN(スクリーン・フォントを使用してレポートをフォーマットする場合)、FILE、PRINTER、MAIL、SYSOUT、CACHE、LOCALFILEなど)。

MODE

レポートをCHARACTERモードとBITMAPのどちらで実行するかを示します。

ORIENTATION

レポートの印刷方向です(LANDSCAPE、PORTRAIT、DEFAULT)。

PRINTJOB

レポートを実行する前に印刷ジョブのダイアログ・ボックスを表示するかどうかを示します。

ユーザー・パラメータ

ユーザー・パラメータは、次の方法で作成できます。

- オブジェクト・ナビゲータでパラメータを作成します。

- 問合せの中でパラメータのバインド参照を使用することにより、パラメータが初めて参照されたときに自動的にパラメータが作成されるようにします(第2.3.4.1項「バインド参照について」を参照)。

関連項目

第2.3.4項「列参照とパラメータ参照について」

第4.11.1項「事前定義されたシステム・パラメータの使用」

第4.11.2項「ユーザー・パラメータの作成」

第4.11.3項「パラメータの値リスト(LOV)の作成」

第4.11.4項「実行時におけるパラメータ値の検証」

第4.11.6項「ランタイム・パラメータ・フォームに追加するパラメータの選択」

第4.11.9項「バッチ・モードで実行中のレポートへのパラメータ渡し」

1.9.2 パラメータ・フォーム・フィールドについて

ペーパー・パラメータ・フォーム・ビュー(第1.6.5項「ペーパー・パラメータ・フォーム・ビューについて」)の各フィールドは、パラメータのプレースホルダとして機能します。これらのフィールドは、ランタイム・パラメータ・フォームに表示されるパラメータのフォーマット属性を定義します。デフォルトでは、「パラメータ・フォーム・ビルダー」で選択したパラメータごとに1つのフィールドが作成されます。

関連項目

第1.8.4項「フィールドについて」

第4.11.5項「デフォルト・パラメータ・フォームの作成」

第4.11.7項「実行時におけるパラメータ・フォームの表示」

1.9.3 パラメータ・フォーム・ボイラープレートについて

ペーパー・パラメータ・フォーム・ビューのボイラープレートとは、実行されるたびにランタイム・パラメータ・フォームに表示されるテキストおよびグラフィックスのことです。たとえば、特定のパラメータを示すラベルは、Reports Builderによって作成されるボイラープレート・テキストです。レイアウトで作成した線やボックスも、そららに追加されたテキストと同様にボイラープレートとして扱われます。

ボイラープレートを利用すると、ランタイム・パラメータ・フォームをカスタマイズできます。デフォルトでは、ランタイム・パラメータ・フォームに表示される各フィールドについて、ボイラープレート・ラベルが生成されます。

関連項目

第1.8.5項「ボイラープレート・オブジェクトについて」

第4.11.5項「デフォルト・パラメータ・フォームの作成」

第4.11.7項「実行時におけるパラメータ・フォームの表示」

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

Webレポートおよびペーパー・レポートの両方に対してパラメータ・フォームを設計できます。ただし、実行時にランタイム・パラメータ・フォームが表示されるのは、ペーパー・レポート・レイアウトを実行する場合のみです。JSPベースのWebレポートの場合は、ランタイム・パラメータ・フォームはデバッグを目的としてOracle Reports Builderからレポートを実行したときに表示されますが、実行時には表示されません。

レポートはあらゆるWebページで自由に表示できるので、他のポートレットやオブジェクトが多数含まれているWebページ上に1つのオブジェクトとしてレポートを配置したり、レポートのパラメータをパラメータ・フォーム以外のソースから取り出したりすることができます。たとえば、Webページによってページ上のすべてのポートレットにパラメータが設定されることがあります。したがって、レポートがフォーマットされる前にJSPベースのWebレポートのランタイム・パラメータ・フォームを表示することは意味がありません。

ランタイム・パラメータ・フォームが使用できない場合は、パラメータ・フォームを使用するように設計されたJSPベースのWebレポートの必須パラメータに値を設定するには、別の手段を使用する必要があります。次に例を示します。

- レポートを設計するときに、すべてのパラメータにデフォルト値を設定します。

- URLを使用してレポートを実行するときに、URLを経由してパラメータを設定します。

- レポートからコールされるHTMLフォームを作成して、パラメータ値を静的値、またはOracle ReportsのカスタムJSPタグを使用する値リストとして設定します。

- レポートがポートレットとしてWebページに表示される場合は、ページ・レベルのパラメータをレポートに渡すことができます。

- JSPタグ<rw:reports id="myReport" parameters="yourParameterList">を使用します。このyourParameterListにはJava変数を使用できます。次に例を示します。

<% String myParameterList="userid=scott/tiger&p_deptno+10"; %>
<rw:report id="myReport" parameters="<%= myParameterList %>">

JSPベースのWebレポートに対するパラメータ・フォームの作成の詳細は、第42章「JSPベースのWebレポートに対する単純なパラメータ・フォームの作成」を参照してください。

注意:

ペーパーベースのレポートをWebで表示する場合は、次のいずれかを使用してHTMLのヘッダー・タグおよびフッター・タグを追加することにより、HTMLパラメータ・フォームを作成できます。

- プロパティ・インスペクタ: レポートの「BEFORE FORM値」と「フォーム後値」のプロパティを設定します。

- PL/SQL: SRW.SET_BEFORE_FORM_HTMLプロシージャおよびSRW.SET_AFTER_FORM_HTMLプロシージャを使用して、フォーマット・トリガーを設定します。

関連項目

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

第1.6.5項「ペーパー・パラメータ・フォーム・ビューについて」

第1.11.1項「ランタイム・パラメータ・フォームについて」

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

1.10 プロパティ・インスペクタ

この項の各トピックでは、Oracle Reports Builderのプロパティ・インスペクタについて説明します。

- プロパティ・インスペクタについて

- プロパティ・インスペクタでの複数選択について

1.10.1 プロパティ・インスペクタについて

プロパティ・インスペクタは、オブジェクト・ナビゲータ、レポート・エディタおよびテンプレート・エディタで現在選択されているオブジェクトのプロパティにアクセスするためのウィンドウです。

Oracle Reports Builderの各オブジェクト(問合せ、グループ、枠、パラメータなど)にはプロパティが関連付けられており、プロパティ・インスペクタを使用して表示できます。プロパティに関するヘルプを参照するには、プロパティ・インスペクタでプロパティをクリックして[F1]キーを押します。

1.10.1.1 プロパティ・インスペクタでの複数選択について

ナビゲータまたはエディタで、[Shift]を押しながらクリックするか、[Ctrl]を押しながらクリックすると、複数のオブジェクトを同時に選択できます。2つ以上のオブジェクトが選択されているときは、プロパティ・インスペクタの上部にオブジェクト名のリストが表示されます。

プロパティ・インスペクタのツールバーにある「論理積/論理和」ボタンによって、複数のオブジェクトが選択されているときにどのプロパティがリストに表示されるかが決まります。「論理積」と「論理和」を切り替えると、プロパティ・インスペクタに表示されているプロパティのリストが変化しますが、プロパティの設定には影響しません。

表1-2 プロパティ・インスペクタの「論理積」と「論理和」

ボタン

説明

論理積

デフォルトです。選択されているすべてのオブジェクトに共通するプロパティのみが表示されます。

論理和

選択されているすべてのオブジェクトのすべてのプロパティが表示されます。

複数選択するときに、2つ以上のオブジェクトに共通するプロパティはリストに一度だけ表示され、プロパティの設定は次のように表示されます。

- 選択されているオブジェクトに共通するプロパティの設定がすべてのオブジェクトで同じである場合は、共通の設定が表示されます。

- 選択されているオブジェクトに共通するプロパティの設定がオブジェクトによって異なる場合は、「*****」という文字列が表示されます。

関連項目

第4.2.2項「レポートのプロパティの設定」

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

第4.2.7項「複数オブジェクトのプロパティの設定」

第4.2.8項「オブジェクトどうしのプロパティの比較」

1.11 実行時ビュー

この項の各トピックでは、実行時に表示されるレポートのビューについて説明します。

- ランタイム・パラメータ・フォームについて

- プレビューアについて

1.11.1 ランタイム・パラメータ・フォームについて

ランタイム・パラメータ・フォームは、実行時にオプションで表示されるダイアログ・ボックスで、デフォルトのパラメータ値をオーバーライドできます(SELECT文を変更する値の指定、レポート出力先デバイスの変更など)。ランタイム・パラメータ・フォームのフォーマットは、ペーパー・パラメータ・フォーム・ビューで定義します。ペーパー・パラメータ・フォーム・ビューでランタイム・パラメータ・フォームを定義しない場合は、実行時にデフォルトのランタイム・パラメータ・フォームが表示されます。

必要に応じてパラメータを変更し、ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックすると、レポートが実行されます。

または、ツールバーの「実行取消」ボタンをクリックして取り消します。

関連項目

第1.6.5項「ペーパー・パラメータ・フォーム・ビューについて」

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

第4.11.7項「実行時におけるパラメータ・フォームの表示」

1.11.2 プレビューアについて

プレビューアは、レポートがどのように印刷されるかを画面に表示するものです。プレビューアでは、レポート出力の1ページをスクロールしたり、レポート全体のページを順に表示したり、画面を分割して同じレポートの異なる部分を同時に表示したりすることができます。次の操作も実行できます。

表1-3 印刷プレビューアでの処理

目的

クリックするツールバー上のボタン

レポートを印刷する

「印刷」ボタン

ページ設定を指定する

「ページ設定」ボタン

新しいプレビューアを開く

「新規プレビューア」ボタン

プレビューアを閉じる

「プレビューアを閉じる」ボタン

拡大

「拡大」ボタン

縮小

「縮小」ボタン

物理ページ(パネル)のサイズは、プリンタで出力される1ページ分です。論理ページの大きさは、実際のレポートの1ページ分です(幅または高さが複数の物理ページに及ぶこともあります)。プレビューアには、レポート出力の論理ページが1ページずつ表示されます。

アクセス

プレビューアを表示するには:

- 「ファイル」→「印刷プレビュー」を選択します。

使用に関する注意

レポートの実行速度を上げるには、レポート出力をプレビューアまたはペーパー・デザイン・ビューに送るときに先行フェッチが行われないようにします。次の項目が依存しているデータよりも先にこれらの項目が参照されたときに、先行フェッチが発生します。

- 総ページ数および総パネル数

- 総計

- 計算式であるブレーク列

- 「NULL時の値」が指定されているブレーク列

マトリックス(クロス積)グループを使用するときも、先行フェッチが発生します。Oracle Reportsでは、データをクロス集計するために、最初にすべてのデータをフェッチする必要があります。

これらの項目があるとプレビューアやペーパー・デザイン・ビューの実行速度が低下しますが、ファイルなどの出力先に書き出すときのパフォーマンスには影響しません。

注意:

列は、表示されない場合でも、先行フェッチの原因となることがあります。たとえば、総計はレポートの出力に表示されないこともありますが、レポートの一部であるため、Oracle Reportsによって計算されるときに先行フェッチが発生します。

関連項目

第4.7.16.3項「プレビューアでのレポート出力の表示」

第4.7.17.2項「プレビューアでのレポートの印刷」

1.12 Oracle Reportsコンポーネント

Oracle Reportsコンポーネントは次のとおりです。

表1-4 Oracle Reportsコンポーネントの説明

コンポーネント

説明

rwbuilder

Oracle Reports Builderを起動します。

rwrun

Oracle Reports Servicesインプロセス・サーバーを使用してレポートを実行します。

rwclient

コマンドラインを解析して、指定されたReports Serverに送信します。

rwserver

Reports Serverを起動します(Oracle Enterprise Managerを使用)。

rwservlet

WebサーバーまたはJava EEコンテナ(Oracle WebLogic Serverなど)とReports Serverとの間で情報の変換と配布を行い、Webブラウザからレポートを動的に実行できるようにします。

rwconverter

1つ以上のレポート定義またはPL/SQLライブラリを別の記録フォーマットに変換します。

表1-4に示されている、rwclientとrwserverを除くすべてのコンポーネントは、コマンドラインから実行できます。コンポーネントおよびコマンドライン・キーワードの詳細は、Oracle Reportsオンライン・ヘルプのリファレンスのコマンドラインに関する項を参照してください。Oracle Enterprise ManagerまたはOPMNコマンドによるReports Server、ReportsツールおよびOracle Reports Bridgeの管理と監視の詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』を参照してください。

関連項目

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

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

2 拡張概念

この章では、Oracle Reportsの上級者を対象に概要を説明します。この章の各トピックは、Oracle Reportsオンライン・ヘルプの拡張概念に関する項にも含まれています。

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

- 第2.1項「レポート」

- 第2.2項「Webレポート」

- 第2.3項「データ・モデル・オブジェクト」

- 第2.4項「レイアウト・オブジェクト」

- 第2.5項「パラメータ・フォーム・オブジェクト」

- 第2.6項「PL/SQL」

- 第2.7項「テンプレート」

- 第2.8項「出力フォーマットと機能」

- 第2.9項「データ・ソース」

- 第2.10項「デバッグ・ツール」

2.1 レポート

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

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

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

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

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

- 条件付き書式について

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

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

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

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

- ペーパー・レイアウト・ビューのマージンに、ボイラープレート・テキスト・オブジェクトを手動で作成します。

- レポート・ウィザードの「スタイル」ページで「タイトル」フィールドに入力します。

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

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

- B_OR$REPORT_TITLEがある場合は、レポート・ウィザードで入力したタイトルのテキストが、このオブジェクトの属性を使用して表示されます。

- B_OR$REPORT_TITLEが見つからない場合、タイトルは、選択したテンプレートの「デフォルト」プロパティ(プロパティ・インスペクタの「タイトル」ノードの下)に定義されている属性を使用して表示されます。

注意:

レポート・ウィザードでタイトルを指定しない場合、B_OR$REPORT_TITLEオブジェクトはレポートにコピーされません。

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

関連項目

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

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

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

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

レポートをセクション化すると、同じレポート内に対象読者、出力書式、ページ・レイアウト、ページ・サイズまたは方向が異なる複数のレイアウトを定義できます。レポートにはセクションを3つまで定義でき、セクションごとにボディとマージンの領域を設定できます。各セクションには、ヘッダー、メインおよびトレーラという名前が付いています。デフォルトでは、レポートはメイン・セクションに定義されます。その他のセクションでは、複数のレポートを個別に作成せずに異なるレイアウトを定義できます。ヘッダー・セクションとトレーラ・セクションのマージンとボディを使用して、レポートにヘッダー・ページとトレーラ・ページを作成することもできます。

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

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

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

例

例1

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

例2

レポートのエグゼクティブ・サマリーを上級管理者に送信し、詳細な分析情報を各マネージャに電子メールで送信できます。この例では、1つのレポートに2つのレポート・セクション(縦方向のサマリー・セクションと横方向の詳細セクション)を作成します。「繰返し」プロパティを使用して、マネージャをリストするデータ・モデル・グループに詳細セクションを関連付け、データ・モデル・グループの各インスタンスの宛先を変更すると、出力が各マネージャに送信されます。

関連項目

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

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

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

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

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

- 「サイズの単位」プロパティを設定します。

- rwconverterを使用してレポートを変換します。DUNITキーワードで異なるサイズの単位を指定します。

- 異なる環境でレポートを開きます。たとえば、キャラクタ・モードのレポートを開くと、Reports Builderでは、レポートのサイズの単位がビットマップ環境のデフォルトに変更されます。レポートを保存する場合、新しいサイズの単位でレポートが保存されます。

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

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

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

- 物理ページ(マージンを含む)のディメンションを、「幅」プロパティと「高さ」プロパティを使用して指定します。

- 物理ページ(プリンタ・ページ)から構成される論理ページ(レポート・ページ)のディメンションを、「ページ当たりの水平パネル」プロパティ(幅)と「ページ当たりの垂直パネル」プロパティ(高さ)を使用して指定します。たとえば、「ページ当たりの水平パネル」のサイズを1にすると各論理ページの幅が物理ページの幅になり、「ページ当たりの垂直パネル」のサイズを2にすると、各論理ページの高さは2つの物理ページ分になります。

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

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

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

フォントの構成ファイル、フォントの別名の作成、フォントに関するトラブルシューティング、フォント・タイプなど、Oracle Reportsでのフォントの使用方法および追加方法の詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「Oracle Reportsにおけるフォントの管理」を参照してください。

2.1.6 条件付き書式について

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

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

- オブジェクトをダブルクリックして、プロパティ・インスペクタを表示します。「標準レイアウト」ノードで、「条件付き書式」の値フィールド(「...」とラベル付けされています)をクリックします。

- オブジェクトのポップアップ・メニューを表示します(Windowsでは右クリックします)。

- オブジェクトをクリックし、「書式」→「条件付き書式」を選択します。

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

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

関連項目

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

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

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

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

注意:

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

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

関連項目

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

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

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

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

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

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

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

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

関連項目

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

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

2.2 Webレポート

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

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

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

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

- PDF出力の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ベースのスクリプレットは、ページに動的なコンテンツを生成するコンポーネントをコールするために使用します。

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

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

- 幅広い種類のクライアント・マシンとブラウザで実行できます。

- Thinクライアントで実行できるため、クライアント・マシンのリソース消費が軽減されます。

- より多くの同時ユーザーに対応できます。

- インストールおよび保守に必要な作業が少なくなります。

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

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

2.2.1.1 Oracle ReportsでのJSPの使用

Oracle Reportsでは、Oracle 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レポートのソース・コードが表示されます。

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

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

<a href="http://hostname:port/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ファイルを実行する場合

REP-6106またはREP-6104: javax.servlet.jsp.JspException(マルチバイト)
REP-0495 問合せをトークン化できません。(シングルバイト)

- Oracle Reports Builderを使用してJSPファイルを起動したとき:

REP-0069 Internal ErrorまたはREP-6106

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

次に例を示します。

- JSPベースのWebレポート・エンコーディング:
<%@ page contentType="text/html;charset=EUC-JP" %>
<META http-equiv="Content-Type" content="text/html;charset=EUC-JP">

このJSPファイルはキャラクタ・セット(EUC-JP)でエンコードする必要があります。

- Oracle Reports Builderのエンコーディング:
NLS_LANG=JAPANESE_JAPAN.JA16EUC

この例では、JSPベースのWebレポートのエンコーディング(EUC-JP)が、Oracle Reports BuilderのNLS_LANGのキャラクタ・セット部分、つまりJA16EUCと一致しています。

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.xsl(ORACLE_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になります。

この機能を使用するために、Reports Serverを構成する必要はありません。Oracle Reports Builderは、スタンドアロンのOracle WebLogic Serverを使用して、レポートのWebレイアウトを生成します。

ドキュメント・ルート

デフォルトでは、Oracle Reports Builderのドキュメント・ルート・ディレクトリは次のようになります。
$DOMAIN_HOME/servers/<MANAGED_SERVER_NAME>/stage/reports/reports/web.war/これは、Oracle Reports Builderの構成ファイル(rwbuilder.conf)内で、次のように構成できます。

<webLayout
docroot="DOMAIN_HOME/servers/<MANAGED_SERVER_NAME>/stage/reports/reports/web.war/"/>

エンド・ユーザーは、この構成可能なdocrootをコマンドラインからWEBSERVER_DOCROOTコマンドライン・キーワードを使用して変更することもできます。JSPがイメージやスタイル・シートなどの外部ファイルに依存している場合は、それらをdocrootディレクトリにコピーする必要があります。docrootは、Reportsアプリケーションがデプロイされている任意のOracle WebLogic Serverコンポーネントの$DOMAIN_HOME/servers/<MANAGED_SERVER_NAME>/stage/reports/reports/web.war/ディレクトリをポイントする必要があります。

Webサーバー・ポート

デフォルトでは、OHSポートはWebサーバー・ポートと見なされます。これは、Oracle Reports Builderの構成ファイル(rwbuilder.conf)内で、次のように構成できます。

<webLayout port="ohs_port"/>

エンド・ユーザーは、この構成可能なportパラメータをコマンドラインからWEBSERVER_PORTコマンドライン・キーワードを使用して変更できます。

使用に関する注意

- 生成されたファイル名にある桁数の大きな数字は、単に一意のIDで特に意味はありません(たとえば、emp012345678.jsp)。

- docrootディレクトリに作成された一時ファイルは、Oracle Reports Builderの終了時にクリーン・アップされます。

関連項目

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

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

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

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

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

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

- 同じレポート内でのオブジェクトから他のオブジェクトへのリンク、またはオブジェクトから別のHTMLやPDFドキュメントへのリンク(第2.2.5項「ハイパーリンクについて」を参照)。

- Webリンクの参照先を示す識別子(第2.2.7項「ハイパーリンクの宛先について」を参照)。参照先には、レポート・レイアウト内にある印刷可能な任意のオブジェクト(フィールド、ボイラープレート、枠など)を指定できます。

- 関連するオブジェクトにリンクしているマスターHTMLドキュメントのフレーム内の文字列(第2.2.8項「ブックマークについて」を参照)。ブックマークは、レポート・レイアウト内にある印刷可能な任意のオブジェクト(フィールド、ボイラープレート、枠など)に関連付けることができます。フォーマット済のレポートで、ブックマークをクリックすると、ウィンドウの上部に関連オブジェクトが表示されます。

- イメージ・リソースを指定するURL。URLは、ブラウザでHTML出力を表示するときにイメージを挿入できるように、Web Serverで使用可能なものにする必要があります。

- 指定した宛先にグラフの領域をリンクするハイパーリンク。

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

- HTMLドキュメントの先頭にロゴまたはいくつかの標準リンクを挿入するためのドキュメント・ヘッダー(レポート前値)(第2.2.10項「前および後のエスケープについて」を参照)。

- HTMLドキュメントの最後にロゴまたはいくつかの標準リンクを挿入するためのドキュメント・フッター(レポート後値)。

- HTMLドキュメントの特定のページまたはすべてのページの先頭にロゴまたはいくつかの標準リンクを挿入するためのページ・ヘッダー(ページ前値)。

- HTMLドキュメントの特定のページまたはすべてのページの最後にロゴまたはいくつかの標準リンクを挿入するためのページ・フッター(ページ後値)。

- HTMLパラメータ・フォームのヘッダーにロゴまたはいくつかの標準リンクを挿入するためのパラメータ・フォーム・ヘッダー(フォーム前値)。

- HTMLパラメータ・フォームのフッターにロゴまたはいくつかの標準リンクを挿入するためのパラメータ・フォーム・フッター(フォーム後値)。

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

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

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

- 同じレポート内でのオブジェクトから他のオブジェクトへのリンク、またはオブジェクトから別のHTMLやPDFドキュメントへのリンク(第2.2.5項「ハイパーリンクについて」を参照)。

- Webリンクの参照先を示す識別子(第2.2.7項「ハイパーリンクの宛先について」を参照)。参照先には、レポート・レイアウト内にある印刷可能な任意のオブジェクト(フィールド、ボイラープレート、枠など)を指定できます。

- 関連するオブジェクトにリンクしているPDFビューアのブックマーク領域の文字列(第2.2.8項「ブックマークについて」を参照)。ブックマークは、レポート・レイアウト内にある印刷可能な任意のオブジェクト(フィールド、ボイラープレート、枠など)に関連付けることができます。フォーマット済のレポートで、ブックマークをクリックすると、ウィンドウの上部に関連オブジェクトが表示されます。

- クリックしたときにコマンドを実行するリンク(第2.2.9項「アプリケーション・コマンドライン・リンクについて」を参照)。コマンドは、レポート・レイアウト内にある印刷可能な任意のオブジェクト(フィールド、ボイラープレート、枠など)に関連付けることができます。フォーマット済のレポートで、オブジェクトをクリックすると、関連付けられているコマンドが実行されます。

- 指定した宛先にグラフの領域をリンクするハイパーリンク。

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

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

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

- 同じレポート内にあり、ハイパーリンクの宛先で識別されているオブジェクト

- 同じマシンまたはリモートのWeb Serverにある他のHTMLドキュメントやPDFドキュメント

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

関連項目

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

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

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

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

関連項目

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

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

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

関連項目

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

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

2.2.8 ブックマークについて

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

関連項目

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

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

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

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

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

制限

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

関連項目

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

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

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

- レポート前値には、ドキュメントの先頭に配置する任意のテキスト、グラフィックまたはHTMLコマンドを指定します。

- レポート後値には、ドキュメントの最後に配置する任意のテキスト、グラフィックまたはHTMLコマンドを指定します。

- ページ前値には、ドキュメントの特定のページまたはすべてのページの先頭に配置する任意のテキスト、グラフィックまたはHTMLコマンドを指定します。

- ページ後値には、ドキュメントの特定のページまたはすべてのページの最後に配置する任意のテキスト、グラフィックまたはHTMLコマンドを指定します。

- フォーム前値には、HTMLパラメータ・フォームの上部に配置する任意のテキスト、グラフィックまたはHTMLコマンドを指定します。

- フォーム後値には、HTMLパラメータ・フォームの下部に配置する任意のテキスト、グラフィックまたはHTMLコマンドを指定します。

制限

After Reportエスケープでは(第2.2.10項「前および後のエスケープについて」を参照)、HTMLコマンドを本体の外側に追加しても、スプレッドシート出力でのレポートの生成時、HTMLコマンドは出力に適切に書き込まれますが、反映はされません。次に例を示します。

</body><table><tr><td><B>太字になるテキスト</B></td><tr></table> </html>

本体タグを閉じる前にHTMLコマンドを追加すると、スプレッドシート出力でのレポートの生成時にタグが正しく反映されます。次に例を示します。

<table><tr><td><B>太字になるテキスト</B></td><tr></table></body></html>

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

関連項目

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- 任意のフォント・サイズまたはフォント・スタイル

- オーバーラップしたオブジェクト

- 任意のカラーと幅を持つ水平線、垂直線および四角形

- ページ上でのオブジェクトの厳密な配置

- ページ番号付け

- Webブラウザからの印刷

- インライン・イメージ・マップ

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

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

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

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

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

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

制限

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

- 楕円、円弧、多角形、折れ線、対角線

- 丸い四角形(単純な四角形として表現されます)

- 矢印線

- 破線、オブジェクトの境界線

関連項目

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

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

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

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

- サマリー列について

- 式列について

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

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

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

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

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

2.3.1 サマリー列について

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

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

注意:

グループ・レポートの場合、レポート・ウィザードとデータ・ウィザードは、ユーザーが定義する各サマリー列のデータ・モデル内にn個のサマリー・フィールドを作成します。サマリーする列より上のグループ・レベルごとに1つ、およびレポート・レベルで1つ作成されます。たとえば、レポートが部門別にグループ化され、さらに課別にグループ化される場合、給与合計を求めるためにサマリー列を定義すると、各部門グループおよび各課グループの給与合計(グループ・レベル・サマリー)および給与の総合計(レポート・レベル・サマリー)のフィールドが作成されます。

関連項目

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

2.3.2 式列について

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

注意:

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

関連項目

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

第2.6.8項「式について」

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

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

- Before Reportトリガー(プレースホルダがレポートレベルの列の場合)

- レポートレベルの式列(プレースホルダがレポートレベルの列の場合)

- プレースホルダのグループまたはその下のグループ内の式(値はグループの各レコードに一度ずつ設定します)

関連項目

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

第2.6.8項「式について」

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

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

2.3.4.1 バインド参照について

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

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

制限

バインド参照に、予約済のSQLキーワードと同じ名前を使用することはできません。詳細は、『Oracle 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のいずれかを選択するために使用されます。:SORTは、SELECTリストでの式の位置の特定のためではなく、値として使用されるので、ORDER BY 1と同じではないことに注意してください。この例では、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;

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

2.3.4.2 字句参照について

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

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

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

- 問合せを作成する前に、問合せ内の各字句参照に対する列またはパラメータをデータ・モデルで定義します。列の場合は「NULL時の値」プロパティを、パラメータの場合は「初期値」プロパティを設定する必要があります。Oracle Reports Builderでは、これらの値を使用して、字句参照を含む問合せが検証されます。

- 字句参照を含む問合せを作成します。

制限

- PL/SQL文では、字句参照を作成できません。

- 問合せで列またはパラメータを字句参照として使用する場合は、そのデータ型がCHARACTERである必要があります。

- SELECT句で字句参照を使用する場合は、代入する列ごとに別々の字句参照を作成する必要があります。また、各字句参照に対して別名を割り当てることをお薦めします。これにより、ランタイム・パラメータ・フォームで字句参照に対して異なる値を入力しても、同じレイアウト・フィールドとボイラープレート・ラベルを使用できるようになります。

- SELECT句で字句参照を使用する場合は、レポートのデータ・モデルに指定されている数と同じ数の項目を実行時に指定する必要があります。実行時に字句参照に対して指定する各値は、「初期値」と同じデータ型にする必要があります。

- SELECT句で字句参照を使用する場合は、列幅がパラメータの「初期値」プロパティから取得されます。そのため、使用する最大幅の列にパラメータの「初期値」が対応していることを確認する必要があります。

- Oracle Reports Builderのリンクは、字句参照に依存しないようにします。つまり、リンクの子列もその表名も、字句参照によって決めることはできません。この機能を可能にするには、列の指定されていないリンクを作成して、問合せにリンク用のSQL句(WHEREなど)を直接入力する必要があります。たとえば、親問合せと子問合せが次のように記述されているとします。
親問合せ:

SELECT DEPTNO FROM EMP

子問合せ:

SELECT &PARM_1 COL_1, &PARM2 COL_2
FROM EMP
WHERE &PARM_1 = :DEPTNO

親問合せで選択されたDEPTNOへのバインド参照が、WHERE句でどのように作成されるかに注意してください。また、この例では、データ・モデル・ビューで列を指定せずに、問合せ間にリンクが作成されていることを前提にしています。

- 字句参照を使用して、After Formトリガーの起動後に追加されるバインド変数を作成することはできません。たとえば、次のような問合せがあるとします(WHERE句が字句参照によって置換されることに注意してください)。

SELECT ENAME, SAL FROM EMP
&where_clause

where_clauseパラメータの値にバインド変数への参照が含まれる場合は、After Formトリガーでその値を指定するか、事前に指定する必要があります。Before Reportトリガーでパラメータに次の値を設定すると、エラーが発生します。

WHERE SAL = :new_bind

After Formトリガーで同じ値を設定すると、レポートが実行されます。

例

例1: SELECT句

SELECT &P_ENAME NAME, &P_EMPNO ENO, &P_JOB ROLE

FROM EMP;

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

例2: FROM句

SELECT ORDID, TOTAL

FROM &ATABLE;

ATABLEを使用して、実行時に列を選択する表を変更できます。たとえば、実行時にATABLEにORDを入力します。この方法で表名を動的に変更するとき、列名が表によって異なる場合は、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の値は、ソートの基準として、SHIPDATE、ORDERDATE、ORDIDまたは任意の組合せを選択するために使用できます。これは、CONNECT BY句とSTART WITH句の追加など、問合せへの追加にも使用できます。

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

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

例8: 複数句

SELECT &COLSTABLE;

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

SELECT * FROM EMP &WHEREORD;

WHEREORDを使用して、実行時にWHERE句とORDER BY句の両方を変更できます。たとえば、実行時に&WHEREORDにWHERE 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つの値を置換するときに使用します。特に、問合せのSELECT、WHERE、GROUP BY、ORDER BY、HAVING、CONNECT BYおよびSTART WITHの各句で式を置換するときに、バインド参照を使用すると効果的です。バインド参照はFROM句では参照できません。次に例を示します。

SELECT ORDID,TOTAL

FROM ORD
WHERE CUSTID = :CUST

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

SELECT ORDID, TOTAL

FROM &ATABLE

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

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

かわりに、2つの問合せの間に、グループ対グループのリンクを作成して(グループ対グループのリンクを作成しても、問合せにWHERE句は追加されません)、親列を参照するバインド変数を使用し、子問合せのSELECT文にWHERE句を追加できます。第4.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 リンクとグループの比較について

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

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

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

マスター/ディテール・レポートは、次の図に示すように、3つのデータ・グループを含むレポートです。各マスター・グループには、2つの関連付けのないディテール・グループが表示されています。マスター/ディテール/ディテール・レポートやそのバリエーションを作成するには、データ・リンクを使用する必要があります。1つの問合せと3つのグループを使用してコントロール・ブレーク付きのレポートを作成する場合、問合せにより2つのディテール・グループ間でリレーションシップが確立されます。

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

関連項目

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

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

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

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

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

注意:

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

制限

- マトリックスでは、縦繰返し枠は横繰返し枠より下にある必要があります。

- マトリックス・オブジェクトは、常にそれを構成する繰返し枠の上にある必要があります(つまり、マトリックス・オブジェクトは、その水平繰返し枠と垂直繰返し枠より上の1つ以上のレイヤーである必要があります)。Oracle Reports Builderでは、マトリックスを水平繰返し枠と垂直繰返し枠より下に移動することはできません。

- マトリックスを移動すると、その2つの繰返し枠も移動されます。

- マトリックス・オブジェクトを他のオブジェクトにアンカーすることも、他のオブジェクトをマトリックス・オブジェクトにアンカーすることもできません(つまり、マトリックス・オブジェクトは、アンカーの親オブジェクトまたは子オブジェクトにはできません)。

- マトリックスをコピーするには、マトリックスとその2つの繰返し枠を選択する必要があります。マトリックス・オブジェクト自体を選択しても、貼付け用のバッファには何もコピーされません。マトリックスとその繰返し枠の1つを選択した場合は、その繰返し枠のみが貼付け用のバッファに置かれます。

- マトリックス・オブジェクトのサイズは、その関連する繰返し枠のサイズを変更することでのみ変更されます。

- マトリックス・オブジェクトの「レイアウト」メニューからは、「整列」または「オブジェクト・サイズ設定」を使用できません。

- マトリックスのディメンションを構成する繰返し枠のソース・グループは、同じクロス積グループにある必要があります。

- ソース・グループが同じファミリ階層にある繰返し枠(つまり、お互いが子や親の場合)には、同じ「印刷方向」を設定する必要があります。クロス積グループ内の親子関係は、マトリックスにネストを作成するときに使用します。したがって、こうしたグループに関連する繰返し枠は、ページ上で同じ方向に印刷される必要があります。

- マトリックス・オブジェクトでは、他のオブジェクトと同じように境界線を挿入できますが、その幅は常に可能な最小幅になります。マトリックス・レイアウト内のオブジェクトは密接に配置されるため、境界線を広くすることはできません。

例

データベースの列DEPTNOから値を取得するC_DEPTNOという列を含む、Group1という名前のグループがあるとします。Group2というグループには、データベースの列JOBから値を取得する列C_JOB、およびGroup1の問合せへのリンクに使用される列C_DEPTNO1が含まれています。Group3というグループには、データベースの列SALの合計であるSUMSALという列が含まれています。

Job
Analyst  Clerk  Manager

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

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

- 垂直繰返し枠は、Group2(ジョブ・タイトル)を含む繰返し枠になります。

- 水平繰返し枠は、Group1(部門番号)を含む繰返し枠になります。

- クロス積グループはGroup4 (Group1とGroup2の親となるグループ)になります。

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項「グループ別マトリックス・レポートについて」

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

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

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

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

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

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

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

- イメージについて

- アンカーについて

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

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

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

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

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

- レポートにオブジェクトを表示する頻度は、「オブジェクトの印刷」プロパティで指定します。

- 繰返し枠のインスタンスに対してOracle Reports Builderでデータをフェッチおよびフォーマットする方法は、「列モード」プロパティで指定します。

- オブジェクトとそれがアンカーされているオブジェクトを同じ論理ページに保持するかどうかは、「アンカー・オブジェクトと連動」プロパティで指定します。

- オブジェクト全体とそのコンテンツを同じ論理ページに保持するかどうかは、「ページ保護」プロパティで指定します。

- フォーマット・トリガーはオブジェクトがフォーマットされる前に実行されるPL/SQLファンクションで、オブジェクトのフォーマット属性を動的に変更できます。

- レポート・レイアウトはOracle Reports Builderに適用されているデフォルトにより作成されます。レポート・レイアウトはペーパー・レイアウト・ビューで変更することも、最初から作成することもできます。

関連項目

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

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

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

Oracle Reportsオンライン・ヘルプのプロパティに関する項

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

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

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

- レイアウト・オブジェクトをまだ含んでいないレイアウトとして作成する領域を定義しないかぎり、レポートのすでに定義済のレイアウト・オブジェクトはフォーマット・トリガーも含めてすべて上書きされます。

- 1つのレポートに、異なるフォーマットをいくつでも使用できます。たとえば、最初のページの上部に表形式フォーマットを持ち、同じページの下部にマトリックス・フォーマットを持つレポートを作成できます。そのためには、追加のレポート・レイアウトを作成します(第4.5.5項「追加のレポート・レイアウトの作成」を参照)。

- レポート・レイアウトを作成した後は、データ・モデルを変更しても、それらはレイアウトに自動的に反映されません。たとえば、レポート・レイアウトを作成した後に、問合せを作成してレポートを実行しても、新しい問合せからのデータはレポート出力に表示されません。変更を取り込むには、レイアウトのデフォルトを再設定するか、レイアウトを変更する必要があります。

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

1. 指定がない場合は、デフォルトの書式が置き換えられている場合を除き、「印刷方向」が「横」のグループは、デフォルトで「印刷方向」が「縦」のグループと同じになります。「横」のグループのデフォルトを迅速に設定するには、次の操作を行います。

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

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

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

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

注意:

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

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

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

- レイアウト・スタイルが表、グループ左/上またはマトリックスで、サマリーによってそのファンクションを実行する列を選択していない場合、サマリーはレポート列になります(前述のとおりにフォーマットされます)。それ以外の場合、サマリーはレポート・サマリーになります。これは、レポートの終わりで、フィールドの左にラベルを付けて(空間があれば)左揃えにフォーマットされます。

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

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

- 合計

- 平均

- 最小値

- 最大値

- カウント

- 最初

- 最後

- 割合(%)

- 標準偏差

- 分散

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

関連項目

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

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

2.4.3 イメージについて

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

- ファイルからレポート・レイアウトにイメージをインポートします(ペーパーベースのレポートのみ)。第4.9.8.1.1項「イメージのインポート」を参照してください。

- 「ペーパー・レイアウト」でファイル・リンク・オブジェクトを作成します(ペーパーベースのレポートのみ)。次を参照してください。

- 第4.9.8.1.2項「イメージ・オブジェクトのファイルへのリンク」

- 第4.9.8.1.3項「イメージ・オブジェクトのURLへのリンク」(HTMLおよびHTMLCSS出力の場合)

- 問合せでデータベース列を選択します(ペーパーベースおよびJSPベースのWebレポート)。次を参照してください。

- 第4.8.5項「データベースからのイメージの選択」

- 第4.8.6項「データベースからのイメージURLの選択」(HTML出力の場合)

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により、イメージの画面解像度が決定されます。

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

イメージ対象のURLを参照する場合は、HTML出力用にレポートをフォーマットしたときに、そのイメージが表示されます。他の出力フォーマットでは、URLテキストがペーパー・デザイン・ビューに表示され、出力先(ファイルやPDFドキュメントなど)には表示されません。URLが存在するかどうかは、ユーザーが確認してください。Oracle Reports Builderでは、リソースの存在やプロトコルの構文は確認されません。URLを含むオブジェクトのサイズで、HTML出力イメージのサイズが決まります。オブジェクトに指定した拡張度プロパティは無視されます。

制限

- 入力イメージの色数が256色を超える場合、出力イメージのフォーマットがOUTPUTIMAGEFORMATコマンドライン・キーワードまたはREPORTS_OUTPUTIMAGEFORMAT環境変数によってGIFに設定されていると、Oracle ReportsではGIFを正しく生成するために、色数が256色に減らされます。

- UNIXでは、HTML出力ではCGMフォーマットはサポートされていません。この制限はWindowsプラットフォームには適用されません。

2.4.4 アンカーについて

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

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

レポートの実行時(およびデータが実際にフェッチされるとき)にレイアウト・オブジェクトによってはサイズが変わることがあるので、アンカーを使用して、他のオブジェクトとの相対位置でオブジェクトの表示位置を定義する必要があります。アンカーは、アンカーされるオブジェクトに対するオブジェクトの相対位置を定義します。位置は、エディタ内でのサイズでなく、データがフェッチされた後のオブジェクトのサイズに基づきます。ペーパー・レイアウト・ビューでのオブジェクトの位置は、レポート出力での最終的な位置に影響することに注意してください。レイアウトの物理的オフセットはすべて、「アンカー」プロパティで指定された割合位置に取り込まれます。

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

- 暗黙的アンカー。実行時に、明示的アンカーが作成されていないレイアウト・オブジェクトに対して、暗黙的アンカーが生成されます。レイアウト・オブジェクトごとに、上書き可能なオブジェクトを探し、見つかった場合にはそのレイアウト・オブジェクトから、最も近い位置にある上書き可能なオブジェクトまでアンカーを作成します。これにより、オブジェクト間の上書きが避けられます。暗黙的アンカーの機能により、オブジェクトごとに位置を定義する手間を省くことができます。暗黙的アンカーはペーパー・レイアウト・ビューには表示されません。ただし、「オブジェクト・ナビゲータ・オブション」ダイアログ・ボックスで、オブジェクト・ナビゲータでアンカー情報を表示するように指定できます。デフォルトでは、オブジェクトはそれを囲むオブジェクトの左上角にアンカーされています。このオブジェクト・ナビゲータ表示にオブジェクトのアンカー情報が表示されない場合は、オブジェクトがそれを囲むオブジェクト(枠または本体)にアンカーされていることを示します。

- 明示的なアンカー。明示的なアンカーは、レイアウト・エディタで「アンカー」ツールを使用して、子側の境界線から親側の境界線にドラッグすることで作成できます。オブジェクトに作成したアンカーは、暗黙的なアンカーより優先されます。明示的なアンカーは、「レイアウト・オプション」ダイアログ・ボックスで非表示を指定しないかぎり、常にペーパー・レイアウト・ビューに表示されます。

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

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

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

- 2つのオブジェクト間の垂直距離は固定されます。たとえば、次の図では、親オブジェクトとObject 1との間の垂直間隔は固定されています。

- 子オブジェクト側のアンカーのX座標の水平位置は、親オブジェクト側のアンカーのX座標と関係があります。たとえば、次の図では、アンカーは親の左右境界線からは50%、Object 1の左境界線からは75%の位置にあります。そのため、このレポートを実行すると、Oracle Reports BuilderによってObject 1は親の中央から左側に25%シフトされます。

図2-5 子オブジェクトの上に位置する親オブジェクト

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

- 2つのオブジェクトの垂直位置が相対的関係にあります。たとえば、次の図では、アンカーの両端が、両方のオブジェクトの上枠から約80%下の位置にあります。そのため、レポートを実行すると、2つのオブジェクトの長さを計算し(拡張される可能性もあるため)、両方のオブジェクトの80%下のy座標を計算した後、ペーパー・レイアウト・ビュー上の2点間の間隔にあわせて2つのオブジェクトを配置します。

- 2つのオブジェクト間の水平位置は固定されます。たとえば、次の図では、親オブジェクトとObject 1との間の水平間隔は固定されています。

図2-6 子オブジェクトの右に位置する親オブジェクト

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

アンカーの縮小

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

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

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

本体でのアルゴリズム

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

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

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

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

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

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

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

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

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

- オブジェクトの組を作成します。各組には、押す側(拡張するオブジェクト)と押される側(押し出されるオブジェクト)が1つずつあります。この組を作成するとき、明示的アンカーの子が押される側のオブジェクトとなることはありません(このようなオブジェクトは無視されます)。

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

押される領域の方向が横の場合は、押される側のオブジェクトの左0%を押す側のオブジェクトの右0%にアンカーします。

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

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

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

ルール:

- オブジェクトが他の2つのオブジェクトのプッシュ・パスにあり、その2つのオブジェクトから等距離の場合は、そのオブジェクトの暗黙的なアンカーはレポートを実行するたびに異なる可能性があります。たとえば、次の図は、こうした事象が生じる2つのケースを示しています。

図2-7 他の2つのオブジェクトのプッシュ・パスにあるオブジェクト

ケース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またはR_Mgrのいずれかの間に無作為に暗黙的アンカーが作成されます。この動作を避けるために、B_Text3からオブジェクトの1つへ明示的アンカーを作成することも、R_EnameおよびB_Text2の間の明示的アンカーを削除することもできます。明示的アンカーを削除すると、R_MgrはM_Empの子孫として扱われるため、暗黙的アンカーが常にB_Text3とM_Empの間に作成されます。

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

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

Oracle Reports Builderは、ボディ・アルゴリズムを使用して、マージン領域にあるすべてのタイプBオブジェクトに対して暗黙的アンカーを作成します。ただし、各タイプAオブジェクトに対しては、オブジェクトの左上角からマージンの左上角への暗黙的アンカーを作成します。タイプAオブジェクトが暗黙的に別のタイプAオブジェクトにアンカーされることはありません(これにより、タイプAオブジェクトが確実にページから押し出されないようになります)。ただし、同じレイヤーに他のタイプAオブジェクトがある場合は、そのオブジェクトによって上書きされることがあります)。

関連項目

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

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

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

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

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

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

- Oracle Reports Builderのユーザー・インタフェースで、ペーパー・レイアウト・ビューのツール・パレットにある次のツールを使用します。

- レイアウト・オブジェクトを囲む境界線のカラーをカスタマイズするには、「線カラー」ツールを使用します。

注意:

Windowsプラットフォームでは、境界線パターン(「線カラー」ツールのパターン)はサポートされません。

- レイアウト・オブジェクトをカラーとパターンで塗りつぶすには、「塗りつぶしカラー」ツールを使用します。

- デフォルトのテキスト・カラーを変更するには、「テキスト・カラー」ツールを使用します。

- 3つのカラー・ツールの真上にある「塗りつぶし/線/テキスト・サンプル」ボックスには、現在選択されている塗りつぶし、境界線およびテキストが表示されます。Oracle Reports Builderによって作成されるオブジェクトのデフォルトの塗りつぶしと境界線は透明ですが、ユーザーが作成するオブジェクトのデフォルト値は白の塗りつぶしのまわりに黒の1ポイント線です。

- PL/SQLでは、次のSRWパッケージ・プロシージャを使用します。

- SRW.SET_BACKGROUND_BORDER_COLOR

- SRW.SET_BACKGROUND_FILL_COLOR

- SRW.SET_FOREGROUND_BORDER_COLOR

- SRW.SET_FOREGROUND_FILL_COLOR

- SRW.SET_TEXT_COLOR

- SRW.SET_FILL_PATTERN

- SRW.SET_BORDER_PATTERN

- テンプレートの場合は、テンプレートのプロパティ・インスペクタで次のプロパティを設定します。

- 「塗りつぶしパターン」プロパティでは、オブジェクトで囲まれる領域に使用するパターンを定義します。「前景色」プロパティと「背景色」プロパティを使用して、塗りつぶしパターンの背景色と前景色を定義できます。

- 「枠のパターン」プロパティでは、オブジェクトの境界線に使用するパターンを定義します。「枠の前景色」プロパティと「枠の背景色」プロパティを使用して、枠のパターンの背景色と前景色を定義できます。

注意:

Windowsプラットフォームでは、境界線パターンはサポートされません。

- 「テキスト・カラー」プロパティでは、オブジェクトに使用するテキスト・カラーを指定します。

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

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

関連項目

第4.9.6.2項「カラーの変更」

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

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

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

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

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

Oracle Reportsオンライン・ヘルプのプロパティに関する項にあるテンプレート・プロパティに関するトピック

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

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

注意:

ボイラープレート・テキストのサイズを変更する場合は、すべてのテキストがオブジェクト内に収まるように注意してください。フォントのディセンダ(g、qなどの文字で並び線より下の部分のために残されたスペース)が収まらない場合、そのテキスト行はレポート・エディタのビューには表示されますが、レポートを実行しても、出力に表示されません。ハンドルをクリックしてドラッグすると、角で交わる2つの枠のサイズが変わり、オブジェクトはX方向とY方向のどちらにも拡大または縮小します。

関連項目

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

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

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

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

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

関連項目

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

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

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

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

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

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

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

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

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

- HTMLタグを使用してボイラープレート・テキストを作成し、パラメータ・フォームにハイパーリンクまたは他の任意のHTMLタグ付きテキストを追加します(第4.9.2.3項「HTMLタグのボイラープレート・テキスト・オブジェクトの作成」を参照)。

- JavaScriptを使用してパラメータ・フィールドを挿入し、ユーザーがパラメータ・フィールドに無効なデータを入力したときにエラーを表示するなどの入力イベントまたは選択イベントを定義します(第4.11.12項「HTMLパラメータ・フォームの入力イベントまたは選択イベントの作成」を参照)。

- パラメータ・フォーム・ヘッダー(フォーム前値)を作成し、HTMLパラメータ・フォームのヘッダーにロゴまたはいくつかの標準リンクを挿入します(プロパティ・インスペクタを使用する場合は第4.6.10.1.5項「プロパティ・インスペクタを使用したHTMLパラメータ・フォーム・ヘッダーの作成」を参照、または第4.6.10.2.5項「PL/SQLを使用したHTMLパラメータ・フォーム・ヘッダーの作成」を参照)。

- パラメータ・フォーム・フッター(フォーム後値)を作成し、HTMLパラメータ・フォームのフッターにロゴまたはいくつかの標準リンクを挿入します(プロパティ・インスペクタを使用する場合は第4.6.10.1.6項「プロパティ・インスペクタを使用したHTMLパラメータ・フォーム・フッターの作成」を参照、または第4.6.10.2.6項「PL/SQLを使用したHTMLパラメータ・フォーム・フッターの作成」を参照)。

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

関連項目

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

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

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

2.6 PL/SQL

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

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

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

- 構文パレットについて

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

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

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

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

- 式について

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

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

- DMLとDDLについて

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

- トリガーについて

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

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

使用に関する注意

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

制限

- PL/SQLパッケージ、ファンクションまたはプロシージャを削除する場合は、レポート内の参照もすべて削除する必要があります。参照を削除しないと、レポートをコンパイル、生成または実行するときにエラーが発生します。

- PL/SQLパッケージ、ファンクションおよびプロシージャの名前は、レポート内で一意にする必要があります。列、グループ、問合せまたは印刷可能なオブジェクトの名前と重複しないようにしてください。

関連項目

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

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

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

関連項目

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

2.6.3 構文パレットについて

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

関連項目

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

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

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

注意:

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

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

制限

- PL/SQLパッケージ、ファンクションまたはプロシージャを削除する場合は、レポート内の参照もすべて削除する必要があります。参照を削除しないと、レポートをコンパイル、生成または実行するときにエラーが発生します。

- 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

関連項目

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

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

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

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

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

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

関連項目

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

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

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

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

関連項目

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

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

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

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

使用に関する注意

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

制限

- Oracle Reports Builderでは、連結ライブラリ・リストで指定したライブラリを検索できない場合、ダイアログ・ボックスを受け入れるとき、レポートを保存するとき、またはレポートを開くときに警告が表示されます。レポートを実行するか、レポートのPL/SQLをコンパイルしようとすると、エラーが表示されます。

- 「連結ライブラリ」リストは保存されます。次回レポートまたはライブラリを開くと、このリストにはレポートを最後に保存したときと同じ内容が含まれています。

- 外部ライブラリが別のライブラリを参照する場合、最初のライブラリに2つ目のライブラリがすでに連結されていても、レポートに両方のライブラリを連結する必要があります。

関連項目

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

2.6.8 式について

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

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

制限

- 列がプレースホルダ列またはパラメータ列である場合は、式の列に値を読み込んだり、割り当てたりできますが、データベース列の値(データベースから取り出した値)は変更できません。たとえば、列COMPの値を条件に使用し(IF :COMP = 10など)、その値を直接代入文に設定することはできます(たとえば、:COMP:= 15など)。

- 式は、グループ階層の中で同等以上のグループにある列のみを参照できます。たとえば、レポートレベルの列の式は、別のレポートレベルの列のみを参照できます。

- 式は、その式で参照される列が最初に処理されるように計算されます。Oracle Reports Builderでは依存性リストが作成され、計算が正しい順序で実行されることが保証されます。ただし、列が別の列を参照し、参照された列が直接または間接的に最初の列を参照するような循環依存は許可されません。

- SRW.DO_SQLを使用する場合は、同じレポートで更新または挿入されたデータベースの値を読み込まないようにしてください。Oracle Reports Builderが出力の書式設定のためにデータベースからレコードをフェッチする正確な時間は確定されません。Oracle Reports Builder内部では、パフォーマンスを最適化するために、データの先読みが行われています。そのため、特定のレコードに更新が実行される前に、同じレコードがすでにアクセスされている可能性があります。Oracle Reports Builderでは、内部依存性リストが作成され、ユーザー・イグジットの起動、サマリーの計算などのイベントが正しい順序で実行されることが保証されています。ただし、Oracle Reports Builderでは、これらのイベントと、内部データへのアクセスやデータの書式設定との同期については保証されていません。

例

例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項「式列について」

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

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

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

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

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

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

「フェッチする行の最大数」プロパティは、問合せによってフェッチされる実際のレコード数を制限します。問合せによってすべてのレコードがフェッチされた後、グループ・フィルタによってどのレコードを挿入または除外するかが決まります。「フェッチする行の最大数」プロパティによって実際に制限されるのは取り出されるデータ量なので、通常、グループ・フィルタによる制限よりも高速です。「フィルタ・タイプ」プロパティを「最後」または「条件付き」に設定する場合は、フィルタを適用する前に、Reports Builderでグループ内のすべてのレコードを取り出す必要があります。また、問合せで「フェッチする行の最大数」を使用するときは、この問合せに依存する他のグループ内の集計に影響があることに注意する必要があります。たとえば、「フェッチする行の最大数」プロパティを8に設定した場合、その問合せに基づいたサマリーで使用されるのは取り出された8レコードのみです。

制限

- 「フィルタ・タイプ」プロパティが「最初」または「最後」に設定されている場合、グループ・フィルタをグループに追加できません。
グループ・フィルタはクロス積グループに追加できません。

- グループ・フィルタに入力するファンクションは、次の列にのみ依存できます。

- グループの問合せまたはデータ・モデル階層でそれより上位にある問合せが所有するデータベース列

- 関連性のない問合せに依存する計算済列(式またはサマリー)(つまり、グループ、グループの親またはグループの子の列に依存しない計算済列)

- グループ・フィルタでは、Oracle Reports Builder列の値と正しい頻度のパラメータを読み込むことができますが、それらの値は直接設定できません。たとえば、パラメータCOUNT1の値を条件に使用できますが(IF :COUNT1 = 10など)、その値を直接代入文には設定できません(:COUNT1:= 10など)。また、PL/SQLグローバル変数を使用して列またはパラメータの値を間接的に設定する機能はサポートされていません。このような設定を行うと、予期しない結果になることがあります。また、ページ依存列(つまり、「ページ」の「リセット位置」)またはグループ・フィルタのページ依存列に依存する列は参照できません。

例

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;

関連項目

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

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

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

注意:

Oracle Reports 11gリリース1 (11.1.1)でREF CURSOR問合せを使用するには、データベース・バージョンが10.1.0.5 (10.1の場合)または10.2.0.2以上(10.2の場合)以上である必要があります。

11gリリース1 (11.1.1)データベースまたはOracle Forms Servicesクライアントと10.1または10.2データベースとの相互運用性を保つためには、10.1.0.5 (10.1の場合)または10.2.0.2 (10.2の場合)のいずれかのレベルのパッチ・セットが最低限必要です。

10.1または10.2の環境で適切なレベルのパッチが適用されていないと、次のような状況で10.1または10.2のPL/SQLのユニットまたはビューを参照しようとしたときに、PLS-801[55916]エラーにより失敗します。

- 11gリリース1 (11.1.1)データベース上で、PL/SQLユニット、無名ブロック、トリガー、コール文またはSQL文が、10.1または10.2データベース上のPL/SQLユニットを、データベース・リンクを介してコールする。

- 11gリリース1 (11.1.1)データベース上で、PL/SQLユニット、無名ブロック、トリガーまたはコール文が、10.1または10.2データベース上のビューをデータベース・リンクを介して参照するか、ビューがPL/SQLファンクションまたはオブジェクト・タイプを直接または間接的に参照する。

- Oracle Forms Services 11gリリース1 (11.1.1)クライアントが、10.1または10.2データベース内のPL/SQLユニットを、RPCを使用してコールする。

Oracle Reportsでは、静的と動的の両方のREFカーソルがサポートされています。次に例を示します。

静的REFカーソル:

open l_rc for SELECT * FROM emp WHERE ename = 'KING';

動的REFカーソル:

l_query := SELECT empno, ename, sal, hiredate FROM emp WHERE 1-1';
open l_rc for l_query;

注意:

動的REFカーソルに対してSELECT文を明示的に設定する必要があります。

詳細な例は、第41章「REFカーソルを使用したペーパー・レポートの作成」を参照してください。

使用に関する注意

- Oracle Reportsでは、強い型指定のREFカーソルのみをサポートしています。次に例を示します。

type c1 is REF CURSOR RETURN emp%ROWTYPE;

- REF CURSOR問合せをデータ・リンクの子に指定すると、グループ間でのみリンクされます。列間ではリンクされません。

- REFカーソルを実装するためにストアド・プログラム・ユニットを使用すると、Oracleデータベースにプログラム・ユニットで格納されるという利点もあります。

- 次の場合は、REFカーソルで問合せを行います。

- より簡単なSQLの管理

- レポート内での文字パラメータの使用の回避

- Form Builderなどの他のアプリケーションとのデータ・ソースの共有

- 制御とセキュリティの向上

- サブプログラム内のロジックのカプセル化

また、ストアド・プログラム・ユニットを使用して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;

関連項目

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

2.6.11 DMLとDDLについて

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

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

このレポートの処理でレポートされるDMLまたはDDLは、After Parameter Formトリガーで(またはその前に)実行される必要があります。Before Reportトリガーでは、一貫性は保証できません。これは、Oracle Reportsが、レポートの定義に基づいて、そのトリガーの前にデータ・カーソルでの作業を開始する必要があるためです。Oracle Reports BuilderでBefore Reportトリガーを実行する前には、必ず関連する表にアクセスし、カーソルをオープンする必要があります。その後に行われた表に対する変更は、レポートではいっさい表示されません。

関連項目

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

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

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

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

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

Oracle 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など)。

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

- DDE
Oracle Reports Builderコンポーネント内で動的データ交換をサポートします。

- DEBUG
PL/SQLプログラム・ユニットをデバッグする際のプロシージャ、ファンクションおよび例外が含まれます。これらのビルトイン・サブプログラムを使用すると、デバッグ・トリガーを作成し、トリガーでブレークポイントを設定できます。

- EXEC_SQL
Oracle Reports Builderアプリケーションに作成したPL/SQLコード内で、動的SQLを実行するためのプロシージャとファンクションが含まれます。

- LIST
文字列(VARCHAR2)のリストを作成および保守するために使用できるプロシージャ、ファンクションおよび例外が含まれます。これを使用すると、PL/SQLバージョン1で配列を作成できるようになります。

- ORA_FFI
ダイナミック・ライブラリのC関数をコールする外部関数インタフェースが含まれます。

- ORA_JAVA
PL/SQLからJavaクラスをコールするインタフェースが含まれます。

- ORA_NLS
現行の言語環境に関する詳細な情報を取り出せるようにします。この情報を使用して、言語の属性を調べ、ローカルの日付と数値形式を使用してアプリケーションをカスタマイズできます。また、キャラクタ・セットの照合に関する情報と、一般的なキャラクタ・セットも取得できます。現行の言語名とキャラクタ・セットを検索する機能も用意されており、特殊なケースをテストし、利用するアプリケーションを作成できます。

- ORA_PROF
PL/SQLプログラム・ユニットのチューニング(たとえば、特定のコード部分を実行するのにどれぐらいの時間がかかるか調べる)に使用できるプロシージャ、ファンクションおよび例外が含まれます。

- TEXT_IO
ファイルからの情報の読込み、ファイルへの情報の書込みを可能にする構文が含まれます。Text_IOで使用可能なプロシージャやファンクションは、次のカテゴリに分類されます。

- ファイル操作。FILE_TYPEレコード、FOPENファンクションやIS_OPENファンクション、およびFCLOSEプロシージャを使用すると、FILE_TYPE変数を定義し、ファイルを開き、開いたファイルをチェックし、それらのファイルを閉じることができます。

- 出力(書込み)操作。PUT、PUTF、PUT_LINEおよびNEW_LINEの各プロシージャを使用すると、開いているファイルに情報を書き込んだり、PL/SQLインタプリタに情報を出力したりできます。

- 入力(読取り)操作。GET_LINEプロシージャを使用すると、開いているファイルから行を読み込むことができます。

- TOOL_ENV
サブプログラムで使用する値を取り出して、Oracle環境変数と対話できるようにします。

- TOOL_ERR
DEBUGなどの別のビルトイン・パッケージで作成したエラー・スタックにアクセスし、操作できるようにします。

一部のビルトイン・パッケージ(たとえば、DEBUGパッケージ)では、エラーを示すために例外を使用するだけでなく、追加のエラー情報も提供します。この情報は、エラー・スタックの形式で保持されます。

エラー・スタックには、詳細なエラー・コードと関連付けられたエラー・メッセージが含まれます。スタック上のエラーには0 (最も古い)からn-1 (最も新しい)の順に索引が付いています。ここでnは現在スタックにあるエラーの総数です。ユーザーは、TOOL_ERRパッケージのサービスを使用して、エラー・スタックにアクセスし、それを操作できます。

- TOOL_RES
PL/SQLコードを移植しやすくするため、リソース・ファイルのすべてのテキスト・データを分離して、リソース・ファイルから文字列リソースを抽出します。

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

- ORA_DE
ReportsによりプライベートPL/SQLサービスで使用される構文が含まれます。

- STPROC
データベース内に格納されているサブプログラムをコールします。このパッケージへのコールは自動的に生成されます。注意: Oracle Reports 11gリリース1 (11.1.1)では、STPROCが廃止されています。

- JNI
PL/SQLからJavaをコールしやすくします。

関連項目

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

2.6.13 トリガーについて

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

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

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

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

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

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

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

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

- Before Reportトリガー: 問合せが解析された後、レポートが実行される前に起動します。

- After Reportトリガー: ペーパー・デザイン・ビューを終了した後、またはレポート出力が指定の出力先(ファイル、プリンタ、電子メールIDなど)に送信された後に起動します。このトリガーを使用すると、表の削除など、完了した初期処理をクリーンアップできます。ただし、このトリガーは、レポートが正常に完了したかどうかにかかわらず、常に起動されることに注意してください。

- Between Pagesトリガー: 最初のページを除き、レポートの各ページがフォーマットされる前に起動します。このトリガーは、カスタマイズされたページのフォーマットに使用できます。ペーパー・デザイン・ビューでは、このトリガーは任意のページに最初に移動したときにのみ起動します。後でそのページに戻っても、トリガーは再度起動されません。

- Before Parameter Formトリガー: ランタイム・パラメータ・フォームが表示される前に起動します。このトリガーから、パラメータ、PL/SQLグローバル変数およびレポート・レベルの列の値にアクセスし、変更できます。ランタイム・パラメータ・フォームが表示されていない場合でも、このトリガーは起動します。そのため、このトリガーは、コマンドライン・パラメータの検証に使用できます。

- After Parameter Formトリガー: ランタイム・パラメータ・フォームが表示された後に起動します。このトリガーから、パラメータにアクセスして値をチェックできます。このトリガーを使用すると、パラメータの値を変更したり、エラーが発生した場合にランタイム・パラメータ・フォームに戻ることもできます。データ・モデルの列は、このトリガーからはアクセスできません。ランタイム・パラメータ・フォームが表示されていない場合でも、After Parameter Formトリガーは起動します。そのため、このトリガーは、コマンドライン・パラメータまたはその他のデータの検証に使用できます。

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

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

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

注意:

パラメータ・フォームをWebで使用する場合、Before Parameter Formトリガーは2回起動します。パラメータ・フォームが表示されるときと、パラメータが送信されるときです。これは、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のいずれかが実行されます。

使用に関する注意

- ステップ4から9では、レポートの基になる表を変更するようなDDL文は避けてください。ステップ3で表のスナップショットが取られ、これはレポートの実行中ずっと有効である必要があります。ステップ7から9では、レポートの基になる表の内容を変更するようなDML文は避けてください。問合せは、どのような順序で実行してもかまいませんが、(そのレポートで使用されていない表で実行されないかぎり) DML文は信頼できないものになります。

- コマンドラインでREADONLYを指定する場合は、DDLをすべて使用しないでください。DDL文(たとえば、SRW.DO_SQLで)を実行すると、COMMITが自動的に発行されます。READONLYを使用している場合、SET TRANSACTION READONLYによって開始したトランザクションが未完了のまま終了します。

- 通常は、レポートによって取得されるデータに影響する処理は、すべてBefore Parameter FormトリガーまたはAfter Parameter Formトリガーで実行する必要があります(これらの2つは、解析やフェッチが行われる前に起動するレポート・トリガーです)。(これら2つは、解析やフェッチが行われる前に起動するレポート・トリガーです)。レポートによって取り出されるデータに影響しない処理は、その他のトリガー内で実行できます。

- After Formトリガーで(またはその前に) DMLまたはDDLを使用した場合は、一貫性が保証されます。しかし、Before Reportトリガーではトリガーを起動する前に、Oracle Reportsがデータ・カーソル上で処理を開始するようレポートに定義されている場合があるため、一貫性は保証されません。Before Reportトリガーの起動前に、Oracle Reportsは関連する表を示し、カーソルを開きます。その後に行われた表に対する変更は、レポートではいっさい表示されません。

制限

- レポート出力をペーパー・デザイン・ビューまたはプレビューアに送信する場合は、レポート出力が表示される前に一部またはすべてのレポート・トリガーが起動する場合があることに注意してください。たとえば、SRW.MESSAGEを使用して、条件が満たされたときにBetween Pagesトリガーでメッセージを発行するとします。レポートに前方参照がある場合(ページの合計数を最後のページの前に表示するなど)、Oracle Reportsでは事前にフォーマットして前方参照を計算する必要があります。したがって、まだ確認していないページでも、すでにフォーマットされトリガーが起動されている場合があります。

- レポート・トリガーでは、レポート・レベルの列およびパラメータの値を使用できます。たとえば、COUNT1というパラメータの値が、ある条件(IF :COUNT1 = 10など)で必要な場合があります。ただし、ページ依存列(「リセット位置」プロパティが「ページ」に設定されている列)またはページ依存列に依存する列は参照できません。

- Before Parameter FormトリガーとAfter Parameter Formトリガー、およびBefore ReportトリガーとAfter Reportトリガーでは、パラメータの値を設定できます(たとえば、代入文:COUNT1 = 15で値を指定できます)。Before ReportトリガーとAfter Reportトリガーでは、レポート・レベルのプレースホルダ列の値も設定できます。

- Between Pagesトリガーでは、データ・モデル・オブジェクトの値は設定できません。また、PL/SQLグローバル変数を使用して列またはパラメータの値を間接的に設定する機能はお薦めしません。このような設定を行うと、予期しない結果になることがあります。

- 字句参照を使用して、After Parameter Formトリガーの起動後に追加されるバインド変数を作成することはできません。たとえば、次のような問合せがあるとします(WHERE句が字句参照によって置換されることに注意してください)。
SELECT ENAME, SAL FROM EMP
&WHERE_CLAUSE

WHERE_CLAUSEパラメータの値にバインド変数への参照が含まれる場合は、After Parameter Formトリガーでその値を指定するか、事前に指定する必要があります。Before Reportトリガーでパラメータに次の値を設定すると、エラーが発生します。After Parameter Formトリガーで同じ値を設定すると、レポートが実行されます。

WHERE SAL = :new_bind

関連項目

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

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

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

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

オブジェクトがフォーマットされるときは、指定したオブジェクトに対して、フォーマット・トリガーが複数回起動される可能性があることに注意してください。たとえば、オブジェクトのフォーマットがページの下部で開始されるとします。オブジェクトがページに合わない場合は、フォーマットが停止され、次のページで再フォーマットされます。この場合、フォーマット・トリガーは2度起動されます。したがって、このトリガーでは、ロギングなど永続性に関する操作は行わないことをお薦めします。

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

- オブジェクトの境界線パターンとカラーを変更する

- オブジェクトの内部パターンとカラーを変更する

- フィールドまたはボイラープレート・テキストのフォント・サイズ、スタイル、太さ、間隔および文字間調整を変更する

- フィールドの書式マスクを変更する

- フィールドの値にアクセスする

例

Oracle Reportsオンライン・ヘルプのリファレンスでフォーマット・トリガーに関する項を参照してください。

関連項目

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

2.6.13.3 検証トリガーについて

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

注意:

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

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

例

Oracle Reportsオンライン・ヘルプのリファレンスに関する項の検証トリガーに関するトピックを参照してください。

関連項目

第4.11.4項「実行時におけるパラメータ値の検証」

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

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

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

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

- トリガーは、特定の操作が実行されたときに、関連するアクションを実行させる場合に使用します。

- データベース・トリガーは、トリガーを実行する文で起動される集中化されたグローバル操作にのみ使用します。その際にどのユーザーまたはデータベース・アプリケーションがその文を発行したかは問いません。

- Oracleデータベースにすでに組み込まれている機能と重複するトリガーは定義しないでください。たとえば、宣言整合性制約を使用して簡単に施行できるような、データ整合性規則を規定するトリガーは定義しないでください。

- トリガーのサイズを制限します(目安として60行以下)。トリガーの論理で60行を超えるPL/SQLコードが必要な場合、コードの大部分をストアド・プロシージャに含め、トリガーからそのプロシージャをコールすることをお薦めします。

- 再帰的トリガーは作成しないでください。たとえば、EMPでUPDATE文を発行するEMP表にAFTER UPDATE文トリガーを作成すると、メモリーがなくなるまでトリガーが繰り返して起動されます。

トリガーをアプリケーションで使用する方法の詳細は、Oracle Databaseアプリケーション開発者ガイドを参照してください。他のタイプのトリガーの詳細は、Oracle Database概要を参照してください。

関連項目

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

2.7 テンプレート

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

- テンプレートについて

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

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

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

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

2.7.1 テンプレートについて

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

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

注意:

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

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

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

関連項目

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

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

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

- 「枠」には次のノードがあります。

- 「セクション枠」ノード。現在選択されているセクションの周囲にある親枠の属性を定義します。

- 「ヘッダー枠」ノード。列ヘッダーの周囲にある親枠の属性を定義します。

- 「フィールド枠」ノード。フィールドの周囲にある親枠の属性を定義します。

- 「サマリー枠」ノード。サマリー(合計)の周囲にある親枠の属性を定義します。

- 「フィールドのラベル/ヘッダー」には次のノードがあります。

- 「Character」ノード。Characterフィールドのラベルまたは列ヘッダーの属性を定義します。

- 「Number」ノード。Numberフィールドのラベルまたは列ヘッダーの属性を定義します。

- 「Date」ノード。Dateフィールドのラベルまたは列ヘッダーの属性を定義します。

- 「フィールド」には次のノードがあります。

- 「Character」ノード。Characterフィールドの属性を定義します。

- 「Number」ノード。Numberフィールドの属性を定義します。

- 「Date」ノード。Dateフィールドの属性を定義します。

- 「サマリー・ラベル」には次のノードがあります。

- 「Character」ノード。Characterフィールドのサマリー・ラベルの属性を定義します。

- 「Number」ノード。Numberフィールドのサマリー・ラベルの属性を定義します。

- 「Date」ノード。Dateフィールドのサマリー・ラベルの属性を定義します。

- 「サマリー」には次のノードがあります。

- 「Character」ノード。Characterフィールドのサマリーの属性を定義します。

- 「Number」ノード。Numberフィールドのサマリーの属性を定義します。

- 「Date」ノード。Dateフィールドのサマリーの属性を定義します。

「デフォルト」属性

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

「上書き」属性

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

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

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

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

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

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

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

関連項目

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

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

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

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

- パラメータとその検証トリガー

- 物理ページ・サイズ

- 論理ページ・サイズ

- キャラクタ/ビットマップ・モード

- マージン位置

- パネル印刷順序

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

使用に関する注意

- デフォルトでは、レポートの現行のセクション(ペーパー・レイアウト・ビューに表示されているセクション)にテンプレートが適用されます。セクションが表示されていない場合、デフォルトで、レポートのメイン・セクションにテンプレートが適用されます。オブジェクト・ナビゲータでレポート全体のノードを選択すると、テンプレートがデフォルトでレポートのメイン・セクションに適用されます。レポートの特定のセクションにテンプレートを適用するには、オブジェクト・ナビゲータでそのセクションのノードを選択します。

- レポートのセクション別に異なるテンプレートを適用できます。ただし、デフォルトのテンプレートを適用する場合、異なるデフォルトのテンプレートを使用した2つのレポート・ブロックを1つのレポートに組み合せることはできません。同一レポート内のすべてのレポート・ブロックで、同じデフォルトのテンプレートを使用する必要があります。

関連項目

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

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

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

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

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

「上書き」プロパティ

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

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

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

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

アクセス

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

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

- 「ファイル」→「新規」→「テンプレート」を選択します。

- オブジェクト・ナビゲータで、「テンプレート」ノードをクリックし、ツールバーの「作成」ボタンをクリックします。

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

- 「ウィンドウ」メニューから、テンプレート・エディタのペーパー・レイアウト・ビューを表示するウィンドウを選択します。

- オブジェクト・ナビゲータで、テンプレートの「ペーパー・レイアウト」ノードの横にあるビュー・アイコンをダブルクリックします。

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

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

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

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

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

- プラガブル宛先について

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

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

- レポートのXMLについて

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

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

- PDF出力について

- RTF出力について

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

- 拡張スプレッドシート出力について

- テキスト出力について

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

注意:

レポートを実行して形式を確認する場合、出力を表示するために空白のブラウザ・ウィンドウが起動します。このような空白のブラウザ・ウィンドウが開かないようにするには、Internet Explorer 7で次の手順を実行します。

1. Internet Explorerの「ツール」メニューの「インターネット オプション」を選択します。

2. 「全般」タブ→「タブ」→「設定」に進みます。

3. 「他のプログラムのリンクを開く方法」セクションの「現在のタブまたはウィンドウ」ラジオ・ボタンを選択します。

4. 「OK」をクリックします。

Internet Explorer以外のブラウザを使用している場合は、ブラウザのヘルプ情報を参照して、この設定を変更します。

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

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

注意:

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

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

- 「セクションのフォーマット順序」プロパティ

- SRW.SET_FORMAT_ORDERビルトイン・プロシージャ。これが定義されている場合は、「セクションのフォーマット順序」プロパティの設定が上書きされます。

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

たとえば、レポートの目次(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を指定し(rwclientまたはrwservletで有効)、レポートを非同期で実行することで、レポートをバッチ処理することもできます。つまり、クライアントはサーバーにコールを送り、レポート・ジョブが完了するのを待たずに別のプロセスへ進みます。クライアント・プロセスが削除されると、そのジョブも取り消されます。

関連項目

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

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

Oracle Reportsオンライン・ヘルプのリファレンスのコマンドラインに関する項(BATCHおよびBACKGROUNDの詳細)

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

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

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

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

使用に関する注意

- 1つのレポートに、キャラクタ・モードとビットマップ出力を混在させることはできません。MODEシステム・パラメータは、レポート全体で1つの値のみに設定できます(DEFAULT、BITMAPまたはCHARACTER)。

- XMLやDELIMITEDDATAなどのデータドリブン形式とPDFやENHANCEDSPREADSHEETなどのレイアウトドリブン形式での一括処理および配布を、同じレポート定義ファイルを使用して行うには、次の要件を満たしている必要があります。

- 配布XMLファイルでinclude要素が指定されていること。次に例を示します。

&lt;include src="mainSection"/&gt;

- 配布XMLファイルで指定されたセクションに対して「繰返し」プロパティが適切に設定されていること。

- レポート・ペーパー・レイアウトの配布XMLファイルで指定されたセクションが空でないこと。

例

例1

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

例2

レポートのエグゼクティブ・サマリーを上級管理者に送信し、詳細な分析情報を各マネージャに電子メールで送信できます。この例では、1つのレポートに2つのレポート・セクション(縦方向のサマリー・セクションと横方向の詳細セクション)を作成します。「繰返し」プロパティを使用して、マネージャをリストするデータ・モデル・グループに詳細セクションを関連付け、レポートを一括処理するデータ・モデル・グループの各インスタンスの宛先を変更すると、出力が各マネージャに送信されます。

関連項目

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

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

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

2.8.3.1 DSTファイルについて

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

注意:

DSTファイルは、以前のリリースとの下位互換性を維持するためにサポートされているので、「配布」ダイアログ・ボックスまたはXMLを使用してレポートを配布する方法をお薦めします。

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

注意:

配布エラーを識別するためにレポートの配布をトレースする場合(第4.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=dst1.HTM DESTYPE=file DESFORMAT=HTML COPIES=1 LEVEL=Report
DEST2: DESNAME=prt1 DESTYPE=printer DESFORMAT=BITMAP COPIES=3 LEVEL=Main_Section
DEST3: DESNAME=SECT1.pdf DESTYPE=file DESFORMAT=pdf COPIES=1 LEVEL=Header_Section

注意:

DSTファイル内の各配布の宛先用のパラメータはすべて(前述の例におけるDEST1、DEST2およびDEST3)、1行で指定する必要があります。パラメータを新しい行に指定すると、エラー・メッセージREP-34304またはREP-34305、あるいはその両方が出力され、配布が失敗します。

関連項目

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

2.8.4 プラガブル宛先について

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

- Web

- プリンタ

- 電子メール

- ファイル

- Oracle Portal

- FTP

- WebDAV

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

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

注意:

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

関連項目

『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「Oracle Reports Servicesの宛先の構成」

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

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

イベントドリブンの公開機能により、レポート・オブジェクトをOracle Workflow内で使用可能にできます。詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「イベントドリブンの公開の使用」を参照してください。

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

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

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

関連項目

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

2.8.7 レポートのXMLについて

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

- XMLタグを使用して、Webベースのレポートを定義します(Oracle Reportsオンライン・ヘルプのリファレンスに関する項のOracle Reports XMLタグに関するトピックを参照)。

- XMLは、タグで区切られた構造化情報を定義するのに使用します。

- XMLは、サポートされたPDS(プラガブル・データ・ソース)です。詳細は、第45章「XMLプラガブル・データ・ソースを使用したレポートの作成」を参照してください。

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

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

レポートの配布でのXMLの使用、およびXMLを使用したレポートのカスタマイズの詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「拡張配布の作成」と「XMLによるレポートのカスタマイズ」を参照してください。

関連項目

第4.7.7項「XML出力の生成」

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

Oracle Reportsオンライン・ヘルプのXML PDSに関する項

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

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

注意:

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

使用に関する注意

- 次のプロパティを使用して、HTMLCSS出力用にスタイル・シートおよびユーザー定義のスタイルをレポートまたはレポート・オブジェクトに適用します。

- 「スタイル・シート」プロパティ

- 「CSSクラス名」プロパティ

- 「CSS ID」プロパティ

- Oracle Reportsでサポートされているすべてのビットマップ出力(PDF、RTF、HTML、HTMLCSSおよびPostScriptなど)にHTMLフォーマットを含めることができます。詳細は、第2.8.9項「HTMLフォーマットについて」を参照してください。

- HTMLおよびHTMLCSS出力ではHTML 4.01構文チェッカが渡されます。

注意:

レポートの「レポート前値」プロパティまたは「レポート後値」プロパティを変更する場合は、有効なHTMLを指定する必要があります。HTMLが無効な場合、生成されたHTMLレポート出力でHTML 4.01構文チェッカが渡されないことがあります。

- HTMLまたはHTMLCSSレポート出力をWebブラウザでプレビューするには、「ファイル」→「プレビュー・フォーマット」→「ページ番号付きHTML」(または「ページ番号付きHTMLCSS」)を選択します。

- ブックマークを使用すると、複数のHTMLファイルが作成されます。ブックマーク用とレポート出力用の2つの枠があるマスター・ファイルが作成されます。これらの枠のそれぞれについてHTMLファイルが1つ作成されます。マスター文書ファイル名は、DESNAMEパラメータで指定した名前です。ブックマーク・ファイル名は、desnameb.htmです。レポート出力のファイル名はdesnamed.htmです。

- レポート内にリンクされたイメージ、イメージ・フィールドおよびグラフがある場合は、GIFファイルが作成されHTMLドキュメントから参照されます。リンクされたボイラープレートまたはイメージ・フィールドが外部のGIFファイルを参照している場合でも、新しいGIFファイルが作成される点に注意してください。

- イメージがデータベースに格納されている場合は、レポート内にイメージが出現するたびに、新しいGIFファイルが作成される場合があります。イメージがファイルに格納されている場合は(たとえば、インポートしたイメージ、リンクされたボイラープレートまたはファイルを参照するイメージ・フィールド)、レポート内でのイメージの出現回数に関係なく、1つのイメージに対して1つのGIFファイルが作成されます。

- HTML出力用に生成されるすべてのGIFイメージ・ファイルには、一連の番号が付けられます(たとえば、desname0.gif... desname17.gif)。

- マスター・ドキュメントのコメント・ブロックには、マスター・ドキュメントに関連付けられているすべてのファイル名が含まれます。

- HTMLには、7種類のテキスト・サイズがあります。レポート内のフォント・サイズは次の表に従ってマッピングされます。ユーザーは、HTMLファイルで指定されているサイズをブラウザから変更できます。

表2-1 レポートとHTMLのフォント・サイズ

レポートのフォント・サイズ

HTMLのフォント・サイズ

7以下

1

8から9

2

10から12

3

13から15

4

16から20

5

21から30

6

30より大きい

7

注意:

レポートに使用されているフォントがプロポーショナル・フォントでない場合は、生成されたHTMLファイルでTeleTypeモードが有効になります。

- HTMLにはページの概念がありません。レポートの各ページの区切りには、セパレータ線が挿入されます。ブラウザによっては、レポート・ページ全体を表示する際にスクロールが必要になることもあります。また、HTMLドキュメントをブラウザから印刷する場合、各ページの最下部にセパレータ線が印刷されないこともあります。セパレータ線が必要ない場合、または別のセパレータ線を使用する場合は、SRW.SET_AFTER_PAGE_HTMLを使用して変更できます。

- HTMLCSSの場合、グラフィックとテキストがオーバーラップできます。

- レポートをHTMLファイルまたはHTMLCSSファイルに出力すると、データ・モデルとループ・タグが削除され、データに置き換わります。Oracle Reports BuilderでHTMLファイルまたはHTMLCSSファイルを開くことはできますが、レポートではなく、静的なテキスト・ファイルになります。

- HTML出力およびHTMLCSS出力のページ番号付けの詳細は、第2.8.8.1項「HTMLページ・ストリーミングについて」を参照してください。

制限

- オブジェクトは、相互にオーバーラップできません。たとえば、イメージの上にテキストを配置することはできません。

- オブジェクトがわずか(2文字以下)でもオーバーラップする場合は、オーバーラップを回避するために下側のオブジェクトが切り捨てられます。

- オブジェクトが大幅にオーバーラップする場合(またはオブジェクトが重なっている場合)は、下側のオブジェクトが完全に削除されます。この場合、削除されたオブジェクトにリンクされている情報は、枠と同じルールを使用して転送されます(次の枠に関するルールを参照)。

- テキストは、水平線がその上にある場合でも常に線より優先されます。これにより、ラベル・テキストが列ラベルの下にある線で排除されなくなります。

- 複数の出力ファイルが生成されるとき(ブックマークが使用されるときなど)は、マスター・ファイル以外のすべてのファイルが確認なしで上書きされます。たとえば、GIFファイルとブックマーク・ファイルは確認なしで上書きされます。

- レポートの枠は、HTML出力では可視的に表示されません。枠の塗りつぶし属性または境界線属性は、HTML出力には表示されません。

- レポート内の枠がリンクまたはブックマークの参照先の場合、HTML出力では、その属性が枠の左上隅に最も近い視覚的なオブジェクトに転送されます。枠オブジェクトがハイパーリンクの場合、その属性は、ハイパーリンクでないすべての子(内部)オブジェクトに転送されます。ハイパーリンク属性が子オブジェクトに転送できない場合、枠のハイパーリンクは失われます。

- HTMLでサポートされている描画オブジェクトは黒の実線の水平線のみです。レポートで指定した線幅は、ブラウザに依存します。レポート・レイアウトの他のすべての描画オブジェクト(四角形や円など)は、HTML出力に表示されません。こうした描画オブジェクトの領域はそのまま残りますが、HTML出力には何も表示されません。HTMLCSS出力では、これ以外の描画オブジェクトがいくつかサポートされています(たとえば、四角形)。

- テキストのバックグラウンド(塗りつぶし)と境界線(線)のカラーおよびパターンは、HTMLでは使用できません。太字、イタリック、下線およびフォアグラウンド(テキスト)カラーは、ブラウザがそれらをサポートしていればサポートされます。

- PDFアクション属性は、HTML出力では無視されます。

- ブラウザをカスタマイズすると、生成されるHTMLの表示に影響します。

関連項目

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

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

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

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

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

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

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

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

- レポート内で、現在のページを含むフレームが、宛先ページで更新されます。

- レポート外で、(ブックマーク・フレーム、ページおよびナビゲーション・フレームを含む)ベースになっているフレーム全体がリロードされます。

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

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

- PL/SQLを使用します(Before ReportトリガーのSRW.SET_PAGE_NAVIGATION_HTML)。

- レポート・プロパティ・インスペクタで、「ページ・ナビゲーション・コントロール・タイプ」プロパティおよび「ページ・ナビゲーション・コントロール値」プロパティを使用して指定します。

出力ファイル名

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

- myreport.htm(ベースになるフレーム)

- myreportnumber.htm(ブックマーク・ファイル。ブックマークをHTMLファイルで使用している場合のみ)

- myreportnumber_1.htmからmyreportnumber_n.htm(ページ)

- myreportnumberj.htm(ナビゲーションJavaScript)

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プロシージャを設定します。Oracle Reports Builderで生成されたHTMLロゴは、レポートの最後のページにのみ表示されます。

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

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

関連項目

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

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

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

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

Oracle Reportsでは、レポート内のテキスト・オブジェクトに様々なフォント、スタイルおよびカラーを指定できます。SRWビルトイン・プロシージャ(Oracle Reportsオンライン・ヘルプのリファレンスに関する項を参照)を使用すると、エンド・ユーザーが実行時にオブジェクト全体に対してテキスト属性を変更できますが、テキストのセクションごとに変更できません(テキスト・オブジェクトの部分ごとに別々のフォーマットを指定するなど)。

かわりに、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%)">

使用に関する注意

- サポートされている出力形式は、PDF、RTF、HTML、HTMLCSSおよびPostScriptです。

- HTMLフォーマットでは、タグのインタリーブおよびネストがサポートされています。たとえば、イタリックの開始タグを指定した場合、このフォーマットは対応する終了タグの位置まで適用されます。開始タグを複数指定した場合、適用範囲を終了するには、同じ数の終了タグを指定する必要があります。

- フォーマット属性は、同じ名前またはタイプのテキスト・オブジェクトでも、インスタンス間で継承はされません(繰返し枠で囲まれている場合など)。ただし、複数行を含むテキスト・オブジェクトでは、このオブジェクト内でのみ、フォーマット命令が複数行で継承されます。

- この機能では、ボイラープレート・テキスト・オブジェクトでハードコードまたは参照されているHTMLタグがサポートされています。タグは、フィールド・オブジェクトを含む表列からも取得できます。ファイル・リンク・オブジェクトも、ポイント先のテキスト・ファイルにHTMLタグが含まれている場合は、サポートされます。

- Oracle Reportsでは、同じキャラクタ・セットのフォントに関して、次の条件に従って最も近い一致が検索されます。
フォント > フォント・サイズ > フォント・スタイル > フォントの太さ > フォントの幅

フォントの書体を照合できなかった場合はフォントのサイズを照合し、フォントのサイズを照合できなかった場合にはフォントのスタイルを照合するというように処理を進めます。フォント検索アルゴリズムの詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「Oracle Reportsにおけるフォントの管理」を参照してください。フォント検索では、使用されるフォントに必要なすべての属性(スタイルやサイズなど)がデータに埋め込まれていない可能性があります。この場合、埋め込まれていないフォント属性はレポート出力に反映されません。

制限

- 1つのタグは、全体を1行で指定する必要があります。次の行に続くタグはサポートされません。
例:

My<b
>format</b>

- spanタグのstyle属性font-familyプロパティで指定できるフォント名は1つだけです。
例:

font-family: Arial

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

- &quot;などの要素はサポートされません。
例:

<span style="font-family: &quot;Courier New&quot;;">my format!</span>

かわりに二重引用符(")をそのまま使用する必要があります。

例

例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.

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

関連項目

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

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

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

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

2.8.10 PDF出力について

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

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

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

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

- True Typeフォント(Type0フォントなど)を直接サブ設定可能で、Type3フォントへの変換は行われません。その結果、PDF出力がより明瞭で滑らかに表示され、検索やアクセスもしやすくなります。

- True Type Collection (TTC)のサポートが改善され、ゼロベースの索引を使用して、特定のTTCフォント・ファイルを指定して選択できます。Oracle Reportsの以前のリリースでは、True Type Collection (TTC)内の最初のフォント・ファイルが選択されていました。

Oracle Reports 11gリリース1 (11.1.1)では、PDF出力の拡張機能がさらに追加されています。

- フォント・ファイルをfontsフォルダにコピーするだけで、Unixプラットフォーム上のWindowsで設計されたレポートを実行できます。

- 新しいフォント・モデルでは、PDFサブ設定レポート出力で文字の位置ずれが見られません。

Oracle ReportsにおけるPDFの拡張および各種機能の詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「Oracle ReportsにおけるPDFの使用」を参照してください。

使用に関する注意

- PDFレポート出力をWebブラウザでプレビューするには、「ファイル」→「プレビュー・フォーマット」→「PDF」を選択します。

- 中国語や日本語などのマルチバイト言語でマルチバイト・レポートを作成していて、PDF出力のフォントに別名を付ける必要がある場合、Acrobat 4.0パック内で名前が付いたCIDフォントが必要になります。これ以外の場合は、Acrobat 4.0パックのCIDフォントは必要ありません。

- Oracle Reportsでは、PDF出力用のWindows UDCはサポートされていません。印刷またはレンダリングするユーザー定義の文字では、絵文字はすべて1つのTTFまたはTTCファイルに含める必要があります。

- グラフィックとテキストはオーバーラップできます。

- オブジェクトのフォアグラウンド・カラーは、(指定したパターンには関係なく)塗りつぶしカラーとして使用されます。

- 次の条件を満たしている場合、PDFファイルを変更できます。

- レポートで使用しているフォントがマシンにインストールされている場合。

- PDFライターがある場合。

制限

- PDF出力には、現在選択しているプリンタのビットマップ・ドライバ(PostScriptなど)が使用されます。

関連項目

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

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

第4.7.6項「PDF出力の生成」

2.8.11 RTF出力について

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

使用に関する注意

- グラフィックとテキストはオーバーラップできます。

- テキストは、90度ずつ回転できます。

- PDF出力の場合と同様に、オブジェクトのフォアグラウンド・カラーは、(指定したパターンには関係なく)塗りつぶしカラーとして使用されます。

注意:

Office 95のMicrosoft Wordでレポートを表示する場合、レポート内のすべてのグラフィックとオブジェクトを表示するには、「表示」→「ページ レイアウト」を選択する必要があります。

関連項目

第4.7.8項「RTF出力の生成」

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

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

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

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

- デリミタ付き: ペーパー・レイアウトを使用して出力を生成します。

- DelimitedData(「デリミタ付き」を使用して大量のレポートを実行することに問題がある場合に使用): ペーパー・レイアウトを考慮せず、データ・モデルから直接実行します(つまり、ペーパー・レイアウトに表示されるフィールドだけでなく、データ・モデルで使用可能なすべてのフィールドが出力に表示されます)。

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

- コマンドラインでDELIMITERキーワードを使用して指定します。

- Oracle Reports Builderの「デリミタ付き出力」ダイアログ・ボックスまたは「DelimitedData出力」ダイアログ・ボックス(「ファイル」→「ファイルへ出力」→「デリミタ付き」または「ファイル」→「ファイルへ出力」→「DelimitedData」で表示)を使用して指定します。

注意:

デリミタを指定しない場合のデフォルトのデリミタはタブです。

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

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

(1,000,000),(3,6000),(543),(2,003,500)…

使用に関する注意

DelimitedData出力:

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

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

- 「XMLタグ」プロパティを使用すると列の別名を入力できます。

- 「XML出力から除外」プロパティを使用すると、DelimitedData出力から列を除外できます。

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

- DelimitedData出力フォーマットのレポートは、配布XMLファイルまたは「配布」ダイアログ・ボックスで指定して、配布および一括処理できます。

デリミタ付き出力:

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

- AをBの上または左に配置すると(AおよびBはボイラープレートまたはフィールド・オブジェクト)、Oracle Reports Builderでは、どの出力行でも、Aの各インスタンスがBの各インスタンスの前に表示されます。

図2-8 Bの上にAがある場合のデリミタ付き出力

- ボイラープレート・オブジェクト(A)を含む枠を作成し、フィールド・オブジェクト(B)を含む繰返し枠を囲んだ場合、Aの各インスタンスは、Bの各インスタンスとともに表示されます。

図2-9 繰返し枠を枠で囲んだ場合のデリミタ付き出力

- 前述のレイアウトに、ボイラープレート・オブジェクト(C)を含む別の枠を追加し、フィールド・オブジェクト(D)を含む別の繰返し枠を囲んだ場合、BのすべてのインスタンスにAが表示され、DのすべてのインスタンスにCが表示されます。

図2-10 繰返し枠を2つの枠で囲んだ場合のデリミタ付き出力

- レポートでマトリックスを作成する場合、レイアウト・モデル・ビューの格子に基づいて正確にオブジェクトの位置を整列させます。オブジェクトの位置が整列していないと、Oracle Reports Builderでは、余分なスペースを別の行や列と解釈して、レポート出力に支障をきたす場合があります。

- マトリックスの外にボイラープレート・オブジェクトを作成する場合、ボイラープレートの各インスタンスがマトリックスのすべての行(列ではない)に繰り返されます。マトリックスに含まれるボイラープレートは、マトリックスの外のフィールド・オブジェクトには繰り返されません。

図2-11 マトリックスの外にボイラープレートがある場合のデリミタ付き出力

制限

- テキスト・ファイルの最初のフィールドがID(大文字)というラベルのフィールドである場合、Microsoft Excelでそのファイルを開くことができません。次のようなデリミタ付き出力は、Excelでのエラーの原因になります。
ID, name, title, dept

IDフィールドが含まれるデリミタ付き出力を生成する場合は、データベース列名を小文字に変更するか(つまり、id)、フィールドの順序を並べ替えてください。

- レポート配布および一括処理では、デリミタ付き出力フォーマットはサポートされません。DELIMITEDは、配布XMLファイルや「配布」ダイアログ・ボックスで出力ファイルとしては指定できません。
注意: DelimitedData出力フォーマットのレポートは、配布XMLファイルまたは「配布」ダイアログ・ボックスで指定して、配布および一括処理できます。

関連項目

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

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

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

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

Oracle Reports 11gリリース1 (11.1.1)では、新たなスプレッドシートの出力フォーマットであるENHANCEDSPREADSHEETが導入されています。このフォーマットでは、スプレッドシート形式でレポートを一括処理および配布できるほか、大規模なデータ・セット(75,000行まで)をスプレッドシートに生成できます。

ENHANCEDSPREADSHEET出力フォーマットを使用すると、ペーパー・レイアウト・レポートからHTMLファイルへ出力を生成し、Microsoft Excel 2000で直接開くことができます。次の操作を実行できます。

- どのような形式(.rdf、.xml、.jsp)で保存されている既存のペーパー・レイアウト・レポートからでも、rwrunまたはReports Serverクライアント(rwclient、rwservlet)を使用して、レポート出力をスプレッドシート形式に生成できます。次の例を参照してください。

- カラー、フォント、条件付き書式、グラフ、イメージなどのリッチ・レイアウト・フォーマットが保持されます。

注意:

DESFORMAT=ENHANCEDSPREADSHEETの動作は、rw:include JSPタグの機能と同一です。拡張スプレッドシート出力はページ化されません。ページ設定情報は出力に書き込まれず、単一のワークシートとしてフォーマットされます。拡張スプレッドシート出力はレイアウトによって決定します。レポート出力には、ペーパー・レイアウトの各セクション(ヘッダー、メイン、トレーラ)のボディ領域にあるオブジェクトが表示され、マージン、ヘッダー、フッターの領域内のコンテンツはフォーマットされません。

前提条件

- Microsoft Excel 2000以上(出力を表示するクライアント・マシン上)。このソフトウェアは、Oracle Reports Servicesを実行しているマシン上には必要ありません。

使用に関する注意

- 拡張スプレッドシート出力には、DelimitedData出力より多くのメモリーが必要です。長時間にわたって実行される大規模なレポートの場合、この点に十分に注意してください。出力ワークシートの名前を変更するには、レポートの「タイトル」プロパティを設定します。

- スプレッドシート出力に生成できるのはビットマップ・レポートのみです。キャラクタ・モードのレポートを拡張スプレッドシート出力に生成することはできません。

- 拡張スプレッドシート出力では、次のペーパー・レイアウト・オブジェクトがサポートされています。

- テキスト(ボイラープレートおよびフィールド)

- 任意の形式のイメージ(インポートまたはリンクされているイメージ、データベースに格納されているイメージを含む)

- インポートした描画、およびCGMとOWFの描画

- グラフィック線

- グラフィック円弧、多角形、四角形、丸い四角形、延長可能な線およびOLE外部オブジェクト(Oracle9i Reports (9.0.2)より前のリリースで開発されたレポートの場合)のペーパー・レイアウト・オブジェクトは、スプレッドシート出力ではサポートされていません。こうした描画オブジェクトの領域はそのまま残りますが、出力には何も表示されません。この制限は水平線には適用されません。

- スプレッドシート出力では、サイズ、フォント、カラー、スタイル(イタリック、斜線、下線、打消し線、アウトライン、影)、太さ(太、標準、極太、超極太)のフォント属性がサポートされています。

- スプレッドシート出力では、次のWebレポート・プロパティがサポートされています。

- 「ハイパーリンク」プロパティ

- 「ハイパーリンクの宛先」プロパティ

- 「追加属性(HTML)」プロパティ(「パラメータ・フォーム・フィールド)

- 「表属性(HTML)」プロパティ(枠および繰返し枠)

- 「代替テキスト」プロパティ(イメージ)

- 「HTMLタグを含む」プロパティ(HTMLタグを含むボイラープレート・テキスト・オブジェクトまたはフィールド・オブジェクト)

- スプレッドシート出力では、次のレポート分類プロパティがサポートされています。

- 「タイトル」プロパティ

- 「作成者」プロパティ

- 「件名」プロパティ

- 「キーワード」プロパティ

- スプレッドシート出力に埋め込まれるグラフは静的イメージ・ファイルであり、対話型ではありません。したがって、「グラフ・ハイパーリンク」プロパティは、スプレッドシート出力ではサポートされていません。

- グローバリゼーションをサポートするレポートの場合は、directionとcharsetのメタデータをBefore Reportエスケープに指定する必要があります。デフォルトでは、生成された出力にこの情報が書き込まれないからです。たとえば、次のようにBefore Reportエスケープを定義できます。

<html>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=&encoding">
<body dir=&Direction bgcolor="#ffffff">

- ペーパー・レイアウトで定義されている枠および繰返し枠は、出力では表に変換されます。cellspacing、cellpaddingおよびwidthなどの表属性は、枠および繰返し枠の「表属性(HTML)」プロパティを使用して指定できます。

- スプレッドシート出力のフォーマットを確実にするために、レイアウト領域全体を枠で囲んでください。これによって、複数のオブジェクトで、あるオブジェクトが別のオブジェクトの下にあるように平行して異なる垂直位置に表示されることがなくなります。

- レポート・セクション(ヘッダー、メイン、トレーラ)の順序は、スプレッドシート出力で保持されます。つまり、ヘッダー・セクション出力が最初に表示され、続いてメイン・セクション、トレーラ・セクションの順に表示されます。

- ボイラープレート・オブジェクトまたはフィールドが互いに連続していない場合、つまり、境界の間にギャップがある場合は、スプレッドシート出力に空のセルが存在することがあります。

- レポートのフォーマット時にセル位置を変更する可能性がある条件をレポートで定義しても、これらの変更はスプレッドシート出力フォーマットには反映されません。たとえば、列1が空の場合には列1の位置に列2を表示するという条件をレポートで定義した場合、条件が満たされても、スプレッドシート出力には常に両方の列が表示されます。スプレッドシートを形成するHTML表は、フォーマット時ではなく、レポートがコンパイルされた直後に生成されます。スプレッドシート出力のフォーマット時には、表のセルに値が入力されます。

- レポート設計時には、Oracle Reportsカラー・パレットが使用されます。レポート出力をスプレッドシート出力に生成すると、Microsoft Excelのカラー・パレットにある、最も近いカラーが表示されます。

- ペーパー・レイアウトでボイラープレート・オブジェクトを回転させても、スプレッドシート出力では水平に表示されます。

- 背景パターン、線カラーおよび線パターンのセル・プロパティは、スプレッドシート出力ではサポートされていません。

- レポートのペーパー・レイアウトに含まれるイメージは、Reports Serverが非セキュア・モードで実行されている場合にのみ、スプレッドシート出力に表示されます。セキュアなReports Serverの場合、イメージはスプレッドシート出力に表示されません。これは、出力でイメージを生成する際に、Reports Serverに対して複数回コールを行う必要があるためです(イメージ1つにつき1コール)。ユーザーが認証されると、Oracle Reportsでは、ブラウザとセキュアなReports Serverとの間で、Cookieを使用してユーザーのIDが渡されます。ただし、ExcelではCookieがサポートされていません。その結果、セキュアなReports Serverに対するコールは、認証されていないユーザーからのコールのように見えます。したがって、Reports Serverでイメージを渡す処理が拒否されます。回避策として、WebDAVを使用すると、セキュアなReports ServerからURLにスプレッドシート出力を生成できます。

- サマリー列および式列は、動的なExcel式としてではなく、値として表示されます。また、Excelにはページの概念がないため、ページレベルのサマリー列はレポートレベルのサマリー列になります。

- 枠の「垂直拡張度」プロパティを「固定」に設定すると、Excelの出力には、ペーパー出力の最初のページに表示可能な数のレコードのみが表示されます。Excelにはページの概念がないため、残りの行を次のページにオーバーフローさせることはできません。

- スプレッドシート出力にはページ番号が付けられないため、レポート前値とレポート後値のみがサポートされています(第2.2.10項「前および後のエスケープについて」を参照)。

- After Reportエスケープでは、HTMLコマンドを本体の外側に追加しても、スプレッドシート出力でのレポートの生成時、HTMLコマンドは出力に適切に書き込まれますが、反映はされません。次に例を示します。

</body><table><tr><td><B>太字になるテキスト</B></td><tr></table> </html>

本体タグを閉じる前にHTMLコマンドを追加すると、スプレッドシート出力でのレポートの生成時にタグが正しく反映されます。次に例を示します。

<table><tr><td><B>太字になるテキスト</B></td><tr></table></body></html>

- マトリックス・レポートでは、ページごとの水平パネルが1より大きい値に設定されている場合、ENHANCEDSPREADSHEET出力形式でレポートを実行すると、次のエラーが発生します。
REP-1223: ページ・サイズは無効です。

マトリックス・レポートのページごとの水平パネルを1より大きい値に設定できるのは、ENHANCEDSPREADSHEET以外のすべてのDESFORMATです。

- スプレッドシート形式は、SHOWJOBSなどのrwservletコマンドでサポートされます。この形式は、Enterprise Managerのジョブ・キューとOracle Portalのアクセス・オブジェクト定義でもサポートされます。

- 拡張スプレッドシート出力フォーマットのレポートは、配布XMLファイルで指定して配布できます。

制限

- XMLベースの一括処理は、ENHANCEDSPREADSHEET出力フォーマットでのみサポートされています。

例

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

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

注意:

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

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

Oracle Reports 11gリリース1 (11.1.1)より前のリリースで実装される次の方法でも、スプレッドシート出力を生成できます。

- レポートをデリミタ付き出力に生成: 第4.7.10項「デリミタ付き出力の生成」を参照してください。
メリット: デリミタ付き出力は、任意のフォーマット(.rdf、.xml、.jsp)で保存された既存のペーパー・レイアウト・レポートから生成できます。その場合、Reports Builderから直接生成する方法とコマンドラインからレポートを実行する方法があります。

デメリット: 出力に(レポートのデータ・モデルに定義された)データのみが表示され、レイアウト情報は表示されません。

- Oracle WebLogic ServerでReports Serverを使用してレポートを配布し、Webブラウザ内でMicrosoft Excelに表示: 次のいずれかの方法を使用します。

- 既存のペーパー・レイアウトがない場合: Oracle Reports BuilderでExcel HTMLテンプレート・ファイルを開いてデータを追加し、レポートをJSPファイルとして保存した後に、レポートを配布します。この方法では、JSPコーディングを使用して、動的なExcel式(レポートのサマリー列および式列の静的値だけでなく)、動的なグラフ(静的なレポート・グラフ・イメージだけでなく)を含めることができます。

- 既存のペーパー・レイアウトがある場合: ペーパー・レイアウト・レポートで、「Webソース」ビューにrw:includeタグを追加して、Webソース」ビューにペーパー・レイアウトのグループ枠をJSPコードとしてインクルードします。次に、レポートをJSPファイルとして保存し、レポートを配布します。この方法を実装する手順の詳細は、第29章「拡張スプレッドシート出力のレポートの作成」を参照してください。

メリット: カラーやフォントなどの豊富な書式を使用して、Webブラウザ内のMicrosoft Excel出力で、データのみでなくレポート・レイアウトも生成できます。

デメリット: Excelで出力を表示するには、カスタムJSPコーディングを追加する必要があります。レポートはJSPエンジンでのみ実行でき、rwservletでは実行できません。したがって、この方法では、Microsoft Excel出力はWebブラウザ内のみで表示できます。

関連項目

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

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

2.8.14 テキスト出力について

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

関連項目

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

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

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

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

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

ビットマップ

キャラクタ・モード

イメージ

ボックス

カラー

水平線

描画

垂直線

楕円/円

ASCIIテキスト

イタリック・テキスト

太字テキスト

対角線

下線

ビットマップ・パターン

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

関連項目

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

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

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

2.9 データ・ソース

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

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

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

- Oracle Net Servicesについて

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

- Oracle Call Interface (OCI)について

関連項目

Oracle Reportsオンライン・ヘルプのプラガブル・データ・ソースに関する項にある次のトピック:

- プラガブル・データ・ソースについて

- プラガブル・データ・ソースの追加

- プラガブル・データ・ソースへの接続

- オンライン・ヘルプのプラガブル・データ・ソースへの追加

- プラガブル・データ・ソースのインタフェース定義

- プラガブル・データ・ソースの問題のトラブルシューティング

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

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

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

注意:

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

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

関連項目

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

2.9.2 Oracle Net Servicesについて

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

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

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

Oracle Reports 10g以降、ORA_JAVAビルトイン・パッケージとJava Importerを使用して、Javaメソッドをコールできます。これによってレポートでのユーザー・イグジットの必要性が軽減され、さらにオープンでポータブルな配置が可能になります。動的ライブラリでC関数を起動する外部ファンクション・インタフェースとなるORA_FFIビルトイン・パッケージも使用できます。これらの新しいビルトイン・パッケージによって、ユーザー・イグジットはOracle Reportsでは非推奨となりますが、Makeファイルは提供されるので、既存のユーザー・イグジットで作業を続けることはできます。

2.9.4 Oracle Call Interface (OCI)について

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

Oracle Reports 10gから、OCIは廃止されました。かわりに、rwclient.exeコマンドライン・インタフェースまたはJSPタグ・ライブラリを使用します。

2.10 デバッグ・ツール

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

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

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

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

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

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

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

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

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

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

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

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

関連項目

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

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

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

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

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

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

- 直接操作のデバッグ: 表示されたソース・テキストを直接操作して、デバッグ・アクションを挿入し、プログラム・データを検査します。

- 動的実行のフィードバック: Oracle Reports Builderでは、プログラムの実行がデバッグ・アクションによって中断した場合、またはプログラムのステップ実行中に段階的に進められた場合に、現在のPL/SQLソースの位置を自動的に表示し、追跡します。

- 中断されたプログラム状態の参照: 実行が中断されると、現在のスタックを参照し、変数の状態を参照および変更して、任意のPL/SQL文を実行できます。すべての情報にはシンボリックに(つまり、アドレスや番号ではなく、名前で)アクセスします。

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を参照して、Oracle Reports Builderのデバッグ・コマンドで特定のデバッグ・アクションを参照、表示または変更できます。

デバッグ・アクションのID、ソース位置、および変更可能になっているかどうかを含め、複数のデバッグ・アクションに関する詳細情報を表示できます。特定のデバッグ・アクションを一時的に使用できないようにして、後で必要に応じて変更可能にすることもできます。

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

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

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

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

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

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

- プログラムの実行がプログラム・ユニット内の単一行に到達したとき(たとえば、現在のソースの位置、行5、行23など)

- PL/SQLインタプリタに制御が渡るとき(つまり、ブレークポイント、プログラムのステップ実行などによって、プログラムの実行が中断されるたび)

- すべてのPL/SQLソース行が実行中のとき。

デバッグ・トリガーは、条件付きのブレークポイントとして使用すると特に便利です。例外DEBUG.BREAKをトリガー内から発生させることもできます。たとえば、次に示すデバッグ・トリガーは、my_procの10行目に条件付きブレークポイントを設定します。このブレークポイントに到達するのは、ローカルのNUMBER型変数my_salが5000を超えた場合のみです。

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インタプリタで開いている状態での、Reports Builderのメニュー・バーの「プログラム」→「ブレークポイント」または「プログラム」→「デバッグ・トリガー」の選択

- PL/SQLインタプリタのソース・ペイン内を右クリックしたときに表示されるメニューからの、「ブレーク・ポイント」または「デバッグ・トリガー」の選択

- 「オブジェクト・ナビゲータ」ペインにデバッグ・アクションを挿入します。

- 「インタプリタ」ペインでコマンドを入力します。

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

関連項目

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

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

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

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

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

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

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

.LIST PC

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

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

現行の有効範囲の位置は、PL/SQLインタプリタがローカル変数およびパラメータを検索する場所を示します。これは、スタック上のいずれかのPL/SQLサブプログラムの現在の実行位置に相当します。

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

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

関連項目

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

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

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

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

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

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

(debug 1)PL/SQL>

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

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

注意:

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

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

関連項目

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

3 ビジュアル索引

この章では、このマニュアル内のサンプル・レポートの概要を説明します。デモ・レポートおよびデータ・ソースにアクセスする方法は、「サンプル・レポートへのアクセス」および「データ・ソースへのアクセス」を参照してください。

この章では、このマニュアル内のサンプル・レポート、各レポートの概要、サンプル・レポートを作成するための手順の参照先、およびサンプル出力の画像を示します。

3.1 第1部: 基本的なレポートの作成

ここでは、レポートの基本的な作成手順について説明します。

3.1.1 表形式レポートの作成

この例では、レポート・ウィザードを使用して単純な表形式レポートを作成します。

図3-1 表形式レポートの最終出力のサンプル

このサンプルの作成の詳細は、第5章「表形式レポートの作成」を参照してください。

3.1.2 メール・ラベル・レポートの作成

この例では、レポート・ウィザードを使用して単純なメール・ラベル・レポートを作成します。この手順では、付属のテンプレートに入力して、メール・ラベルをフォーマットする方法について説明します。

図3-2 メール・ラベル・レポートの最終出力のサンプル

このサンプルの作成の詳細は、第6章「メール・ラベル・レポートの作成」を参照してください。

3.1.3 フォーム・レター・レポートの作成

この例では、レポート・ウィザードを使用して単純なフォーム・レター・レポートを作成します。この手順では、付属のテンプレートに入力して、フォーム・レターを設計する方法について説明します。

図3-3 フォーム・レターの最終出力のサンプル

このサンプルの作成の詳細は、第7章「フォーム・レター・レポートの作成」を参照してください。

3.1.4 マスター/マスター・レポートの作成

この例では、マスター/マスター・レポートを作成する方法を学習します。マスター/マスター・レポートには、直接関連していない2セット以上のデータが表示されます。つまり、データを構成しているレコードが2つ以上の個別の問合せを使用してフェッチされます。マスター/マスター・レポート(親/親レポートとも呼ばれます)には、複数の問合せがリンク(親子リレーションシップ)なしで含まれています。

図3-4 最初のマスター/マスター・レポートの最終出力のサンプル

図3-5 2番目のマスター/マスター・レポートの最終出力のサンプル

このサンプルの作成の詳細は、第8章「マスター/マスター・レポートの作成」を参照してください。

3.1.5 サマリー・レポートの作成

この例では、「サマリー列」ツールを使用して、サマリー・レポートを作成する方法を学習します。

サマリー・レポートには、他のデータのサマリーで構成される列が少なくとも1つ含まれます。サマリー列には、売上の合計値を計算する列、手数料のリストの平均値を計算する列、一連の発注書内での最大金額を示す列などがあります。

図3-6 サマリー・レポートの最終出力のサンプル

このサンプルの作成の詳細は、第9章「サマリー・レポートの作成」を参照してください。

3.2 第2部: グループ・レポートの作成

ここでは、様々な種類のレポートのレイアウトについて説明します。

3.2.1 1つの問合せを使用したグループ・レポートの作成

この例では、1つの問合せを使用して、単純なグループ左レポートを作成します。

グループ左レポートおよびグループ上レポートでは、1つ以上の列で共通の値(前述の例での部門番号など)に基づいて、レポートの行がセットに分割されます。次のサンプル出力では、各部門番号が1度のみ出力されます。前述のレポートがグループ・レポートではない場合、部門番号が部門全体ではなく、部門の従業員ごとに1度出力されます。

図3-7 1つの問合せを使用したグループ・レポートの最終出力のサンプル

このサンプルの作成の詳細は、第10章「1つの問合せを使用したグループ・レポートの作成」を参照してください。

3.2.2 2つの問合せを使用したグループ・レポートの作成

この例では、2つの問合せを使用して、グループ上レポートを作成します。

2つの問合せを使用したグループ・レポートの外観は、1つの問合せを使用したグループ・レポートとほぼ同じです。1つまたは複数の問合せを使用する各レポートを対比する場合、パフォーマンスが重要な意味を持ちます。ほとんどの場合、単一問合せレポートは複数の問合せレポートよりも速く実行されます。ただし、複数の問合せを使用したレポートのほうが概念を理解しやすく保守も容易です。たとえば、レポートを実行するユーザー数が少なく、実行されたレポートによって比較的少数のレコードが返される場合、複数の問合せを使用して保守を簡素化し、データ・モデルを理解しやすいものにすることができます。ユーザー数が多く、レポートが大規模な場合は、単一問合せレポートの使用をお薦めします。

図3-8 2つの問合せを使用したグループ・レポートの最終出力のサンプル

このサンプルの作成の詳細は、第11章「2つの問合せを使用したグループ・レポートの作成」を参照してください。

3.2.3 横グループ・レポートの作成

この例では、横グループ・レポートを作成します。横グループ・レポートでは、データベース列の値がページの縦方向ではなく横方向に出力されます。

図3-9 横グループ・レポートの最終出力のサンプル

このサンプルの作成の詳細は、第12章「横グループ・レポートの作成」を参照してください。

3.2.4 グループ左サマリー・レポートの作成

この例では、レポート出力の左側にサマリーをグループ化するサマリー・レポートを作成します。

このレポートは、マスター・レコード(次の図の左上にあるName)、ディテール・レコード(右上にあるProduct、Itemtot、Orderdate)およびサマリー・レコード(Product、Sum Total)で構成されます。サマリーでは、各マスター・レコードのディテールの合計が計算されます。列Productは2度表示されます。Reports Builderを使用すると、何度でも列を表示できます。

図3-10 グループ左サマリー・レポートの最終出力のサンプル

このサンプルの作成の詳細は、第13章「グループ左サマリー・レポートの作成」を参照してください。

3.2.5 グループ左式レポートの作成

この例では、レポート・ウィザードを使用してレポートを設定し、必要なデータベース列をすべて選択する問合せを1つ作成します。次に、各顧客に対して税金と発注合計を計算する2つの式列を手動で作成し、その式列をレポートに追加します。グループ左スタイルのレポートを使用して、レポート内のデータを読みやすくします。

図3-11 グループ左式レポートの最終出力のサンプル

このサンプルの作成の詳細は、第14章「グループ左の式レポートの作成」を参照してください。

3.3 第3部: 特別な書式設定を含むレポートの作成

ここでは、特別な書式設定のレポートを作成する方法について説明します。

3.3.1 ラップ・フィールド・レポートの作成

この例では、行が1行に収まらない場合に単語の境目で行が折り返されるブレーク・レポートを作成します。

図3-12 ラップ・フィールド・レポートの最終出力のサンプル

このサンプルの作成の詳細は、第15章「ラップ・フィールド・レポートの作成」を参照してください。

3.3.2 ヘッダー/フッター付レポートの作成

この例では、レポートの各ページの上のマージン領域にページ・ヘッダーが出力され、各部門の従業員情報のリストの最後にフッターが出力されるレポートを作成します。

図3-13 ヘッダー/フッター付レポートの最終出力のサンプル

このサンプルの作成の詳細は、第16章「ヘッダー/フッター付レポートの作成」を参照してください。

3.3.3 データベース値を使用したヘッダー付レポートの作成

この例では、各ページの最初と最後の部門番号がページ・ヘッダーに表示されます。

図3-14 データベース値を使用したヘッダー付レポートの最終出力のサンプル

このサンプルの作成の詳細は、第17章「データベース値を使用したヘッダー付レポートの作成」を参照してください。

3.3.4 グラフィック、テキストおよびカラーを使用したレポートの作成

この例では、レポートを作成して、マージンにイメージ、タイトルおよび境界線を追加して、レポートを拡張します。また、異なるフォントとテキスト・スタイルを適用して、レポートの外観も変更します。

図3-15 グラフィック、テキストおよびカラーを使用したレポートの最終出力のサンプル

このサンプルの作成の詳細は、第18章「グラフィック、テキストおよびカラーを使用したレポートの作成」を参照してください。

3.3.5 繰返し枠ごとにページ番号をリセットするレポートの作成

この例では、「Page X of Y Pages」の書式を使用してページの番号付けを行うレポートを作成します。最初の番号(X)は、各親レコード(各営業担当者など)の現行ページに対応します。このページ番号は、営業担当者ごとに「1」にリセットされます。したがって、各営業担当者の統計が個別に追跡されます。

図3-16 繰返し枠ごとにページ番号をリセットするレポートの最終出力のサンプル

このサンプルの作成の詳細は、第19章「繰返し枠ごとにページ番号をリセットするレポートの作成」を参照してください。

3.3.6 混合フィールド・レポートの作成

この例では、グループ・フィールドが関連するフィールドの中に表示されるレポートを作成します。通常、グループ(ブレーク)フィールドは、関連するフィールドの左(グループ左レポートの場合)または上(グループ上レポートの場合)に表示されます。

図3-17 混合フィールド・レポートの最終出力のサンプル

このサンプルの作成の詳細は、第20章「混合フィールド・レポートの作成」を参照してください。

3.3.7 ラベルを非表示にするレポートの作成

この例では、ディテールが関連付けられていないマスター・レコードをフェッチするマスター/ディテール・レポートを作成します。次のサンプル出力で、ディテール・レコードがないためにDepartment 40のフィールド・ラベルが表示されないことを確認してください。この章では、単一レコードの詳細情報を非表示にし、他のマスター/ディテール・レコードを表示する方法を学習します。

図3-18 ラベルを非表示にするレポートの最終出力のサンプル

このサンプルの作成の詳細は、第21章「ラベルを非表示にするレポートの作成」を参照してください。

3.3.8 条件付きフォーム・レター・レポートの作成

この例では、次のサンプル出力のように、同じレポートから2つのフォーム・レターを作成します。2つのレターには、共通する複数の特徴があります。したがって、基本となるフォーム・レターを作成してから、現行レコード(この場合は従業員)用に特定の部分を表示するかどうかを決定するために、その部分に条件を適用した方がより便利です。

図3-19 最初の条件付きフォーム・レター・レポートの最終出力のサンプル

図3-20 2番目の条件付きフォーム・レター・レポートの最終出力のサンプル

このサンプルの作成の詳細は、第23章「条件付きフォーム・レター・レポートの作成」を参照してください。

3.3.9 条件付きハイライトを使用したレポートの作成

この例では、レポート内のデータをハイライトする方法を学習します。従業員の給与を表示するこのレポートでは、10,000以上の給与が赤い太字で表示され、4,999と10,000の間の値が太字で表示されます。Reports Builderの「条件付き書式」ダイアログ・ボックスを使用すると、定義した要因に応じて取得されたデータの外観を変更するフォーマット・トリガーを作成できます。

図3-21 条件付きハイライトを使用したレポートの最終出力のサンプル

このサンプルの作成の詳細は、第22章「条件付きハイライトを使用したレポートの作成」を参照してください。

3.3.10 動的グラフィックを使用したレポートの作成

この例では、従業員が所属する部門の場所に応じて異なるグラフィックを表示する従業員レポートを作成します。レポートのデータは毎月変化するので、グラフをインポートしたり描画したりすることはできません。

図3-22 動的グラフィックを使用したレポートの最終出力のサンプル

このサンプルの作成の詳細は、第24章「動的グラフィックを使用したレポートの作成」を参照してください。

3.4 第4部: マトリックス・レポートの作成

ここでは、様々な種類のマトリックス・レポートを作成する方法について説明します。

3.4.1 マトリックス・レポートの作成

マトリックス・レポートはグリッドのようなスタイルです。次のサンプル出力のように、マトリックス・レポートにはラベルの行と列が1つずつ、また行ラベルと列ラベルの両方に関連付けられたグリッド・フォーマット内の情報があります。(マトリックス・レポートは、クロス集計レポートとも呼ばれます。)

この例では、基本マトリックスに3つの加算を追加したマトリックス・レポートを作成します。このレポートでは、サマリーが追加され、セル内に存在しない値はゼロに置換され、セル自体がグリッド線で囲まれています。サマリーは、部門別の給与合計、職種別の給与合計およびレポート全体での給与合計です。

図3-23 マトリックス・レポートの最終出力のサンプル

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

3.4.2 ネストしたマトリックス・レポートの作成

この例では、次のようなネストしたマトリックス・レポートを作成します。クロス積では、3つのディメンション(YEAR、DEPTNOという縦方向のディメンションとJOBという横方向のディメンション)に対して可能なすべての値が表示されます。この方法では、NULL値を含む行は除外されます。

図3-24 ネストしたマトリックス・レポートの最終出力のサンプル

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

3.4.3 グループ上マトリックス・レポートの作成

この例では、マトリックス・ブレーク・フォーマットを使用して、各従業員の部門、職種および給与情報を入社年別に表示するレポートを作成します。

図3-25 グループ上マトリックス・レポートの最終出力のサンプル

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

3.5 第5部: 業務用レポートの作成

ここでは、ビジネス要件を満たす様々な種類のレポートを作成する方法について説明します。

3.5.1 時系列計算レポートの作成

この例では、各顧客の購入金額について4か月間の平均値を計算して表示するレポートを作成します。レポート・ウィザードを使用して、ペーパー出力用とWeb用に単純な時系列計算レポートを作成します。JSPベースのWebレポートの場合、Webソースを修正してラベルを変更し、書式マスクを追加します。

図3-26 時系列計算レポートの最終出力のサンプル

このサンプルの作成の詳細は、第28章「時系列計算レポートの作成」を参照してください。

3.5.2 Microsoft Excel出力へのペーパー・レポートの配布

この例では、既存のペーパー・レイアウトがある場合に、Oracle WebLogic Server上のReports Serverを使用してレポートを配布し、Webブラウザ内のMicrosoft Excelにそれを表示します。レポートのWebソースを変更してペーパー・レイアウトをWebレイアウトに統合し、Microsoft Excelで出力するレポートを生成します。

図3-27 Microsoft Excelレポートの最終出力

このサンプルの作成の詳細は、第29章「拡張スプレッドシート出力のレポートの作成」を参照してください。

3.5.3 集約データを使用したレポートの作成

この例では、給与が0から999の範囲内にあるすべての従業員の名前、給与が1000から1999の範囲内にあるすべての従業員の名前などを収集し、その名前を表示するレポートを作成します。このレポートを変更して、必要な集約範囲を表示できます。

図3-28 集約データのレポートの最終出力のサンプル

このサンプルの作成の詳細は、第30章「集約データを使用したレポートの作成」を参照してください。

3.5.4 金額がスペル表記された請求書印刷レポートの作成

この例では、スタブとスペル表記された金額を使用して、請求書印刷レポートを作成します。この例で説明する手順は、スペル表記された数値を返すPL/SQLファンクションの作成に役立ちます。印刷済フォームのイメージ(この場合、空白の請求書イメージ)をインポートする方法や、ペーパー・レイアウト・ビューとペーパー・デザイン・ビューのツールを使用してこのようなフォームでレポートを印刷する方法も学習します。このレポートのサンプルでは請求書を使用しますが、この手順に従って、Oracle Reportsに付属の任意の印刷済フォームを使用できます。

図3-29 金額がスペル表記された請求書印刷レポートの最終出力

このサンプルの作成の詳細は、第31章「金額がスペル表記された請求書印刷レポートの作成」を参照してください。

3.5.5 印刷済フォームを使用したレポートの作成

この章では、コンピュータで読込み可能なバージョンのフォームを使用できない場合に、印刷済フォームにレポートを印刷するためのフォーマット方法を学習します。このようなレポートは、フォームの正確な位置にデータが印刷されるように設計する必要があります。

図3-30 印刷済フォームの最終出力のサンプル

このサンプルの作成の詳細は、第32章「印刷済フォームを使用したレポートの作成」を参照してください。

3.5.6 請求書レポートの作成

この例では、一般的な請求書にあるいくつかの特性(顧客名、住所、発注番号、支払明細、請求総額など)を示すレポートを作成します。

図3-31 請求書レポートの最終出力のサンプル

このサンプルの作成の詳細は、第33章「請求書レポートの作成」を参照してください。

3.5.7 ランキング・レポートの作成

この例では、カウントとパーセンテージの2つの方法でデータをランク付けするレポートを作成します。上部には、上位3件の顧客の名前と購入金額合計が表示されます。下部には、売上全体の75%を占める顧客の名前と購入金額合計が表示されます。実行時にランキング条件を設定したり、以前に指定された値をランキング条件のデフォルトとして使用したりすることができます。

図3-32 ランキング・レポートの最終出力のサンプル

このサンプルの作成の詳細は、第34章「ランキング・レポートの作成」を参照してください。

3.5.8 単純な目次と索引を使用したレポートの作成

この例は、大規模なペーパー・レポートにナビゲーション用の項目を追加する方法を示しています。ここでは、グループ上レポートを作成し、その先頭に単純な目次を追加することで、ユーザーがカテゴリ別に項目を検索できるようにする方法を学習します。また、索引を作成して、ユーザーが特定の情報を直接検索できるようにする方法も学習します。

注意:

目次または索引の生成は、マトリックス・レポートではサポートされていません。

図3-33 単純な目次

図3-34 索引

このサンプルの作成の詳細は、第35章「単純な目次と索引を使用したペーパー・レポートの作成」を参照してください。

3.5.9 複数階層の目次を使用したレポートの作成

この例は、大規模なペーパー・レポートに複数階層の目次を追加する方法を示しています。ここでは、カテゴリとサブカテゴリに基づいて、既存のペーパー・レポートに目次を追加します。

注意:

目次の生成は、マトリックス・レポートではサポートされていません。

図3-35 複数階層の目次

このサンプルの作成の詳細は、第36章「複数階層の目次を使用したペーパー・レポートの作成」を参照してください。

3.5.10 レポートの一括処理と配布

この例では、提供されている単純なレポートを変更して、各セクションを個別のレポートに一括処理します。次に、サンプルの配布XMLファイルを変更して、個々のレポートを添付ファイルとする電子メールを各宛先に送信します。また、複数の電子メールに1つのファイル(レポート全体)を添付して同じ電子メール・アドレスに送信します。

このサンプルの作成の詳細は、第37章「レポートの一括処理と配布」を参照してください。

注意:

このレポートのサンプル出力はありません。

3.5.11 PDF出力用のマルチバイト・キャラクタを含むレポートの作成

この例では、マルチバイト・キャラクタを含むPDFフォーマットのレポートを作成し、Webおよびペーパー出力する方法を学習します。UTF8を使用したマルチバイト・キャラクタ・セットのレポートを作成します。簡体字中国語、繁体字中国語、日本語、韓国語などのマルチバイト文字およびUnicodeで表示されるテキストのレポートを生成できます。

図3-36 日本語によるUTF8のマルチバイト・キャラクタ・セット・レポート

このサンプルの作成の詳細は、第38章「PDF出力用のマルチバイト・キャラクタを含むレポートの作成」を参照してください。

3.6 第6部: PL/SQLとJavaを使用したレポートの作成

ここでは、PL/SQLとJavaを使用したレポートを作成する方法について説明します。

3.6.1 PL/SQLレポートの作成

この例では、外部PL/SQLライブラリとPL/SQLをレポートで使用して、フォーマットを変更したり、各従業員の報酬合計を計算したりする方法を学習します。次のサンプル出力で、レコード間(たとえば、Alexander KhooのレコードとAlexis Bullのレコード間)の間隔設定を確認してください。この間隔はブレークによるものではなく、フォーマット・トリガーでPL/SQLプロシージャを使用した結果です。

図3-37 PL/SQLレポートの最終出力のサンプル

このサンプルの作成の詳細は、第40章「PL/SQLを含むレポートの作成」を参照してください。

3.6.2 REFカーソルを使用したペーパー・レポートの作成

この例では、Reports BuilderのREFカーソルを使用した機能の使用方法を学習します。このペーパー・レポートを作成するには、データ・モデル・ビューを使用して複数問合せデータ・モデルを作成した後に、レポート・ウィザードを使用してレポート・レイアウトを作成します。データ・モデル・ビューで、詳細な調整を手動で行います。

図3-38 REFカーソルの最終出力のサンプル

このサンプルの作成の詳細は、第41章「REFカーソルを使用したペーパー・レポートの作成」を参照してください。

3.6.3 JSPベースのWebレポートに対する単純なパラメータ・フォームの作成

この例は、Webレポートに単純なJSPパラメータ・フォームを作成する方法を示しています。ここでは、HTML形式の単純なフォームを作成した後、Reports Builderのデータ・モデルに基づいてJSPパラメータ・フォームを作成します。次に、作成したパラメータ・フォームを既存のJSPベースのWebレポートにリンクし、JSPパラメータ・フォームとWebレポートの両方をブラウザに配布してテストする方法を学習します。

図3-39 JSPパラメータ・フォーム

図3-40 ユーザー・パラメータに基づくJSPベースのWebレポート

このサンプルの作成の詳細は、第42章「JSPベースのWebレポートに対する単純なパラメータ・フォームの作成」を参照してください。

3.6.4 バーコードを使用したレポートの作成

この例では、Oracle ReportsのバーコードJava Beanを使用してレポートを作成します。ペーパー出力用とWeb用の2つのレポートを作成します。ペーパー・レポートには、ある会社の複数の品目を注文したある顧客に対する請求書が表示されます。バーコードは、注文の追跡情報を示します。

図3-41 ペーパー・レイアウトでのバーコード・レポートの最終出力

図3-42 Webレイアウトでのバーコード・レポートの最終出力

このサンプルの作成の詳細は、第43章「バーコードを使用したレポートの作成」を参照してください。

3.6.5 アクセス可能なJSPベースのWebレポートの作成

この例では、Oracle Reportsのプロパティを使用して、補助テクノロジを使用したアクセス可能なJSPベースのWebレポートを作成します。既存のペーパーベースのレポートをアクセス可能に変更する方法を学習します。

このサンプルの作成の詳細は、第44章「アクセス可能なJSPベースのWebレポートの作成」を参照してください。

注意:

このレポートのサンプル出力はありません。

3.7 第7部: プラガブル・データ・ソースを使用したレポートの作成

ここでは、プラガブル・データ・ソースを使用してレポートを作成する方法について説明します。

3.7.1 XMLプラガブル・データ・ソースを使用したレポートの作成

Reports Builderでは、任意のデータ・ソースを使用できます。この例では、Oracle Reportに付属のXMLプラガブル・データ・ソースを使用する方法を学習します。

図3-43 XML PDSの最終出力のサンプル

このサンプルの作成の詳細は、第45章「XMLプラガブル・データ・ソースを使用したレポートの作成」を参照してください。

3.7.2 テキスト・プラガブル・データ・ソースを使用したレポートの作成

この例では、文字区切りテキストをデータ・ソースとして使用する方法を学習します。

図3-44 テキストPDSの最終出力のサンプル

このサンプルの作成の詳細は、第46章「テキスト・プラガブル・データ・ソースを使用したレポートの作成」を参照してください。

3.8 サマリー

この章では、このマニュアル内の各サンプル・レポートについて説明しました。各サンプルの詳細は、指定された参照先を参照してください。最新バージョンのドキュメントおよびサンプル・ファイルは、Oracle Technology Network (OTN)から入手できます。Oracle Reportsのページ(http://www.oracle.com/technology/products/reports/index.html)で、「Getting Started」をクリックして「Getting Started with Oracle Reports」ホームページを表示します。

4 方法

この章では、Oracle Reportsを使用してオブジェクトを作成し、レポートを設計する手順を示します。この章の各トピックは、Oracle Reportsオンライン・ヘルプの方法に関する項にも含まれています(第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」を参照)。

手順は次の各項に分類されています。

- 第4.1項「Oracle Reportsのドキュメントへのアクセス」

- 第4.2項「プロパティと環境設定の設定」

- 第4.3項「共通タスクの実行」

- 第4.4項「オブジェクト・ナビゲータの操作」

- 第4.5項「レポートの操作」

- 第4.6項「Webレポートの操作」

- 第4.7項「レポートの実行と出力」

- 第4.8項「データ・モデルの操作」

- 第4.9項「レポート・レイアウトの操作」

- 第4.10項「レポート・セクションの操作」

- 第4.11項「パラメータとパラメータ・フォームの操作」

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

- 第4.13項「レポートまたはテンプレートでのPL/SQLの使用」

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

- 第4.15項「他の製品との統合」

- 第4.16項「Oracle Reports Builderの管理」

4.1 Oracle Reportsのドキュメントへのアクセス

この項では、Oracle Reportsのドキュメントにアクセスする際に実行する可能性がある次のタスクの手順について説明します。

- Oracle Reportsオンライン・ヘルプの使用

- 他のドキュメントの検索

4.1.1 Oracle Reportsオンライン・ヘルプの使用

Oracle Reports Builderの使用方法およびOracle Reportsの参照情報の詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このオンライン・ヘルプには、次の方法でアクセスできます。

- Oracle Reports Builderからアクセス

- 「ヘルプ」→「ヘルプ・コンテンツ」を選択します。

- ダイアログ・ボックスで、「ヘルプ」をクリックするか[F1]を押します。

- プロパティ・インスペクタでプロパティをクリックし、[F1]を押してプロパティのヘルプ・トピックを表示します。

- Oracle Technology Network (OTN)のOracle Reportsのページ(http://www.oracle.com/technology/products/reports/index.html)からアクセス

- 「Resources」で「Hosted Online Help」をクリックすると、Oracle Reportsのオンライン・ヘルプの最新版がWebベースで表示されます。

- 「News」で「Oracle Reports Online Help Update」をクリックすると、Oracle Reports Builderに表示されるOracle Reportsオンライン・ヘルプが最新版に置き換えられます。ヘルプ・ファイルを更新する方法は、ダウンロードしたreadme.txtファイルに記載されています。

次に示すガイドラインは、オンライン・ヘルプを効果的に使用するのに役立ちます。

- オンライン・ヘルプで取り扱うトピックの範囲を把握するには、「目次」タブの内容をよく理解してください。

- 個々の問題の特定のトピックを検索するには、「索引」タブをクリックします。

- 「ヘルプ・ナビゲータ」ウィンドウと「ヘルプ・トピック」ウィンドウは、分離することも合体させることもできます。必要に応じてウィンドウを移動します。

4.1.2 他のドキュメントの検索

レポートの作成を始めて使いこなすには、次のリソースを参照してください。

表4-1 Oracle Reportsのドキュメント・ロードマップ

参照内容

参照先

Oracle Reportsの概要

- 概要情報は、Oracle Technology NetworkのOracle Reportsのページ(http://www.oracle.com/technology/products/reports/index.html)から入手できます。

- 「ヘルプ」→「ヘルプ・コンテンツ」を選択して表示される「ヘルプ・ナビゲータ」ウィンドウの、「ようこそ」ノードにあるオンライン・ヘルプ・トピック。

このリリースでの新機能と変更された機能の概要

- 『Oracle Reports新機能』。このマニュアルは、Oracle Technology NetworkのOracle Reportsのページ(http://www.oracle.com/technology/products/reports/index.html)から入手できます。

- 『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「概要」に、Oracle Reports 11gリリース1 (11.1.1)の新機能と、10gリリース2 (10.1.2)での同等の機能の詳しい説明があります。

ペーパー・レポートとWebベースのレポートの作成に関する説明と実地レッスン

- このマニュアルおよび『Oracle Reportsチュートリアル』。チュートリアルはOracle Fusion Middlewareドキュメント・ライブラリにあります。

- 特定のタスクおよび参照情報の詳細は、オンライン・ヘルプ(Oracle Reports Builderで「ヘルプ」→「ヘルプ・コンテンツ」を選択)を参照してください。

ダイアログ・ボックス、メッセージ、プロパティに関する状況依存ヘルプ

- ダイアログ・ボックスとメッセージの詳細は、「ヘルプ」をクリックするか[F1]を押して表示されるオンライン・ヘルプ・トピックを参照してください。

- プロパティの詳細は、プロパティ・インスペクタでプロパティをクリックした後、[F1]を押して表示されるオンライン・ヘルプ・トピックを参照してください。

Oracle Reports Servicesについての情報と、Reports Serverの構成および使用についての情報

- 『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』。このマニュアルは、Oracle Fusion Middlewareドキュメント・ライブラリにあります。

Oracle ReportsのApplication Program Interface (API)の使用についての情報

- Oracle Reports Java APIリファレンス。このマニュアルはドキュメントCDにありますが、OTNのOracle Reports Searchページ(http://www.oracle.com/technology/products/reports/htdocs/search.html)からも入手できます。「Collateral Type」リストで「Documentation」を選択して、「Search」をクリックします。表示されたリストで、Oracle Reports Java APIのドキュメントを探します。

- Reports Software Development Kit (RSDK)。これは、Oracle Technology Network (OTN)のOracle Reportsのページ(http://www.oracle.com/technology/products/reports/index.html)で「SDK」をクリックすると入手できます。

- Oracle Reports Plugin Exchange。これは、Oracle Technology Network (OTN)のOracle Reports 11gのページ(http://www.oracle.com/technology/products/reports/index.html)で「Plugin Exchange」をクリックすると入手できます。

サンプルとデモ

- OTNのOracle Reports Searchページ(http://www.oracle.com/technology/products/reports/htdocs/search.html)から入手できます。「Collateral Type」リストで「Examples」または「Demonstrations」を選択して、「Search」をクリックします。表示されたリストで、対象となるサンプルまたはデモをクリックします。

その他のリソース(ホワイト・ペーパーなど)

- OTNのOracle Reports Searchのページ(http://www.oracle.com/technology/products/reports/htdocs/search.html)から入手できます。「Collateral Type」リストで「White Papers & How To Documents」を選択して、「Search」をクリックしてください。

4.2 プロパティと環境設定の設定

この項では、プロパティと環境設定を設定する際に実行する可能性がある次のタスクの手順について説明します。

- プロパティ・インスペクタの表示

- レポートのプロパティの設定

- レポートの環境設定の設定

- オブジェクト・ナビゲータの環境設定の設定

- ASCII(キャラクタ・モード)レポートのプロパティの設定

- カラー・パレットの環境設定の設定

- 複数オブジェクトのプロパティの設定

- オブジェクトどうしのプロパティの比較

4.2.1 プロパティ・インスペクタの表示

オブジェクトのプロパティ・インスペクタを表示するには:

- オブジェクト・ナビゲータで、次のいずれかの操作を行います。

- オブジェクト名のすぐ左にあるアイコンをダブルクリックします。

- オブジェクト名をクリックし、右クリックして「プロパティ・インスペクタ」を選択します。

- オブジェクト名をクリックし、「ツール」→「プロパティ・インスペクタ」を選択します。

- オブジェクト名をクリックして、[F4]を押します。

- レポート・エディタのビューで、次のいずれかの操作を行います。

- オブジェクトをダブルクリックします。

- オブジェクトをクリックし、右クリックして「プロパティ・インスペクタ」を選択します。

- オブジェクトをクリックし、「ツール」→「プロパティ・インスペクタ」を選択します。

- オブジェクトをクリックして、[F4]を押します。

関連項目

第1.10.1項「プロパティ・インスペクタについて」

4.2.2 レポートのプロパティの設定

レポートのプロパティを設定するには:

1. オブジェクト・ナビゲータで、レポート名の横のプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。

2. 必要に応じて、レポートのプロパティを設定します。

4.2.3 レポートの環境設定の設定

レポートの環境設定を指定するには:

1. 「編集」→「プリファレンス」を選択します。

2. レポート設計の環境設定を指定するには、「一般」タブ、「アクセス」タブ、「ウィザード」タブで値を設定します。

3. レポート実行の環境設定を指定するには、「ランタイム値 」タブと「ランタイム設定 」タブで値を設定します。

4. 「プリファレンス」ダイアログ・ボックスでの設定の詳細は、「ヘルプ」をクリックしてください。

4.2.3.1 自動保存機能の使用

Oracle Reports 11gリリース1 (11.1.1)には、Reports Builderでの予期しないイベントやシステム障害の発生時に未保存の変更をリカバリする自動保存機能が用意されています。

自動保存が有効になっていると、Reports Builderでは未保存のデータが自動的にリカバリされます。

自動保存機能を有効にするには:

1. オブジェクト・ナビゲータで、「編集」→「プリファレンス」を選択します。

2. 「一般」タブで、「自動保存」チェック・ボックスを選択します。

3. 「OK」をクリックします。

4.2.4 オブジェクト・ナビゲータの環境設定の設定

オブジェクト・ナビゲータ表示のオプションを指定するには:

1. オブジェクト・ナビゲータで、「ツール」→「オプション」→「ナビゲータ」を選択します。

2. 「オブジェクト・ナビゲータ・オプション」ダイアログ・ボックスで、必要に応じて設定を変更します。

3. 「OK」をクリックします。

関連項目

第1.5.1項「オブジェクト・ナビゲータについて」

4.2.5 ASCII(キャラクタ・モード)レポートのプロパティの設定

ASCII(キャラクタ・モード)レポートのプロパティを設定するには:

1. レポート名の横のプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。

2. 「キャラクタ・モード」ノードで、「キャラクタ単位で設計」を「はい」に設定します。

3. オブジェクト・ナビゲータの「ペーパー・レイアウト」ノードで、「ヘッダー・セクション」、「メイン・セクション」または「トレーラ・セクション」のうち、該当するセクション(ヘッダー、メイン、トレーラ)のプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。

注意:

デフォルトでは、レポートはメイン・セクションに定義されます。

4. プロパティ・インスペクタの「セクション」ノードで、次の操作を行います。

- 「レポート幅」と「レポート高」に、そのレポートにあてはまるキャラクタ・モードのディメンションを設定します。たとえば、横向きの場合は幅が132(または180)で高さが66、縦向きの場合は幅が102で高さが85(または116)とします。

- 「方向」プロパティを目的の値に設定します。

5. オブジェクト・ナビゲータで「データ・モデル」ノードを開き、「システム・パラメータ」ノードを開きます。

6. 「MODE」の横のプロパティ・アイコンをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「パラメータ」ノードで、「初期値」プロパティを「Character」に設定します。

7. ペーパー・レイアウト・ビューで、「ツール」→「オプション」→「ルーラー」を選択して、「ルーラー設定」ダイアログ・ボックスを表示します。

- 単位を文字セルに設定し、格子当りのスナップポイント数を「1」に設定します。

- 「OK」をクリックします。

8. メニュー・バーで「表示」をクリックして、「グリッド指定」が選択されていることを確認します。

9. 「編集」→「プリファレンス」を選択し、「プリファレンス」ダイアログ・ボックスを表示します。

- 「ウィザード」ページで、「水平中間フィールド」を「1」に、「垂直中間フィールド」を「0」に設定します。

- 「OK」をクリックします。

10. 「書式」→「フォント」を選択し、キャラクタ・モードのフォントに最も近いフォント、スタイルおよびサイズを選択します。たとえば、Courier、標準、12ポイントを選択します。

関連項目

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

4.2.6 カラー・パレットの環境設定の設定

カラー・パレットの環境設定を設定するには:

1. 「編集」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログ・ボックスの「一般」タブ・ページで、必要に応じて「カラー・モード」を次のように設定します。

- 編集可: Oracle Reports Builderによって、システムのカラー・パレットがアクティブ・レポートのパレットに一時的に置き換えられます。新規レポートをアクティブにするたびに、そのカラー・パレットによってシステム・パレットが置き換えられます。レポートにはカラー・パレットは1つのみ設定できます。これでアクティブ・レポートは正確に表示されますが、アクティブでないレポートの表示は正しいものではなくなります。カラー・パレットを変更する場合、あるいはカラー・パレットをインポートまたはエクスポートする場合は、「編集可」を選択する必要があります。

- 読取り専用 - 共有: (デフォルト)Oracle Reports Builderによって、パレットにカラーを含める領域がなくなるまで、各アクティブ・レポートのカラー・パレットがシステムの元のパレットに追加されます。そのパレットは、開いているすべてのレポートが共有する共通のパレットになります。まったく異なるカラーを使用するレポートを作成すると、正確に表示されないことがあります。

- 読取り専用 - 個別: レポートをアクティブにするたびに、Oracle Reports Builderによって、パレットにカラーを含める領域がなくなるまで、そのレポートのカラー・パレットがシステムの元のパレットに追加されます。このパレットは、レポートがアクティブなときはいつでも使用できるようになります。これでアクティブ・レポートは正確に表示されますが、アクティブでないレポートの表示は正しいものではなくなります。

注意:

レポートにはカラー・パレットは1つのみ設定できます。

3. 「カラー・モード」を変更する場合に、新しいモードを有効にするには、Oracle Reports Builderをシャットダウンして再起動します。

関連項目

第2.4.5項「カラーとパターンの変更について」

第4.9.6.6項「カラー・パレットのインポートまたはエクスポート」

第4.9.6.5項「カラー・パレットの変更」

第4.9.6.2項「カラーの変更」

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

4.2.7 複数オブジェクトのプロパティの設定

複数オブジェクトのプロパティを設定するには:

1. オブジェクト・ナビゲータまたはレポート・エディタの任意のビューで、プロパティを設定するオブジェクトを選択します。オブジェクトは、タイプが異なるものでも、異なるレポートにあるものでもかまいません。

2. 「ツール」→「プロパティ・インスペクタ」を選択します。

3. プロパティ・インスペクタで、「論理和」ボタンをクリックしてすべてのオブジェクトのプロパティをすべて表示するか、「論理積」ボタンのままにしてオブジェクトが共有しているプロパティのみを表示します。

4. 必要に応じてプロパティを設定します。

注意:

プロパティ設定を変更すると、そのプロパティが適用される現在の選択範囲にあるすべてのオブジェクトに対して、その変更が適用されます。

たとえば、1つのレポートに複数のフィールドがあり、それぞれに日付が表示されているとします。各フィールドの「データ型」プロパティはDATEになっているため、日付はORACLEのデフォルト書式DD-MON-YYで表示されます。

別の日付書式をアプリケーション全体で使用するには、日付を表示するフィールドそれぞれに、「書式マスク」プロパティを設定する必要があります。そこで、各フィールドの「書式マスク」プロパティを個別に設定するのではなく、すべての項目を選択して「書式マスク」プロパティを一度だけ設定し、選択した各項目の書式マスクを変更します。

関連項目

第1.10.1.1項「プロパティ・インスペクタでの複数選択について」

4.2.8 オブジェクトどうしのプロパティの比較

オブジェクトどうしのプロパティを比較するには:

1. オブジェクト・ナビゲータかエディタで第1のオブジェクトをダブルクリックして、プロパティ・インスペクタにそのプロパティを表示します。

2. プロパティ・インスペクタで「確保」ボタンをクリックして、このプロパティ・インスペクタのコピーを現行のオブジェクトに添付します。

3. オブジェクト・ナビゲータで2つ目のオブジェクトをダブルクリックしてから、「ツール」→「プロパティ・インスペクタ」を選択します。
第2のプロパティ・インスペクタが表示されます。第2のウィンドウが第1のウィンドウの上に重なって表示されている場合は、第2のウィンドウをドラッグして、第1のウィンドウと並べます。

4.3 共通タスクの実行

Oracle Reports Builderを操作していると、次のようなタスクを実行することが多くなります。

- データベースへの接続

- レポートを開く

- レポートの保存

- レポート名の変更

- レポートの削除

- オブジェクトの選択と選択解除

- オブジェクトの削除

使用に関する注意

Oracle Reports 10gから、レポートはデータベースには保存されなくなりました(データベース内のレポートに対する名前の変更、権限付与および情報取得の機能も廃止されました)。かわりに、レポートはファイルに保存されます。

4.3.1 データベースへの接続

Oracle Reports Builderでレポートを設計中に、データベースに接続するには:

1. 「ファイル」→「接続」を選択します。

2. 「接続」ダイアログ・ボックスで、「ユーザー名」、「パスワード」、「データベース」の各フィールドに必要な情報を入力して(詳細は「ヘルプ」をクリック)、「接続」をクリックします。

コマンドラインを使用してデータベースに接続するには:

- rwbuilderコマンドラインまたはrwrunコマンドラインで、USERIDキーワードを使用して接続情報を指定します(USERID=username[/password][@database])。USERIDの詳細は、Oracle Reportsオンライン・ヘルプのリファレンスのコマンドラインに関する項を参照してください。

4.3.2 レポートを開く

レポートを開くには:

1. 「ファイル」→「開く」を選択します。

2. 「開く」ダイアログ・ボックスでレポートを参照し、その名前をクリックして「開く」をクリックすると、Oracle Reports Builderでレポートが開きます。

4.3.3 レポートの保存

レポートを保存するには:

1. 「ファイル」→「保存」を選択するか、または「ファイル」→「別名保存」を選択します。または、ツールバーの「保存」ボタンをクリックします。

2. 一度も保存していないレポートの場合は、「保存」ダイアログ・ボックスで目的の場所を参照して、レポートの名前を入力します。「保存」をクリックします。

4.3.4 レポートのコピー

レポートをコピーするには:

1. オブジェクト・ナビゲータで、コピーするレポートをクリックします。

2. 「ファイル」→「別名保存」を選択します。

3. 「別名保存」ダイアログ・ボックスで目的の場所を参照して、レポートの新しいコピーの名前を入力します。「保存」をクリックします。

4.3.5 レポート名の変更

オブジェクト・ナビゲータでレポート名を変更するには:

1. オブジェクト・ナビゲータで、レポート名の横のプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。

2. プロパティ・インスペクタの「一般情報」ノードで、「名前」プロパティに新しい名前を入力して設定します。

ファイル・システムでレポート名を変更するには:

1. ご使用のオペレーティング・システムのファイル・システム(たとえば、Windowsの場合はWindows Explorer)で、レポートの場所を参照します。

2. レポート名をクリックし、もう一度クリックしてその名前をアクティブにします。

3. レポートの新しい名前を入力します。

4.3.6 レポートの削除

オブジェクト・ナビゲータでレポートを削除するには:

1. オブジェクト・ナビゲータで、レポート名をクリックして、「編集」→「削除」をクリックするか、ツールバーの「削除」をクリックします。

2. 警告のダイアログ・ボックスが表示されたら、「はい」をクリックしてレポートを削除します。削除操作を取り消すには、「いいえ」をクリックします。

ファイル・システムでレポートを削除するには:

1. ご使用のオペレーティング・システムのファイル・システム(たとえば、Windowsの場合はWindows Explorer)で、レポートの場所を参照します。

2. レポート名をクリックし、「ファイル」→「削除」を選択します。

3. 警告のダイアログ・ボックスが表示されたら、「はい」をクリックしてレポートを削除します。削除操作を取り消すには、「いいえ」をクリックします。

4.3.7 オブジェクトの選択と選択解除

オブジェクトの操作やプロパティ定義を行うには、まずオブジェクトを選択する必要があります。

4.3.7.1 単一オブジェクトの選択

オブジェクト・ナビゲータで単一オブジェクトを選択するには:

- オブジェクトをクリックします。オブジェクトがレポート・エディタのビューのどれかに表示されていれば、対応するビューでも選択された状態になっています。

データ・モデル・ビュー、ペーパー・レイアウト・ビュー、ペーパー・デザイン・ビューまたはペーパー・パラメータ・フォーム・ビューで単一オブジェクトを選択するには:

1. ツール・パレットのツールがアクティブになっている場合、まずツール・パレットの「選択」ツールをクリックします。

2. オブジェクトをクリックします。

4.3.7.2 複数オブジェクトの選択

オブジェクト・ナビゲータで複数オブジェクトを選択するには:

- 最初のオブジェクトをクリックして、次のいずれかの操作を行います。

- [Shift]を押しながら別のオブジェクトをクリックして、最初のオブジェクトと現行オブジェクトの間のすべてのオブジェクトを選択します。

- [Ctrl]を押しながら追加のオブジェクトをクリックして、選択グループにオブジェクトを追加します。

レポート・エディタのビューのどれかに表示されているオブジェクトは、対応するビューでも選択された状態にあります。

データ・モデル・ビュー、ペーパー・レイアウト・ビュー、ペーパー・デザイン・ビューまたはペーパー・パラメータ・フォーム・ビューで複数オブジェクトを選択するには:

1. ツール・パレットのツールがアクティブになっている場合、まずツール・パレットの「選択」ツールをクリックします。

2. 次のいずれかの操作を行います。

- [Shift]を押しながら各オブジェクトをクリックします。

- 選択するオブジェクトすべてを含む領域をクリックしてドラッグします。(データ・モデル・ビューでは、選択した最初のオブジェクトがグループ内の列である場合、これ以外に選択するオブジェクトは、どれも同じグループ内の列である必要があります。問合せ、グループ、レポートレベルの列またはパラメータの選択と同時にグループ内の列を選択することはできません。)

4.3.7.3 枠に囲まれたオブジェクトの選択

枠または繰返し枠に囲まれたオブジェクト・セットを選択するには:

1. ペーパー・レイアウト・ビューで、次のいずれかの操作を行います。

- ツールバーの「制限オン」ボタンをクリックします。

- すべてのオブジェクトを明示的に選択して共有プロパティを設定する場合は、ツールバーの「枠選択」ボタンをクリックします。

2. 枠または繰返し枠をクリックします。
明示的なアンカーに従って、枠または繰返し枠内のすべてのオブジェクトが選択されます。

4.3.7.4 グループ化されたオブジェクトの選択

グループ化されたオブジェクト(「レイアウト」→「グループ設定」→「グループ化」を使用してグループ化)を選択するには、ツール・パレットの「選択」ツールをクリックして、グループ化されたオブジェクトのいずれかをクリックします。

4.3.7.5 レポート領域内のすべてのオブジェクトの選択

編集中の領域内(ヘッダー・セクション、メイン・セクションまたはトレーラ・セクションのボディまたはマージン)にあるすべてのオブジェクトを選択するには、「編集」→「すべて選択」を選択します。(データ・モデル・ビューでは、この操作を行ってもグループ内の列は選択されません)。

4.3.7.6 オーバーラップしたオブジェクトの選択

一部または全部が別のオブジェクトとオーバーラップしたオブジェクトを選択するには:

1. 選択するオブジェクトを遮っているオブジェクトをクリックします。

2. 「レイアウト」→「最背面へ移動」を選択して、隠しているオブジェクトの上に目的のオブジェクトを移動します。

3. オブジェクトをクリックします。

4.3.7.7 単一オブジェクトの選択解除

オブジェクト・ナビゲータで単一オブジェクトを選択解除するには:

- [Ctrl]を押しながらオブジェクトをクリックします。オブジェクトがレポート・エディタのビューのどれかに表示されていれば、対応するビューでも選択解除された状態になっています。

データ・モデル・ビュー、ペーパー・レイアウト・ビュー、ペーパー・デザイン・ビューまたはペーパー・パラメータ・フォーム・ビューで単一オブジェクトを選択解除するには:

- [Shift]を押しながらオブジェクトをクリックします。

4.3.7.8 複数オブジェクトの選択解除

選択したオブジェクトをすべて選択解除するには:

- 空白領域のどこかをクリックします。

4.3.8 オブジェクトの削除

オブジェクトを削除するには:

1. オブジェクトをクリックします。

ヒント:

複数のオブジェクトを選択するには、オブジェクトを1つクリックしてから[Shift]を押しながら他のすべてのオブジェクトをクリックします。すべてのオブジェクトを選択するには、「編集」→「すべて選択」を選択します。

2. 「編集」→「削除」を選択します。

4.4 オブジェクト・ナビゲータの操作

この項では、オブジェクト・ナビゲータを操作する際に実行する可能性がある次のタスクの手順について説明します。

- オブジェクト・ナビゲータからのレポート・エディタのビューの表示

- ノードの開閉

- ノードの検索

- オブジェクト・ナビゲータの表示の変更

- オブジェクト・ナビゲータの環境設定の設定

関連項目

第1.5.1項「オブジェクト・ナビゲータについて」

4.4.1 オブジェクト・ナビゲータからのレポート・エディタのビューの表示

オブジェクト・ナビゲータでレポート・エディタのビューを表示するには、次のいずれかの操作を行います。

- 表示するビューのノードの横にあるアイコンをダブルクリックします。たとえば、ペーパー・レイアウト・ビューを表示するには、「ペーパー・レイアウト」ノードの横にあるビュー・アイコンをダブルクリックします。

- ノードをクリックし、右クリックして「レポート・エディタ」を選択します。

- ノードをクリックし、「ツール」→「レポート・エディタ」を選択します。

注意:

オブジェクト・ナビゲータには「ペーパー・デザイン」ノードはありません。ペーパー・デザイン・ビューは、レポートを実行した後にのみ表示されます。

関連項目

第1.6.2項「データ・モデル・ビューについて」

第1.6.3項「ペーパー・レイアウト・ビューについて」

第1.6.5項「ペーパー・パラメータ・フォーム・ビューについて」

第1.6.6項「Webソース・ビューについて」

4.4.2 ノードの開閉

ノードを1レベル開閉するには、次のいずれかの操作を行います。

- オブジェクト・ナビゲータで、ノードの横のプラス符号またはマイナス符号をクリックします。

- ノードをクリックし、ツール・パレットの「拡張」ツールまたは「縮小」ツールをクリックします。

ノードを完全に開閉するには、次のいずれかの操作を行います。

- オブジェクト・ナビゲータで、ノードの横のプラス符号またはマイナス符号を何度かクリックして、ノードを完全に開閉します。

- ノードをクリックし、ツール・パレットの「すべて拡張」ツールまたは「すべて縮小」ツールをクリックします。

- ノードをクリックし、「表示」→「すべて拡張」または「表示」→「すべて縮小」を選択します。

4.4.3 ノードの検索

オブジェクト・ナビゲータで特定のノードを検索するには:

1. 「検索」フィールドにノード名の全体または一部を入力します。

2. 次に一致する対象を検索するには、ツールバーの「次を検索」ボタンをクリックします。

3. 前に一致した対象を検索するには、ツールバーの「前を検索」ボタンをクリックします。

4.4.4 オブジェクト・ナビゲータの表示の変更

オブジェクト・ナビゲータで、オブジェクト階層ごとにオブジェクトを表示して、親子リレーションシップを表示するには:

- 「表示」→「表示を変更」「所有者表示」を選択します。

オブジェクト・ナビゲータで、単一ヘッダーの下にあるすべての問合せのように、タイプごとにオブジェクトを表示するには:

- 「表示」→「表示を変更」→「オブジェクト・タイプ別表示」を選択します。

関連項目

第1.5.2項「オブジェクト・ナビゲータのビューについて」

4.4.5 オブジェクト・ナビゲータの環境設定の設定

第4.2.4項「オブジェクト・ナビゲータの環境設定の設定」を参照してください。

4.5 レポートの操作

この項では、(ペーパーベースまたはWebベースの)レポートを操作する際に実行する可能性がある次のタスクの手順について説明します。

- レポートの作成

- 複数問合せのグループ上レポートの作成

- ネストしたマトリックス・レポートの作成

- レポートのデフォルト・レイアウトの作成

- 追加のレポート・レイアウトの作成

- レポートへのタイトルの追加

- レポートへの目次の追加

- レポートへの索引の追加

- ASCII(キャラクタ・モード)レポートの作成

- 複数プラットフォーム・レポートの準備

- レポートを他の言語に翻訳するための準備

4.5.1 レポートの作成

単一問合せレポートを作成するには:

1. オブジェクト・ナビゲータで、「レポート」ノードをクリックし、ツールバーの「作成」ボタンをクリックします。

2. 「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」をクリックして「OK」をクリックします。

3. レポート・ウィザードの指示に従ってレポートを作成します。操作方法がわからない場合は、タブ・ページの「ヘルプ」をクリックしてください。

4. 生成されたレポートをWebソース・ビューまたはペーパー・デザイン・ビューで変更するか、「ツール」→「レポート・ウィザード」を選択して、ウィザードを再表示します。

複数問合せレポートを作成するには:

1. データ・ウィザードを使用して問合せを1件ずつ作成します。操作方法がわからない場合は、タブ・ページの「ヘルプ」をクリックしてください(第4.8.1.2項「問合せの作成: データ・ウィザード」を参照)。

2. レポートのレイアウトを作成します(第4.5.4項「レポートのデフォルト・レイアウトの作成」を参照)。

関連項目

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

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

第4.5.1項「レポートの作成」

第1.3.1項「表形式レポートについて」

第1.3.2項「グループ上レポートについて」

第1.3.3項「グループ左レポートについて」

第1.3.4項「フォーム形状レポートについて」

第1.3.5項「フォーム・レター・レポートについて」

第1.3.6項「メール・ラベル・レポートについて」

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

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

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

4.5.2 複数問合せのグループ上レポートの作成

第11章「2つの問合せを使用したグループ・レポートの作成」のサンプル・レポートを参照してください。

4.5.3 ネストしたマトリックス・レポートの作成

第26章「ネストしたマトリックス・レポートの作成」のサンプル・レポートを参照してください。

4.5.4 レポートのデフォルト・レイアウトの作成

レポートのデフォルト・レイアウトを作成するには:

1. 現行のレポートのレイアウトをデフォルトに設定するには(デフォルトでは、レポートのメイン・セクション)、「ツール」→「レポート・ウィザード」を選択し、ウィザードの指示に従って、選択したレポート・スタイル用のレイアウトを作成します。

2. 現行のレポート・レイアウトに別のレイアウト・セクションを追加するには、次の項の手順に従ってレポート・レイアウトをもう1つ作成します。

3. ペーパー・レイアウト・ビューで、デフォルト・レイアウトを手動でさらに変更します。

注意:

ペーパー・レイアウト・ビューまたはペーパー・デザイン・ビューでレイアウトを手動で変更した後、レポート・ウィザードに再度アクセスした場合、レポート・ウィザードの「終了」をクリックすると、これらのレイアウトの変更は失われ、レイアウトはデフォルト設定に戻ります。

関連項目

第2.4.2項「レイアウトのデフォルトについて」

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

第4.9.13.3項「デフォルトのレイアウト間隔の変更」

4.5.5 追加のレポート・レイアウトの作成

既存のレイアウトを上書きせずに、新規のレイアウト・セクションをレポートに追加するには:

1. ペーパー・レイアウト・ビューで、ツール・パレットの「レポート・ブロック」ツールをクリックします。

2. 新規レイアウトの四角形領域をドラッグして、レポート・ブロック・ウィザードを表示します。

3. ウィザードの指示に従ってデータを選択し、新規のレイアウト・セクションに表示します。

4. レイアウト・セクションをもう一度整列させるには、ペーパー・レイアウト・ビューで、各セクションをクリックして新しい位置にドラッグします。

5. ペーパー・デザイン・ビューでレポート出力を変更します。

注意:

レポート・ウィザードに再度アクセスして変更を行った場合、レポート・ウィザードで「終了」をクリックすると、レイアウト全体が新規のデフォルト・レイアウトで上書きされてしまいます。これまでに作成した追加のレポート・レイアウトも、ペーパー・レイアウト・ビューやペーパー・デザイン・ビューで手動で行ったレイアウト変更も、すべて失われてしまうので注意してください。

4.5.6 レポートへのタイトルの追加

レポートにタイトルを追加するには:

1. オブジェクト・ナビゲータで、レポートを選択するか開きます。

2. 「ツール」→「レポート・ウィザード」を選択します。

3. 「スタイル」ページで、「タイトル」フィールドにレポートのタイトルを入力します。

4. そのレポートのタイトルをテンプレートで使用する場合は、第4.12.5項「テンプレートのレポート・タイトルのフォーマット」を参照してください。

関連項目

第2.1.1項「レポートのタイトルについて」

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

4.5.7 レポートへの目次の追加

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

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

関連項目

第2.8.1項「フォーマットの順序について」

4.5.8 レポートへの索引の追加

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

索引の作成手順については、第35章「単純な目次と索引を使用したペーパー・レポートの作成」の例を参照してください。

4.5.9 ASCII(キャラクタ・モード)レポートの作成

ASCII(キャラクタ・モード)レポートを作成するには:

1. 最初に、レポート・ウィザードを使用してレポートを作成し、保存します。

2. オブジェクト・ナビゲータの「レポート」ノードで、キャラクタ・モードに変換するレポートをクリックします。

3. 「ツール」→「ファイル変換」を選択します。

4. 「変換」ダイアログ・ボックスの「変換」タブ・ページで、次の操作を行います。

- 「文書タイプ」を「レポート」に設定します。

- 「ソース」には、既存のビットマップ式レポートの名前を設定します。

- 「宛先タイプ」を「レポート・バイナリ・ファイル (RDF)」に設定します。

- 「宛先」には、新しいキャラクタ・モードのレポート名を設定します。

5. 「オプション」タブ・ページで、「宛先単位」を「文字」に設定します。

6. 「OK」をクリックします。

7. 新しいキャラクタ・モードのレポートのプロパティを設定します。

関連項目

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

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

4.5.10 複数プラットフォーム・レポートの準備

1つのレポートを複数のプラットフォームで実行するには、次にあげるGUIの相違点を準備段階で考慮してください。

フォント: ターゲットのGUIでは、特定のフォントのタイプ、スタイルまたはサイズが使用できない可能性があります。これは、次の2つの方法のいずれかで処理できます。

- ターゲットのGUIに存在することがわかっているフォントを使用するか、ターゲットのGUIのデフォルト・フォントにきちんとマッピングされるフォントを使用します。

- フォントのマッピング・ファイル(uifont.ali)を変更し、フォントが正しくマッピングされるようにします。

カラー: ターゲットGUIでは、特定のカラーが使用できないことがあります。可能であれば、ターゲットGUIに組み込まれているカラー、またはターゲットGUIのデフォルト・カラーに適切にマップされるカラーを使用します。通常、青、マゼンタ、赤、シアン、緑、黄の各カラーは、多数のプラットフォームで使用できます。

DPI: モニターで使用するドット・パー・インチ(DPI)が、レポートを実行するユーザーの使用しているDPIと異なる可能性があります。DPIが影響するのは、英数字の単語が画面上で折り返す方法のみです。設計するレポートをペーパー・デザイン・ビューで表示する可能性がある場合は、そのレポートを実行するユーザーと同じDPIを使用してみてください。また、レイアウト・オブジェクトのサイズは固定しないようにしてください。

4.5.11 レポートを他の言語に翻訳するための準備

National Language Support (NLS)の詳細は、Oracle Reportsオンライン・ヘルプの「各国語サポート」の項のトピックを参照してください。

4.6 Webレポートの操作

この項では、Webレポートを操作する際に実行する可能性がある次のタスクの手順について説明します。

- Webレポートの作成

- Webレポートのソース・コードの表示

- 既存のWebページ(HTMLファイル)へのレポート・データの追加

- Webページへのレポート・ブロックの追加

- イメージの追加

- グラフの追加

- グラフの編集

- グラフ・ハイパーリンクの追加

- ペーパーベースのレポートのWeb用の準備

- ペーパーベースのレポートへのWebリンクの追加

関連項目

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

4.6.1 Webレポートの作成

Webレポートは、次のいずれかの方法で作成できます。

- レポート・ウィザードを使用してレポートを作成します(第4.5.1項「レポートの作成」を参照)。作成するレポートは、Webとペーパーの両方またはWebのみを選択します。

- レポート・データを追加してWebページにレポートを挿入し、Webページにレポート・ブロックを追加します(第4.6.3項「既存のWebページ(HTMLファイル)へのレポート・データの追加」および第4.6.4項「Webページへのレポート・ブロックの追加」を参照)。

- Webソース・ビューを表示して、Oracle ReportsのカスタムJSPタグを手動で挿入します(Oracle Reportsオンライン・ヘルプのリファレンスに関する項を参照)。

- 既存のWebページに既存のレポートを挿入します。Webソース・ビューを使用してレポートとWebページの両方を表示し、レポート・ブロックをコピーしてWebページ内の目的の位置に貼り付けます。

- 既存のレポートにハイパーリンクを追加して、ペーパーベースのレポートをWeb用に準備します(第4.6.9項「ペーパーベースのレポートのWeb用の準備」を参照)。

4.6.2 Webレポートのソース・コードの表示

Webレポートのソース・コードを表示するには、次のいずれかの操作を行います。

- レポート・エディタで、ツールバーの「Webソース」ボタンをクリックします。

- オブジェクト・ナビゲータで、レポートの「Webソース」ノードの横にあるビュー・アイコンをダブルクリックして、Webソース・ビューにソース・コードを表示します。

- 「表示」→「表示を変更」→「Webソース」を選択します。

関連項目

Oracle Reportsオンライン・ヘルプのリファレンスに関する項のOracle Reports JSPタグに関するトピック

4.6.3 既存のWebページ(HTMLファイル)へのレポート・データの追加

レポート作成に使用するデータを取得して、既存のWebページ(HTMLファイル)に追加するには:

1. オブジェクト・ナビゲータで、「ファイル」→「開く」を選択します。

2. 目的のWebページ(HTMLファイル)を選択して、「開く」をクリックします。

3. オブジェクト・ナビゲータで、HTMLファイルを開いたときに作成されたレポートを見つけて(レポートにはREP1などのデフォルト名が付けられます)、「データ・モデル」ノードをダブルクリックしてデータ・モデル・ビューを表示します。

注意:

「データ・モデル」ノードを右クリックして「レポート・ウィザード」を選択し、レポート・ウィザードを使用してレポートのデータを選択すると、このレポートによって、既存のWebページのデータがすべて上書きされます。

4. データ・モデル・ビューで、「挿入」→「問合せ」を選択し、データ・ウィザードを使用してレポート用のデータを選択します。
「終了」をクリックすると、選択したデータがWebレポートで使用できるようになります。

次のステップ

第4.6.4項「Webページへのレポート・ブロックの追加」を参照してください。

4.6.4 Webページへのレポート・ブロックの追加

既存のWebページにレポート・ブロックを追加するには:

1. オブジェクト・ナビゲータで、「ファイル」→「開く」を選択します。

2. 目的のWebページ(HTMLファイル)を選択して、「開く」をクリックします。

3. オブジェクト・ナビゲータで、HTMLファイルを開いたときに作成されたレポートを見つけます(レポートにはREP1などのデフォルト名が付けられます)。

4. レポート作成に使用するデータを追加したら(第4.6.4項「Webページへのレポート・ブロックの追加」を参照)、「Webソース」ノードの横のビュー・アイコンをダブルクリックして、Webソース・ビューにWebページのソース・コードを表示します。

5. ソース・コード内で、レポート・ブロックを追加する位置を定めます。

注意:

「Place the report block here(ここにレポート・ブロックを配置)」といったコメントのテキストをWebページに追加しておくと、レポート・ブロックの正しい位置が簡単に見つかります。

6. 「挿入」→「レポート・ブロック」を選択します。

7. レポート・ブロック・ウィザードで、レポート・ブロックの情報を指定します。

4.6.5 イメージの追加

第4.9.8.1項「イメージの追加」を参照してください。

4.6.6 グラフの追加

第4.9.8.2項「グラフの追加」を参照してください。

4.6.7 グラフの編集

第4.9.8.3項「グラフの編集」を参照してください。

4.6.8 グラフ・ハイパーリンクの追加

第4.9.8.4項「グラフ・ハイパーリンクの追加」を参照してください。

4.6.9 ペーパーベースのレポートのWeb用の準備

ペーパーベースのレポートをWeb用に準備するには:

1. 必要に応じて次のように、新規または既存のレポートにWebリンクを追加します。

- HTMLドキュメント・ヘッダーを作成します(第4.6.10.1.1項を参照)。

- HTMLドキュメント・フッターを作成します(第4.6.10.1.2項を参照)。

- HTMLページ・ヘッダーを作成します(第4.6.10.1.3項を参照)。

- HTMLページ・フッターを作成します(第4.6.10.1.4項を参照)。

- HTMLパラメータ・フォーム・ヘッダーを作成します(第4.6.10.1.5項を参照)。

- HTMLパラメータ・フォーム・フッターを作成します(第4.6.10.1.6項を参照)。

- ハイパーリンクを作成します(レポート内のオブジェクトにリンクする場合は、関連するハイパーリンクの宛先も作成します)(第4.6.10.1.8項および第4.6.10.1.7項を参照)。

- アプリケーション・コマンドライン・リンクを作成します(PDF出力のみ)(第4.6.10.1.9項を参照)。

- ブックマークを作成します(第4.6.10.1.10項を参照)。

2. プリンタを選択するか、デフォルトのプリンタ設定を使用します(出力の生成に、現在選択しているプリンタのドライバが使用されます。そのため、レポートを実行するマシンにプリンタを構成する必要があります)。

3. Webブラウザにレポート出力を表示します(第4.7.16.4項「Webブラウザでのレポート出力の表示」を参照)。

関連項目

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

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

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

4.6.10 ペーパーベースのレポートへのWebリンクの追加

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

ペーパーベースのレポートにWebリンクを追加するには、次の方法があります。

- ユーザー・インタフェースの使用

- PL/SQLの使用

4.6.10.1 ユーザー・インタフェースの使用

この項では、Oracle Reports Builderのユーザー・インタフェースを使用して、ペーパーベースのレポートにWebリンクを追加する際に、実行する可能性がある次のタスクの手順について説明します。

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

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

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

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

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

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

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

- プロパティ・インスペクタを使用したハイパーリンクの作成

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

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

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

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

- データベースからのHTMLタグの選択

関連項目

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

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

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

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

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

注意:

この手順を行うのはHTML出力の場合のみです。

HTMLドキュメントのヘッダー・ページにHTMLファイルやテキストを挿入するには:

1. オブジェクト・ナビゲータで、レポートのプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。

2. 「レポート・エスケープ」ノードで、「レポート前型」プロパティを「テキスト」(ヘッダーを入力する場合)または「ファイル」(ファイルからヘッダーをインポートする場合)に設定します。

3. 「...」ボタンをクリックして、ダイアログ・ボックスにHTMLコードを入力するか、インポートするHTMLファイルを選択して、「レポート前値」プロパティを設定します。

関連項目

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

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

注意:

この手順を行うのはHTML出力の場合のみです。

HTMLドキュメントのフッター・ページにHTMLファイルやテキストを挿入するには:

1. オブジェクト・ナビゲータで、レポートのプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。

2. 「レポート・エスケープ」ノードで、「レポート後型」プロパティを「テキスト」(フッターを入力する場合)または「テキスト」(ファイルからフッターをインポートする場合)に設定します。

3. 「...」ボタンをクリックして、ダイアログ・ボックスにHTMLコードを入力するか、インポートするHTMLファイルを選択して、「レポート後値」プロパティを設定します。

関連項目

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

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

注意:

この手順を行うのはHTML出力の場合のみです。

HTML文書のすべてのページ にページ・ヘッダーを追加する手順は次のとおりです。

1. オブジェクト・ナビゲータで、レポートのプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。

2. 「レポート・エスケープ」ノードで、「ページ前型」プロパティを「テキスト」(ヘッダーを入力する場合)または「ファイル」(ファイルからヘッダーをインポートする場合)に設定します。

3. 「...」ボタンをクリックして、ダイアログ・ボックスにHTMLコードを入力するか、インポートするHTMLファイルを選択して、「ページ前値」プロパティを設定します。

HTML文書内の1ページにページ・ヘッダーを追加する手順は次のとおりです。

- 第4.6.10.2.3項「PL/SQLを使用したHTMLページ・ヘッダーの作成」を参照してください。

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

注意:

この手順を行うのはHTML出力の場合のみです。

HTML文書のすべてのページにページ・フッターを追加する手順は次のとおりです。

1. オブジェクト・ナビゲータで、レポートのプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。

2. 「レポート・エスケープ」ノードで、「ページ後型」プロパティを「テキスト」(フッターを入力する場合)または「ファイル」(ファイルからフッターをインポートする場合)に設定します。

3. 「...」ボタンをクリックして、ダイアログ・ボックスにHTMLコードを入力するか、インポートするHTMLファイルを選択して、「ページ後値」プロパティを設定します。

HTML文書内の1ページにページ・フッターを追加する手順は次のとおりです。

- 第4.6.10.2.4項「PL/SQLを使用したHTMLページ・フッターの作成」を参照してください。

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

注意:

この手順を行うのはHTML出力の場合のみです。

HTMLパラメータ・フォームの一番上に項目を追加するには:

1. オブジェクト・ナビゲータで、レポート名の横のプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。

2. 「レポート・エスケープ」ノードの「BEFORE FORM型」プロパティを、「テキスト」(ヘッダーを入力する場合)または「ファイル」(ファイルからヘッダーをインポートする場合)に設定します。

3. 「...」ボタンをクリックして、ダイアログ・ボックスにHTMLコードを入力するか、インポートするHTMLファイルを選択して、「BEFORE FORM値」プロパティを設定します。

関連項目

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

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

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

注意:

この手順を行うのはHTML出力の場合のみです。

HTMLパラメータ・フォームの一番下に項目を追加するには:

1. オブジェクト・ナビゲータで、レポート名の横のプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。

2. 「レポート・エスケープ」ノードで、「フォーム後型」プロパティを「テキスト」(フッターを入力する場合)または「ファイル」(ファイルからフッターをインポートする場合)に設定します。

3. 「...」ボタンをクリックして、ダイアログ・ボックスにHTMLコードを入力するか、インポートするHTMLファイルを選択して、「フォーム後値」プロパティを設定します。

関連項目

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

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

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

レポートにハイパーリンクの宛先を追加するには:

1. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードを開き、Webリンクの宛先となるオブジェクトを含むノードを開きます。

注意:

テンプレートを定義している場合は、マージンにあるオブジェクトを選択できます。本体のオブジェクトは、テンプレートをレポートに適用して初めてわかります。

2. Webリンクの宛先となるオブジェクトをダブルクリックし、プロパティ・インスペクタを表示します。

3. 「Webの設定」ノードで、「ハイパーリンクの宛先」プロパティをオブジェクトの識別子に設定します。

関連項目

第2.2.7項「ハイパーリンクの宛先について」

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

4.6.10.1.8 プロパティ・インスペクタを使用したハイパーリンクの作成

レポートにハイパーリンクを追加するには:

1. 前述の手順に従って、ハイパーリンクの宛先を作成します。これがWebリンクのターゲットになります。

2. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードを開き、Webリンクのソースとなるオブジェクトを含むノードを開きます。

注意:

テンプレートを定義している場合は、マージンにあるオブジェクトを選択できます。本体のオブジェクトは、テンプレートをレポートに適用して初めてわかります。

3. Webリンクのソースとなるオブジェクトをダブルクリックし、プロパティ・インスペクタを表示します。

4. 「Webの設定」ノードで、「ハイパーリンク」プロパティをそのリンクの宛先に設定します。
サンプルは、Oracle Reportsオンライン・ヘルプのリファレンスに関する項にあるハイパーリンク・プロパティの説明を参照してください。

注意:

PDFフォーマットによるレポート出力には、ハイパーリンクとアプリケーション・コマンドライン・リンクの両方を含めることができます。オブジェクトに「アプリケーション・コマンド・ライン」プロパティを設定した場合、このプロパティがオブジェクトに適用されます。それ以外の場合は、「ハイパーリンク」プロパティが適用されます。

5. ハイパーリンクに追加のHTML属性を適用するには、「追加のハイパーリンク属性」プロパティを設定します。

関連項目

第2.2.5項「ハイパーリンクについて」

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

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

注意:

この手順を行うのはPDF出力の場合のみです。

レポート内のオブジェクトにコマンドを関連付けるには:

1. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードを開き、コマンドを関連付けるオブジェクトを含むノードを開きます。

注意:

テンプレートを定義している場合は、マージンにあるオブジェクトを選択できます。本体のオブジェクトは、テンプレートをレポートに適用して初めてわかります。

2. コマンドを関連付けるオブジェクトをダブルクリックし、プロパティ・インスペクタを表示します。

3. 「Webの設定」ノードで、「アプリケーション・コマンドライン」プロパティをオブジェクトがクリックされたときに実行されるコマンドに設定します。

注意:

PDFフォーマットによるレポート出力には、ハイパーリンクとアプリケーション・コマンドライン・リンクの両方を含めることができます。オブジェクトに「アプリケーション・コマンド・ライン」プロパティを設定した場合、このプロパティがオブジェクトに適用されます。それ以外の場合は、「ハイパーリンク」プロパティが適用されます。

制限

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

関連項目

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

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

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

HTML文書またはPDF文書のブックマーク領域にあるブレーク列以外のオブジェクトにブックマークを作成する手順は次のとおりです。

1. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードを開き、ブックマークを関連付けるオブジェクトを含むノードを開きます(通常、この場合のオブジェクトは、レポートの関連セクションを囲む繰返し枠か枠です)。

注意:

テンプレートを定義している場合は、マージンにあるオブジェクトを選択できます。本体のオブジェクトは、テンプレートをレポートに適用して初めてわかります。

2. ブックマークを関連付けるオブジェクトをダブルクリックし、プロパティ・インスペクタを表示して次のようにプロパティを設定します。

- 「Webの設定」ノードで、「ブックマーク」プロパティを、フォーマットされたレポートのブックマーク領域に表示する文字列に設定します。

関連項目

第2.2.8項「ブックマークについて」

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

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

ページ番号付きHTMLCSSドキュメントまたはペーパーPDFドキュメントのブックマーク領域で、ブレーク列上にブックマークを作成するには:

1. ペーパー・レイアウト・ビューで、「挿入」→「ブックマーク」を選択します。

2. 「ブックマークの挿入」ダイアログ・ボックスで、目的の列をブックマーク・リストに移動します。

3. 「OK」をクリックします。

関連項目

第2.2.8項「ブックマークについて」

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

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

注意:

この手順を行うのはHTML出力の場合のみです。

ページがストリーミングされたHTML(ページ番号付き)出力に、ナビゲーション・コントロールを追加するには:

1. オブジェクト・ナビゲータで、レポート名の横のプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。

2. 「ページ・ナビゲーション・コントロール・タイプ」プロパティと「ページ・ナビゲーション・コントロール値」プロパティを設定します。

注意:

デフォルトのページ・ナビゲーション・コントロール値を変更しない場合、出力ページ間のナビゲーションの実装には、デフォルトの組込みJavaScriptが使用されます。

関連項目

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

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

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

4.6.10.2 PL/SQLの使用

この項では、PL/SQLを操作して、ペーパーベースのレポートにWebリンクを追加する際に、実行する可能性がある次のタスクの手順について説明します。

- PL/SQLを使用したHTMLドキュメント・ヘッダーの作成

- PL/SQLを使用したHTMLドキュメント・フッターの作成

- PL/SQLを使用したHTMLページ・ヘッダーの作成

- PL/SQLを使用したHTMLページ・フッターの作成

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

- PL/SQLを使用したHTMLパラメータ・フォーム・フッターの作成

- PL/SQLを使用したハイパーリンクの作成

- PL/SQLを使用したハイパーリンクの宛先の作成

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

- PL/SQLを使用したブックマークの作成

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

関連項目

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

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

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

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

4.6.10.2.1 PL/SQLを使用したHTMLドキュメント・ヘッダーの作成

注意:

この手順を行うのはHTML出力の場合のみです。Before Reportトリガーなど、レポートのフォーマットが開始される前に起動するトリガーに、レポート前値を設定する必要があります。

プロパティ・インスペクタのかわりにPL/SQLを使用して、HTMLドキュメントのヘッダー・ページに項目を追加するには:

1. オブジェクト・ナビゲータで、「レポート・トリガー」ノードを開きます。

2. Before Reportトリガーの横の「PL/SQL」アイコンをダブルクリックします。

3. PL/SQLエディタで、SRW.SET_BEFORE_REPORT_HTMLを追加して、フォーマット・トリガーのPL/SQLを定義します。(Oracle Reportsオンライン・ヘルプのリファレンスに関する項を参照)。

関連項目

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

4.6.10.2.2 PL/SQLを使用したHTMLドキュメント・フッターの作成

注意:

この手順を行うのはHTML出力の場合のみです。Before Reportトリガーなど、レポートのフォーマットが実行される前に起動するトリガーに、レポート後値を設定する必要があります。

プロパティ・インスペクタのかわりにPL/SQLを使用して、HTMLドキュメントのフッター・ページに項目を追加するには:

1. オブジェクト・ナビゲータで、「レポート・トリガー」ノードを開きます。

2. Before Reportトリガーの横の「PL/SQL」アイコンをダブルクリックします。

3. PL/SQLエディタで、SRW.SET_AFTER_REPORT_HTMLを追加して、フォーマット・トリガーのPL/SQLを定義します。

関連項目

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

4.6.10.2.3 PL/SQLを使用したHTMLページ・ヘッダーの作成

注意:

この手順を行うのはHTML出力の場合のみです。すべてのページにエスケープを適用する場合は、Before Reportトリガーなど、レポートのフォーマットが開始される前に起動するトリガーに、エスケープを設定する必要があります。1ページのみにエスケープを適用する場合は、フォーマット・トリガーにエスケープを設定します。

プロパティ・インスペクタのかわりにPL/SQLを使用して、HTML文書のすべてのページにページ・ヘッダーを追加する手順は次のとおりです。

1. オブジェクト・ナビゲータで、「レポート・トリガー」ノードを開きます。

2. Before Reportトリガーの横の「PL/SQL」アイコンをダブルクリックします。

3. PL/SQLエディタで、SRW.SET_BEFORE_PAGE_HTMLを追加して、フォーマット・トリガーのPL/SQLを定義します。

PL/SQLを使用してHTML文書の1ページにページ・ヘッダーを追加する手順は次のとおりです。

1. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードを開き、フォーマット時にトリガーを起動するオブジェクトを含むノードを開きます。

2. フォーマット時にトリガーを起動するオブジェクトの横の「PL/SQL」アイコンをダブルクリックします。

3. PL/SQLエディタで、SRW.SET_BEFORE_PAGE_HTMLを追加して、フォーマット・トリガーのPL/SQLを定義します。

関連項目

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

4.6.10.2.4 PL/SQLを使用したHTMLページ・フッターの作成

注意:

この手順を行うのはHTML出力の場合のみです。すべてのページにエスケープを適用する場合は、Before Reportトリガーなど、レポートのフォーマットが開始される前に起動するトリガーに、エスケープを設定する必要があります。1ページのみにエスケープを適用する場合は、フォーマット・トリガーにエスケープを設定します。

プロパティ・インスペクタのかわりにPL/SQLを使用して、HTML文書のすべてのページにページ・フッターを追加する手順は次のとおりです。

1. オブジェクト・ナビゲータで、「レポート・トリガー」ノードを開きます。

2. Before Reportトリガーの横のPL/SQLアイコンをダブルクリックします。

3. PL/SQLエディタで、SRW.SET_AFTER_PAGE_HTMLを追加して、フォーマット・トリガーのPL/SQLを定義します。

PL/SQLを使用してHTML文書の1ページにページ・フッターを追加する手順は次のとおりです。

1. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードを開き、フォーマット時にトリガーを起動するオブジェクトを含むノードを開きます。

2. フォーマット時にトリガーを起動するオブジェクトの横の「PL/SQL」アイコンをダブルクリックします。

3. PL/SQLエディタで、SRW.SET_AFTER_PAGE_HTMLを追加して、フォーマット・トリガーのPL/SQLを定義します。

関連項目

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

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

注意:

この手順を行うのはHTML出力の場合のみです。Before Parameter Formトリガーなど、パラメータ・フォームのフォーマットが開始される前に起動するトリガーに、フォーム前値を設定する必要があります。

プロパティ・インスペクタのかわりにPL/SQLを使用して、HTMLパラメータ・フォームの一番上に項目を追加するには:

1. オブジェクト・ナビゲータで、「レポート・トリガー」ノードを開きます。

2. Before Parameter Formトリガーの横にあるPL/SQLアイコンをダブルクリックします。

3. PL/SQLエディタで、SRW.SET_BEFORE_FORM_HTMLを追加して、フォーマット・トリガーのPL/SQLを定義します。

関連項目

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

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

4.6.10.2.6 PL/SQLを使用したHTMLパラメータ・フォーム・フッターの作成

注意:

この手順を行うのはHTML出力の場合のみです。Before Parameter Formトリガーなど、パラメータ・フォームのフォーマットが開始される前に起動するトリガーに、フォーム前値を設定する必要があります。

プロパティ・インスペクタのかわりにPL/SQLを使用して、HTMLパラメータ・フォームの一番下に項目を追加するには:

1. オブジェクト・ナビゲータで、「レポート・トリガー」ノードを開きます。

2. Before Parameter Formトリガーの横にあるPL/SQLアイコンをダブルクリックします。

3. PL/SQLエディタで、SRW.SET_AFTER_FORM_HTMLを追加して、フォーマット・トリガーのPL/SQLを定義します。

関連項目

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

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

4.6.10.2.7 PL/SQLを使用したハイパーリンクの作成

プロパティ・インスペクタのかわりにPL/SQLを使用して、レポートにハイパーリンクを追加するには:

1. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードを開き、Webリンクのソースとなるオブジェクトを含むノードを開きます。

注意:

テンプレートを定義している場合は、マージンにあるオブジェクトを選択できます。本体のオブジェクトは、テンプレートをレポートに適用して初めてわかります。

2. Webリンクのソースとなるオブジェクトの横の「PL/SQL」アイコンをダブルクリックします。

3. PL/SQLエディタで、SRW.SET_HYPERLINKを追加して、フォーマット・トリガーのPL/SQLを定義します。

4. ハイパーリンクに追加のHTML属性を適用するには、次を使用します。
SRW.SET_HYPERLINK_ATTRS

次のステップ

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

関連項目

第2.2.5項「ハイパーリンクについて」

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

4.6.10.2.8 PL/SQLを使用したハイパーリンクの宛先の作成

プロパティ・インスペクタのかわりにPL/SQLを使用して、レポートにハイパーリンクの宛先を追加するには:

1. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードを開き、Webリンクの宛先となるオブジェクトを含むノードを開きます。

注意:

テンプレートを定義している場合は、マージンにあるオブジェクトを選択できます。本体のオブジェクトは、テンプレートをレポートに適用して初めてわかります。

2. Webリンクの宛先となるオブジェクトの横の「PL/SQL」アイコンをダブルクリックします。

3. PL/SQLエディタで、SRW.SET_LINKTAGを追加して、フォーマット・トリガーのPL/SQLを定義します。

次のステップ

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

関連項目

第2.2.7項「ハイパーリンクの宛先について」

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

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

注意:

この手順を行うのはPDF出力の場合のみです。

プロパティ・インスペクタのかわりにPL/SQLを使用して、レポート内のオブジェクトにコマンドを関連付けるには:

1. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードを開き、アプリケーション・コマンドライン・リンクを関連付けるオブジェクトを含むノードを開きます。

注意:

テンプレートを定義している場合は、マージンにあるオブジェクトを選択できます。本体のオブジェクトは、テンプレートをレポートに適用して初めてわかります。

2. アプリケーション・コマンドライン・リンクを関連付けるオブジェクトの横の「PL/SQL」アイコンをダブルクリックします。

3. PL/SQLエディタで、SRW.SET_PDF_ACTIONを追加して、フォーマット・トリガーのPL/SQLを定義します。

制限

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

関連項目

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

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

4.6.10.2.10 PL/SQLを使用したブックマークの作成

PL/SQLを使用して、レポートのブックマーク領域にブックマークの文字列を追加するには:

1. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードを開き、ブックマークを関連付けるオブジェクトを含むノードを開きます(通常、この場合のオブジェクトは、レポートの関連セクションを囲む繰返し枠か枠です)。

注意:

テンプレートを定義している場合は、マージンにあるオブジェクトを選択できます。本体のオブジェクトは、テンプレートをレポートに適用して初めてわかります。

2. ブックマークを関連付けるオブジェクトの横の「PL/SQL」アイコンをダブルクリックします。

3. PL/SQLエディタで、SRW.SET_BOOKMARKを追加して、フォーマット・トリガーのPL/SQLを定義します。

関連項目

第2.2.8項「ブックマークについて」

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

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

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

注意:

この手順を行うのはHTML出力の場合のみです。

プロパティ・インスペクタのかわりにPL/SQLを使用して、ページがストリーミングされたHTML出力にナビゲーション・コントロールを追加するには:

- Before Reportトリガーで、SRW.SET_PAGE_NAVIGATION_HTML PL/SQLプロシージャを使用します。

関連項目

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

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

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

4.7 レポートの実行と出力

この項では、レポートの実行と出力の際に実行する可能性がある次のタスクの手順について説明します。

- ユーザー・インタフェースからのレポートの実行と出力

- コマンドラインからのレポートの実行

- コマンド・ファイルを使用したレポートの実行

- リモートのReports Serverでのレポートの実行

- HTMLまたはHTMLCSS出力の生成

- PDF出力の生成

- XML出力の生成

- RTF出力の生成

- テキスト出力の生成

- デリミタ付き出力の生成

- 拡張スプレッドシート出力の生成

- 複数の宛先へのレポートの配布

- レポートの配布

- 印刷方向の変更

- パラメータ・フォームの非表示

- レポート出力の表示

- レポートの印刷

- 電子メールによるレポートの送信

4.7.1 ユーザー・インタフェースからのレポートの実行と出力

Oracle Reports Builderユーザー・インタフェースからレポートを実行および出力するには:

1. オブジェクト・ナビゲータで、レポート名をクリックするか、「ファイル」→「開く」を選択してレポートを開きます。

2. データベースに接続していない場合は接続します。

3. ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックします。

4. ランタイム・パラメータ・フォームが表示された場合は、意図した出力がされるように設定を指定します。

注意:

レポートを作成する場合は、「パラメータ・フォーム・ビルダー」(「ツール」→「パラメータ・フォーム・ビルダー」を選択)を使用して、ランタイム・パラメータ・フォームに表示するシステムおよびユーザー・パラメータを選択する必要があります。

- 画面フォントを使用してペーパー・デザイン・ビューで出力をプレビューするには、「宛先タイプ」を「画面」に設定します。

- ペーパー・デザイン・ビューで、スクリーン・フォントを使用して出力をプレビューし、プリンタ・フォント・メトリックを使用してフォントのサイズを変更するには、「宛先タイプ」を「Preview」に設定します。

- ファイルに出力するには、「宛先タイプ」を「File」に、「宛先名」をパスとファイル名に、「宛先フォーマット」をレポートの出力フォーマット(ビットマップ・レポートの場合はPDF、HTML、HTMLCSS、RTF、XML、DELIMITEDなど、キャラクタ・モードのレポートの場合はキャラクタ・モードのプリンタ定義ファイル(.prtファイル)など)に設定します。

注意:

- スプレッドシート出力は、Oracle Reports Builderから直接生成できません。かわりに、コマンドラインで、rwrunおよびReports Serverクライアント(rwclient、rwservlet)を使用し、DESFORMAT=SPREADSHEETまたはDESFORMAT=ENHANCEDSPREADSHEETを指定してレポートを実行できます。

- プリンタに出力するには、「宛先タイプ」を「Printer」、「宛先名」をプリンタ・ドライバ名に設定します。

- インターネット標準プロトコルSMTPを採用している電子メール・アプリケーションを使用して、電子メールで出力を送信するには、「宛先タイプ」を「Mail」に設定し、「宛先名」は空白にしておきます。「メール」ダイアログ・ボックスで、電子メール・レポートの宛先と件名を指定します。

注意:

構成ファイルORACLE_HOME\reports\conf\rwbuilder.confでは、プラグイン・パラメータmailServerとして送信メール・サーバー名を指定する必要があります(たとえば<pluginParam name="mailServer">smtp01.mycorp.com</pluginParam>)。これは、WindowsおよびSolaris環境の両方に当てはまります。

5. ランタイム・パラメータ・フォームで、ツールバーの「レポート実行」ボタンをクリックします。

6. ダイアログ・ボックスが表示された場合は、必要な情報を入力します。

使用に関する注意

- レポートを横長にするには、レポートの印刷方向を変更する必要があります(第4.7.14項「印刷方向の変更」を参照)。ただし、指定したページ・サイズがサポートされていないプリンタでは、レポートの一部が印刷されないことがあります。キャラクタ・モードのプリンタで横長(または他のページ・サイズ)で印刷できるようにするには、プリンタ定義ファイルでプリンタのエスケープ・シーケンスを設定します。使用するエスケープ・シーケンスについては、プリンタの説明書を参照してください。

- レポート出力をMicrosoft Wordで表示する場合、レポート内のすべてのグラフィックとオブジェクトを表示するには「表示」→「ページ・レイアウト」を選択する必要があります。

関連項目

第4.11.6項「ランタイム・パラメータ・フォームに追加するパラメータの選択」

4.7.2 コマンドラインからのレポートの実行

Windowsでコマンドラインから実行ファイル(.rep)またはレポート定義ファイル(.rdf)を実行するには:

1. %ORACLE_HOME%\BIN\rwrunと入力し、続けてレポート名と必要な引数を指定します。

2. ファイルに出力した場合(DESTYPE=FILE DESNAME=filename DESFORMAT=fileformat)は、そのファイルを開くか印刷して出力内容を確認します。

関連項目

第1.12項「Oracle Reportsのコンポーネント」

Oracle Reportsオンライン・ヘルプのリファレンスに関する項のrwrunに関するトピック

第2.8.2項「バッチ・レポートについて」

4.7.3 コマンド・ファイルを使用したレポートの実行

Windowsでコマンド・ファイルを使用してレポートを実行するには:

1. ワード・プロセッサを使用してテキスト・ファイルを作成します。

2. 作成したファイルに%ORACLE_HOME%\BIN\rwrunと入力し、続けてレポート名と必要な引数を指定します。

3. filename.batという名前でファイルを保存します。

4. レポートを実行するには、コマンドラインでfilename.batと入力します。

5. ファイルに出力した場合(DESTYPE=FILE DESNAME=filename DESFORMAT=HTML)は、そのファイルを開くか印刷して出力内容を確認します。

関連項目

第2.8.2項「バッチ・レポートについて」

第1.12項「Oracle Reportsのコンポーネント」

Oracle Reportsオンライン・ヘルプのリファレンスに関する項のrwrunに関するトピック

4.7.4 リモートのReports Serverでのレポートの実行

リモートのReports Serverでレポートを実行するには:

- %ORACLE_HOME%\bin\rwclientと入力し、続けてレポート名、サーバー名および必要な引数を指定します。

詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』を参照してください。

4.7.5 HTMLまたはHTMLCSS出力の生成

外部のスタイル・シートおよびユーザー定義のスタイルをHTMLCSS出力のレポートまたはレポート・オブジェクトに適用するには、次のプロパティを設定します(プロパティの詳細は、Oracle Reportsオンライン・ヘルプのリファレンスのプロパティに関する項を参照)。

- 「スタイル・シート」プロパティ、「CSSクラス名」プロパティ、「CSS ID」プロパティ

HTMLまたはHTMLCSS出力を生成するには:

1. オブジェクト・ナビゲータでレポートを選択または開き、ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックしてレポートを実行します。

2. ペーパー・デザイン・ビューで、表示する出力範囲を次のように指定します。

- レポートの現行のページのみを表示するには、「ファイル」→「プレビュー・フォーマット」→「現行ページ」を選択します。

- すべてのページを表示するには、 「ファイル」→「プレビュー・フォーマット」→「すべてのページ」を選択します。

注意:

レポート出力のすべてのページを表示する場合、HTMLページのストリーミングが有効になっていると、Webブラウザには最初のページが表示され、そこからレポート内の他のページへ簡単に移動できます。

3. HTMLまたはHTMLCSSレポート出力をWebブラウザでプレビューするには、「ファイル」→「プレビュー・フォーマット」→「ページ番号付きHTML」または「ページ番号付きHTMLCSS」を選択します(スタイル・シート拡張を使用してフォーマットする場合)。

4. レポート出力をHTMLまたはHTMLCSSのファイル形式で保存するには、「ファイル」→「ファイルへ出力」を選択します。

関連項目

第2.8.8項「HTMLおよびHTMLCSS出力について」

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

第2.2.11項「スタイル・シートについて」

4.7.6 PDF出力の生成

PDF出力を生成するには:

1. オブジェクト・ナビゲータでレポートを選択または開き、ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックしてレポートを実行します。

2. ペーパー・デザイン・ビューで、表示する出力範囲を次のように指定します。

- レポートの現行のページのみを表示するには、「ファイル」→「プレビュー・フォーマット」→「現行ページ」を選択します。

- すべてのページを表示するには、 「ファイル」→「プレビュー・フォーマット」→「すべてのページ」を選択します。

3. PDFレポート出力をWebブラウザでプレビューするには、「ファイル」→「プレビュー・フォーマット」→「PDF」を選択します。

4. レポート出力をPDFファイルで保存するには、「ファイル」→「ファイルへ出力」→「PDF」を選択します。

関連項目

第2.8.10項「PDF出力について」

4.7.7 XML出力の生成

Oracle Reportsで生成したXMLファイルでは、その出力はデータ・モデルを擬似実行します。つまり、グループと列で構成されます。ここでは、次の操作を実行する手順について説明します。

- 現行のレポートからXML出力ファイルを生成する

- コマンドライン起動と組み合せて、XMLファイルの内容をWebブラウザでプレビューする

- レポート全体のXML出力を制御するXMLプロパティを変更する

- 列またはグループのXML出力を制御するXMLプロパティを変更する

Oracle Reports Builderで現行のレポートからXML出力ファイルを生成するには:

1. 必要に応じて、オブジェクト・ナビゲータでレポートを選択または開き、ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックしてレポートを実行します。現在は、どのレポート・スタイルもXML出力として生成できますが、マトリックス・スタイルのレポートの場合はサポートされる内容に制限があります。

2. 必要に応じて、ペーパー・デザイン・ビューで「ファイル」→「プレビュー・フォーマット」→「XML」を選択し、デフォルトのXMLビューア(Webブラウザなど)でXMLデータをプレビューします。

ヒント:

XMLをサポートするブラウザで、フォーマットをXMLとして認識して表示するには、.xmlという拡張子が必要です。

3. オブジェクト・ナビゲータでレポートをクリックし、「ファイル」→「ファイルへ出力」→「XML」を選択して、XML出力ファイルを選択したディレクトリに保存します。

XML出力ファイルをコマンドラインから生成して、そのXMLファイルの内容をWebブラウザでプレビューするには:

1. コマンドラインでレポートを実行します。引数はDESFORMAT=XML、DESTYPE=FILE、DESNAME=filename.XMLと指定します。

2. XMLをサポートしているWebブラウザを開きます。

3. 「ファイル」→「開く」を選択して、生成したXMLファイルにナビゲートします。XMLファイルがブラウザのウィンドウに表示されます。

4. XML出力に変更を加えた場合や、XMLファイルを同じ名前で再生成した場合は、ブラウザの「更新/現在のページの再読み込み」ボタンをクリックすると、更新したXML出力が表示されます。

レポート全体のXMLプロパティを変更するには:

1. オブジェクト・ナビゲータで、レポート名の横のプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。

2. 「XML設定」で、このレポートに必要なXMLプロパティを設定します。

特定の列またはグループのXMLプロパティを変更するには:

1. データ・モデル・ビューで、列またはグループのタイトル・バーをダブルクリックして、プロパティ・インスペクタを表示します。

2. 「XML設定」で、必要なXMLプロパティを設定します。

使用に関する注意

- Oracle Reports Builderでは、整形式のXML出力が作成されます。つまり、XML文書のプロローグにXML宣言は含まれますが、DTD (Document Type Definition)も含まれるとは限りません。有効なXMLを作成するには、レポートレベルで「XML Prolog値」プロパティ・フィールドにDTDを追加する必要があります。

- Oracle Reports 10gリリース2 (10.1.2)パッチ2より前のリリースで作成されたレポートでは、レポートをXML形式で保存するときに次の問題が発生する可能性があります。レポートでPL/SQLパッケージが定義されている場合、パッケージ仕様と場合によっては本文がXMLレポートに保存されません。この問題を解決するには、次の手順のいずれかを実行します。

- RDFが存在する場合は、Oracle Reports 10gリリース2 (10.1.2)パッチ2以降を使用してXML出力ファイルを再生成します。

- RDFが存在しない場合は、次の例に示すように、XMLを手動で編集してtype="packageSpec"とtype="packageBody"をfunction要素に追加します。

<programUnits>
<function name="a" type="packageSpec">
<textSource>
<![CDATA[
PACKAGE a IS
function lire return date ;
END a;
]]>
</textSource>
</function>
<function name="a" type="packageBody">
<textSource>
<![CDATA[
PACKAGE BODY a IS
function lire return date is
c2 date;
begin
c2 :=sysdate;
return c2;
end;
END;
]]>
</textSource>
</function>
<function name="cf_1formula" returnType="date">
<textSource>
<![CDATA[
function CF_1Formula return Date is
aa date;
begin
--aa :=a.lire;
end;
]]>
</textSource>
</function>
</programUnits>

- レポートにグラフが含まれる場合、グラフ情報はXMLファイルに保存されません。XMLはテキストベースの出力であり、イメージを含められません。

関連項目

第2.8.7項「レポートのXMLについて」

Oracle Reportsオンライン・ヘルプのリファレンスに関する項のOracle Reports XMLタグに関するトピック

『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「拡張配布の作成」および「XMLによるレポートのカスタマイズ」

4.7.8 RTF出力の生成

RTF出力を生成するには:

1. オブジェクト・ナビゲータでレポートを選択または開き、ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックしてレポートを実行します。

2. Microsoft Word文書で、レポート出力をプレビューするには、「ファイル」→「プレビュー・フォーマット」→「RTF」を選択します。

3. レポート出力をRTFファイルで保存するには、「ファイル」→「ファイルへ出力」→「RTF」を選択します。

4. 「保存」ダイアログ・ボックスで、ファイルの場所と名前を指定します。「保存」をクリックします。

関連項目

第2.8.11項「RTF出力について」

4.7.9 テキスト出力の生成

テキスト出力を生成するには:

1. 多くの異なるアプリケーションで読み取ることができる純粋なテキスト出力を生成するには、MODEシステム・パラメータの「初期値」プロパティを「Character」に設定します(第4.11.1項「事前定義されたシステム・パラメータの使用」を参照)。

注意:

MODEがBitmap(デフォルト)に設定されている場合、その結果はPostScript出力となり、PostScript対応のアプリケーション(PostScriptプリンタなど)でのみ、読み取ったり、レンダリングしたりできます。

2. オブジェクト・ナビゲータでレポートを選択または開き、ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックしてレポートを実行します。

3. レポート出力をテキスト・ビューアでプレビューするには、「ファイル」→「プレビュー・フォーマット」→「テキスト」を選択します。

4. レポート出力をテキスト・ファイルで保存するには、「ファイル」→「ファイルへ出力」→「テキスト」を選択します。

5. 「保存」ダイアログ・ボックスで、ファイルの場所と名前を指定します。「保存」をクリックします。

関連項目

第2.8.14項「テキスト出力について」

4.7.10 デリミタ付き出力の生成

次のいずれかの方法を使用して、デリミタ付きレポート出力を生成できます。

- Oracle Reports Builderを使用する場合

- コマンドラインを使用する場合

Oracle Reports Builderでデリミタ付き出力を生成するには:

1. オブジェクト・ナビゲータでレポートを選択または開き、ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックしてレポートを実行します。

2. スプレッドシートでデリミタ付きのレポート出力をプレビューするには、「ファイル」→「プレビュー・フォーマット」→「デリミタ付き」または「ファイル」→「プレビュー・フォーマット」→「DelimitedData」(サイズの大きいレポートの場合)を選択します。

3. デリミタ付きレポート出力をファイルに保存するには、「ファイル」→「ファイルへ出力」→「デリミタ付き」または「ファイル」→「ファイルへ出力」→「DelimitedData」(サイズの大きいレポートの場合)を選択します。

4. 「デリミタ付き出力」または「DelimitedData出力」ダイアログ・ボックスで、レポート出力でセルを区切るデリミタをリストから選択するか入力します。

5. 書式設定オプションを使用する場合は、日付書式マスクまたは数値書式マスクを、リストから選択するか入力します。

6. セルの囲みを使用する場合は、レポート出力でセル・データの周囲に配置するセルの囲みを、リストから選択するか入力します。

7. 「OK」をクリックします。

8. 「保存」ダイアログ・ボックスで、ファイルの場所と名前を指定します。「保存」をクリックします。

コマンドラインでデリミタ付き出力を生成するには:

- Reports Serverクライアント(rwclient, rwservlet)またはrwrunを使用し、DESFORMAT=DELIMITEDまたはDELIMITEDDATAを指定してレポートを実行します。

注意:

- URLを使用してレポートを実行するには、ブラウザからExcelにレポート出力を直接開けるよう、ExcelのMIMEタイプを指定します。次に例を示します。

http://hostname:port/reports/rwservlet?report=report_name
+server=server_name+userid=db_connect_string+destype=cache
+desformat=delimited+mimetype=application/vnd.ms-excel

デリミタ付き出力ファイル(.csv)は、Microsoft Excelに自動的に表示されるように開くことができます。または、既存のExcelワークシートに出力ファイルをインポートすることもできます。

使用に関する注意

- DelimitedData出力フォーマットのレポートは、配布XMLファイルまたは「配布」ダイアログ・ボックスで指定して配布できます。

制限

- デリミタ付き出力レポートを生成した場合は、レポートのデータ・モデルで定義したデータのみがMicrosoft Excelに表示され、レイアウト情報は表示されません。Excelにレイアウト情報を保持するレポート出力を生成するには、第2.8.13項「拡張スプレッドシート出力について」を参照してください。

- レポート配布では、デリミタ付き出力フォーマットはサポートされません。DELIMITEDは、配布XMLファイルや「配布」ダイアログ・ボックスで出力ファイルとしては指定できません。

- レポート一括処理では、デリミタ付き出力フォーマットまたはDelimitedData出力フォーマットはサポートされません。

関連項目

第2.8.12項「デリミタ付き出力について」

第4.9.7.1項「日付書式マスクおよび時刻書式マスクの指定」

第4.9.7.2項「数値書式マスクの指定」

4.7.11 拡張スプレッドシート出力の生成

拡張スプレッドシート出力を生成するには:

- コマンドラインで、rwrunまたはReports Serverクライアント(rwclient、rwservlet)を使用し、DESFORMAT=ENHANCEDSPREADSHEETを指定してレポートを実行します。
たとえば、rwservletを使用して、レポートのペーパー・レイアウトからMicrosoft Excel出力を生成するには、次の文字列を含むコマンドを入力します。

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

注意:

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

- 信頼性のあるフォーマットを生成するために、レイアウト領域全体を枠で囲みます。これによって、複数のオブジェクトで、あるオブジェクトが別のオブジェクトの下にあるように平行して異なる垂直位置に表示されることがなくなります。

関連項目

第2.8.13項「拡張スプレッドシート出力について」

第29章「拡張スプレッドシート出力のレポートの作成」

4.7.12 複数の宛先へのレポートの配布

レポートを配布するには、まず配布を定義し、次に配布を有効にします。

レポートの配布は、次のいずれかの方法で定義します。

- 『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「拡張配布の作成」の説明に従って、XMLを使用します。

- 「配布」ダイアログ・ボックスで、レポート全体またはレポート・セクションを配布する宛先リストを定義します。

注意:

「配布」ダイアログ・ボックスを表示するには、レポートまたはセクションのプロパティ・インスペクタで、「レポート」ノードの「配布」プロパティの値フィールドをクリックします。

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

- コマンドラインで、DESTINATIONキーワードを使用してDSTファイルまたはXMLファイルを指定します。

注意:

DSTファイルの方法は、下位互換性を維持するためにサポートされているので、XMLまたは「配布」ダイアログ・ボックスを使用してレポートを配布する方法をお薦めします。

- レポートを配布するには、次のいずれかの操作を行います。

- Oracle Reports Builderで、「ファイル」→「配布」を選択します。

- コマンドラインでDISTRIBUTE=YESと指定します。

第4.14.19項「レポートの配布のトレース」で説明しているように、レポートの配布をトレースして、配布が正常に終了したことを確認することもできます。

使用に関する注意

- XMLやDELIMITEDDATAなどのデータドリブン形式とPDFやENHANCEDSPREADSHEETなどのレイアウトドリブン形式での一括処理および配布を、同じレポート定義ファイルを使用して行うには、次の要件を満たしている必要があります。

- 配布XMLファイルでinclude要素が指定されていること。次に例を示します。

&lt;include src="mainSection"/&gt;

- 配布XMLファイルで指定されたセクションに対して「繰返し」プロパティが適切に設定されていること。

- レポート・ペーパー・レイアウトの配布XMLファイルで指定されたセクションが空でないこと。

- Microsoft Internet Explorerでは、URLのリターン・ストリームのMIMEタイプが無視され、かわりに、URLに含まれているタイプが設定される場合があります。その結果、URLがDESTINATIONキーワードで終わることがあるため、レポートの配布を定義する際に問題となる可能性があります。次に例を示します。

...DISTRIBUTE=yes
DESTINATION=c:\oracle\reports\distribution\mydist.xml

この例では、URLが拡張子xmlで終わっているため、Internet Explorerは、リターン・ストリームが実際にはHTMLであるにもかかわらず、このストリームをXMLとして処理します。その結果、ブラウザ・エラーが発生します。この問題を回避するには、URLの末尾に認識可能なファイル拡張子を使用しないようにします。上の例の場合は、URLのDISTRIBUTEキーワードとDESTINATIONキーワードの位置を入れ替えることができます。

関連項目

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

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

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

4.7.13 レポートの配布

エンド・ユーザーが表示できるようにレポートを配布するには、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「レポート・リクエストの実行」でレポートの配布に関する項を参照してください。この項では、ペーパー・レイアウトのレポート(REP、RDF、XML、スプレッドシートまたはJSPレポート)およびWebレイアウトのレポート(JSPレポート)を配布する方法について説明しています。

4.7.14 印刷方向の変更

レポート・セクションの印刷方向(縦または横)を変更するには、出力フォーマットに応じて次のいずれかの手順を実行します。

- プリンタ出力(DESTYPE=PRINTER)またはRTF出力(DESFORMAT=RTF)

- PDF出力

プリンタ出力(DESTYPE=PRINTER)またはRTF出力(DESFORMAT=RTF)

レポート出力の印刷方向は、次の優先順位に従って決まります。

1. ORIENTATION コマンドライン・キーワード

2. ORIENTATIONシステム・パラメータ

3. 関係するレポート・セクション(ヘッダー、メインまたはトレーラ)の「方向」プロパティ: 「Portrait」または「Landscape」

4. (「方向」プロパティが「Default」に設定されている場合)関係するレポート・セクションの「幅」プロパティと「高さ」プロパティ

- 「幅」が「高さ」よりも大きい場合(たとえば11×8.5)、方向は「横」になります。

- 「高さ」が「幅」よりも大きい場合(たとえば8.5×11)、方向は「縦」になります。

レポート出力の方向を設定するには、次のいずれかの操作を行います。

- コマンドラインで、ORIENTATIONコマンドライン・キーワードを指定します。この指定は、ORIENTATIONシステム・パラメータ、「方向」プロパティおよび「幅」プロパティと「高さ」プロパティよりも優先されます。ORIENTATIONコマンドライン・キーワードの詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』のコマンドライン・キーワードに関する付録を参照してください。

- ORIENTATIONシステム・パラメータを指定します。これにより、「印刷方向」プロパティ、「幅」および「高さ」プロパティの設定が上書きされます。ORIENTATIONシステム・パラメータを指定して、実行時にエンド・ユーザーが印刷方向を変更できるようにしてください。

- 「ツール」→「パラメータ・フォーム・ビルダー」を選択して、「パラメータ・フォーム・ビルダー」を表示します。

- ORIENTATIONシステム・パラメータをクリックします。

- 「OK」をクリックして、ペーパー・パラメータ・フォーム・ビューを表示します。

- 「方向」値フィールド(PF_ORIENTATION)をダブルクリックして、プロパティ・インスペクタを開きます。

- 「パラメータ」ノードで、「初期値」プロパティを「Portrait」または「Landscape」に設定します。

- ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックします。

- 「方向」リストで、必要に応じて印刷方向を変更します。

- 「方向」プロパティまたは「幅」プロパティと「高さ」プロパティ、あるいはその両方を設定します。

- オブジェクト・ナビゲータの「ペーパー・レイアウト」ノードで、該当するレポート・セクション(ヘッダー、メイン、トレーラ)のプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します(デフォルトでは、レポートはメイン・セクションで定義されます)。

- プロパティ・インスペクタの「セクション」ノードで、「方向」プロパティを目的の値に設定します。「Portrait」または「Landscape」に設定すると、この値が「幅」プロパティおよび「高さ」プロパティよりも優先されます。「default」に設定した場合、方向は「幅」プロパティと「高さ」プロパティに基づいて決定されます(幅が高さよりも大きい場合は横、高さが幅よりも大きい場合は縦)。

PDF出力

PDF出力の場合は、ORIENTATIONコマンドライン・キーワード、ORIENTATIONシステム・パラメータおよび「方向」プロパティで指定された値は無視されます。PDF出力の方向は、「幅」プロパティと「高さ」プロパティの値のみに基づいて決定されます。

1. オブジェクト・ナビゲータの「ペーパー・レイアウト」ノードで、該当するレポート・セクション(ヘッダー、メイン、トレーラ)のプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します(デフォルトでは、レポートはメイン・セクションで定義されます)。

2. プロパティ・インスペクタの「セクション」ノードで、「幅」プロパティおよび「高さ」プロパティを必要に応じて設定します(横向きで幅11(または15)×高さ8.5または縦向きで幅8.5×高さ11(または15)など)。必ずマージンの大きさを差し引きます(8.5×11のページで上下左右のマージンが0.25の場合、「幅」を8、「高さ」を10.5に設定します)。

関連項目

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

4.7.15 パラメータ・フォームの非表示

別の製品からレポートを実行する場合、パラメータ・フォームを非表示にすることもできます。

パラメータ・フォームを非表示にして、レポートのデフォルト値にDESTYPEを割り当てるには、次のいずれかの操作を行います。

- リスト・パラメータを作成して、DESTYPEとPARAMFORMの値を明示的に受け渡します。

- 「プリファレンス」ダイアログ・ボックス(「編集」→「プリファレンス」)の「ランタイム設定」ページで、「パラメータ・フォーム」チェック・ボックスの選択を解除します。PARAMFORMに「いいえ」の値を指定します。

関連項目

第1.6.5項「ペーパー・パラメータ・フォーム・ビューについて」

第1.11.1項「ランタイム・パラメータ・フォームについて」

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

4.7.16 レポート出力の表示

この項では、次のようなレポート出力の各種表示方法について、その手順を説明します。

- 印刷可能領域の表示

- ペーパー・デザイン・ビューでのレポート出力の表示

- プレビューアでのレポート出力の表示

- Webブラウザでのレポート出力の表示

- HTMLレポート出力の各ページの表示

- スクロールとページング

- 表示領域の分割

- 出力の拡大または縮小

4.7.16.1 印刷可能領域の表示

印刷可能領域とは、使用するプリンタで実際のページに印刷できる物理的な領域のことです。通常、ほとんどのプリンタではページの端までは印刷できず、「印刷不可能な」領域が空白として残ります。

レポートの印刷可能領域を表示するには:

1. 「ファイル」→「ページ設定」を選択して、ページ設定を指定します。

2. ペーパー・レイアウト・ビューで、ツールバーの「マージン編集」ボタンをクリックします。
印刷可能領域が、マージン領域内に点線で囲まれて表示されます。

3. 縮小するには、「表示」→「ズーム」→「ズームアウト」を選択します。

4.7.16.2 ペーパー・デザイン・ビューでのレポート出力の表示

ペーパー・デザイン・ビューは、レポートを実行するたびに表示されます。

オブジェクト・ナビゲータやエディタでレポートを実行するには:

- 「ペーパー・レイアウトを実行」ボタンをクリックするか、「プログラム」→「ペーパー・レイアウトを実行」を選択します。

レポート・ウィザードでレポートを実行するには:

- 「終了」をクリックします。

ペーパー・デザイン・ビューは、次の方法で表示することもできます。

- ツールバーの「ペーパー・デザイン・ビュー」ボタンをクリックします。

- 「表示」→「表示を変更」→「ペーパー・デザイン」を選択します。

- オブジェクト・ナビゲータで、「ペーパー・デザイン」ノードの横にあるビュー・アイコンをダブルクリックします。

ペーパー・デザイン・ビューでは、出力を好きなように操作し、次の機能を使用します。

- スクロールとページング(第4.7.16.6項「スクロールとページング」を参照)

- 左右上下の分割(第4.7.16.7項「表示領域の分割」を参照)

- 出力の拡大または縮小(第4.7.16.8項「出力の拡大または縮小」を参照)

関連項目

第4.7.17.1項「ペーパー・デザイン・ビューまたはペーパー・レイアウト・ビューでのレポートの印刷」

4.7.16.3 プレビューアでのレポート出力の表示

プレビューアでレポート出力を表示するには:

1. ペーパー・デザイン・ビューで、「ファイル」→「印刷プレビュー」を選択します。

2. プレビューアでは、次の機能を使用します。

- スクロールとページング(第4.7.16.6項「スクロールとページング」を参照)

- 左右上下の分割(第4.7.16.7項「表示領域の分割」を参照)

- 出力の拡大または縮小(第4.7.16.8項「出力の拡大または縮小」を参照)

関連項目

第1.11.2項「プレビューアについて」

第4.7.17.2項「プレビューアでのレポートの印刷」

4.7.16.4 Webブラウザでのレポート出力の表示

Webブラウザでレポート出力を表示するには:

1. オブジェクト・ナビゲータでレポートを選択または開き、ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックしてレポートを実行します。

2. ペーパー・デザイン・ビューで、表示する出力範囲を次のように指定します。

- レポートの現行のページのみを表示するには、「ファイル」→「プレビュー・フォーマット」→「現行ページ」を選択します。

- すべてのページを表示するには、 「ファイル」→「プレビュー・フォーマット」→「すべてのページ」を選択します。

注意:

レポート出力のすべてのページを表示する場合、HTMLページのストリーミングが有効になっていると、Webブラウザには最初のページが表示され、そこからレポート内の他のページへ簡単に移動できます。

3. レポート出力をWebブラウザでプレビューするには、「ファイル」→「プレビュー・フォーマット」→「ページ番号付きHTML」、「ファイル」→「プレビュー・フォーマット」→「ページ番号付きHTMLCSS」(スタイル・シート拡張を使用してフォーマットする場合)、「ファイル」→「プレビュー・フォーマット」→「PDF」または「ファイル」→「プレビュー・フォーマット」→「XML」(デフォルトのXMLビューアとしてXMLをサポートするブラウザが設定されている場合)を選択します。

4. Webレイアウトが指定されたレポート出力をWebブラウザでプレビューするには、「プログラム」→「Webレイアウトを実行」を選択してWebソースを実行します。Webソース・ビュー(JSPベースのWebレポートの場合)を変更すると、変更がレポートの出力にどのように影響するかをすぐに確認できます。

注意:

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

5. レポート出力をHTML、HTMLCSS、PDFまたはXMLのファイル形式で保存するには、「ファイル」→「ファイルへ出力」を選択します。

関連項目

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

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

第2.2.11項「スタイル・シートについて」

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

4.7.16.5 HTMLレポート出力の各ページの表示

HTML出力にレポート用のページ番号を付けるには:

1. 次のいずれかの方法で、ページがストリーミングされたHTML出力に、ナビゲーション・コントロールを指定します。

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

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

2. コマンドラインでPAGESTREAM=YESと指定してレポートを実行し、HTMLページ・ストリーミングを有効にします。

関連項目

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

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

4.7.16.6 スクロールとページング

スクロール・バーとページング・ボタンを使用してレポートのページを移動するには:

- マウスのカーソルを使用して上下と左右のスクロール・バーをドラッグし、現行のページ内を移動します。

- ツールバーの「第1ページ」、「前のページ」、「次のページ」および「最終ページ」の各ボタンをクリックして、レポートの該当するページを表示します。

- 特定のページを表示するには、「ページ」フィールドにページ番号を入力します。

4.7.16.7 表示領域の分割

表示を上下または左右に分割してレポートのビューを2つ作成するには:

- データ・モデル・ビュー、ペーパー・レイアウト・ビュー、ペーパー・デザイン・ビューまたはペーパー・パラメータ・フォーム・ビューで、垂直スクロール・バーの下(水平に分割する場合)または水平スクロール・バーの右側(垂直に分割する場合)にある黒いバーをドラッグします。

- プレビューアで、垂直スクロール・バーの上(水平に分割する場合)または水平スクロール・バーの 左側(垂直に分割する場合)にあるグレーのバーをドラッグします。

それぞれのビュー内でスクロールおよびページングをするとそのビューの内部を移動できますが、他のビューは変更されません。

4.7.16.8 出力の拡大または縮小

レポートのよく見えない部分を拡大するには:

- データ・モデル・ビュー、ペーパー・レイアウト・ビュー、ペーパー・デザイン・ビューまたはペーパー・パラメータ・フォーム・ビューで、ツール・パレットの「拡大」ツールをクリックします(または「表示」→「ズーム」→「ズームイン」を選択します)。

- プレビューアで、ツールバーの「拡大」ボタンをクリックします。

イメージを縮小して、レポート全体のレイアウトを表示するには:

- データ・モデル・ビュー、ペーパー・レイアウト・ビュー、ペーパー・デザイン・ビューまたはペーパー・パラメータ・フォーム・ビューで、「表示」→「ズーム」→「ズームアウト」または「標準サイズ」を選択します。

- プレビューアで、ツールバーの「縮小」ボタンをクリックします。

4.7.17 レポートの印刷

この項では、レポート印刷の際に実行する可能性がある次のタスクの手順について説明します。

- ペーパー・デザイン・ビューまたはペーパー・レイアウト・ビューでのレポートの印刷

- プレビューアでのレポートの印刷

- Webブラウザでのレポートの印刷

- 印刷済フォームでのレポートの印刷

- プリンタ・トレーの切替え

- UNIXでのレポートの印刷

Reports Builderからレポートを印刷する前に、次の操作を実行します。

- 有効なプリンタを構成し、次の場所にあるuiprint.txtファイルにプリンタの値を入力します。
INSTANCE_HOME/config/FRComponent/frcommon/guicommon/tk/admin/uiprint.txt

または

- Reports Builderのメニューから「編集」→「プリファレンス」に進みます。「ランタイム値」タブを選択します。
「宛先タイプ」ドロップダウン・リストから「プリンタ」を選択し、プリンタ名の有効な値を入力して、「OK」をクリックします。

詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の印刷環境の構成に関する項を参照してください。

4.7.17.1 ペーパー・デザイン・ビューまたはペーパー・レイアウト・ビューでのレポートの印刷

ペーパー・デザイン・ビューまたはペーパー・レイアウト・ビューでレポートを印刷するには:

1. ペーパー・デザイン・ビューまたはペーパー・レイアウト・ビューで、「ファイル」→「印刷」を選択します。

2. 「印刷」ダイアログ・ボックスで、印刷するページ番号と部数を入力します。

3. 「OK」をクリックします。

関連項目

第4.7.16.2項「ペーパー・デザイン・ビューでのレポート出力の表示」

4.7.17.2 プレビューアでのレポートの印刷

プレビューアでレポートを印刷するには:

1. プレビューアで、ツールバーの「ページ設定」ボタンをクリックしてプリンタの設定を確認します。

2. ツールバーの「印刷」ボタンをクリックします。

3. 「印刷」ダイアログ・ボックスで、印刷するページ番号と部数を指定します。
レポートの「宛先タイプ」に(システム・パラメータDESTYPEを使用して)「画面」が指定されている場合、印刷前に「宛先タイプ」を「プレビュー」にしてレポートを実行する必要があることを示す警告が表示されます。「Preview」によってPostScriptの出力が作成されます。ビットマップ式レポートの印刷には、一般にこちらの方が適しています。

4. 「OK」をクリックします。

関連項目

第4.7.16.3項「プレビューアでのレポート出力の表示」

4.7.17.3 Webブラウザでのレポートの印刷

注意:

HTML文書をスタイル・シート拡張によってフォーマットすると、レポートと同じようにページが区切られます。スタイル・シート拡張を使用せずにフォーマットすると、レポートのページが区切られないHTML出力が生成されます。

Webブラウザでレポートを印刷するには:

1. HTMLスタイル・シートの拡張書式付きでレポートをフォーマットする場合(HTMLCSS)は、レポートと同じページ区切りでHTMLドキュメントを印刷するようにブラウザを設定します。

- ブラウザで、「ファイル」→「ページ設定」を選択し、マージンの設定を必要に応じて変更します。

- オブジェクト・ナビゲータの「ペーパー・レイアウト」ノードで、「ヘッダー・セクション」、「メイン・セクション」または「トレーラ・セクション」のうち、該当するセクション(ヘッダー、メイン、トレーラ)のプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します(デフォルトでは、レポートはメイン・セクションで定義されます)。

- プロパティ・インスペクタの「セクション」ノードで、「幅」プロパティおよび「高さ」プロパティを必要に応じて設定します(横向きで幅11(または15)×高さ8.5または縦向きで幅8.5×高さ11(または15)など)。必ずマージンの大きさを差し引きます(8.5×11のページで上下左右のマージンが0.25の場合、「幅」を8、「高さ」を10.5に設定します)。

2. Webブラウザにレポート出力を表示します(第4.7.16.4項「Webブラウザでのレポート出力の表示」を参照)。

3. 「ファイル」→「印刷」を選択します。

関連項目

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

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

第2.2.11項「スタイル・シートについて」

4.7.17.4 印刷済フォームでのレポートの印刷

第32章「印刷済フォームを使用したレポートの作成」のサンプル・レポートを参照してください。

4.7.17.5 プリンタ・トレーの切替え

プリンタ・トレーを切り替えるには:

1. 「ファイル」→「ページ設定」を選択し、「ソース」リストで、プリンタに定義されているプリンタ・トレイの名前を確認します。

2. SRW.SET_PRINTER_TRAYを使用して、目的のトリガーを定義します。

- レポートのフォーマットが開始される前にプリンタ・トレーを変更するには、Before Reportトリガーを作成します(第4.13.3.5項「レポート・トリガーの作成」を参照)。

注意:

「ページ設定」ダイアログ・ボックスで指定したプリンタ・トレーはデフォルトのプリンタ・トレーとして使用され、Before Reportトリガーはこのデフォルトを変更するために作成します。

- レポートのページによってプリンタ・トレーを変更するには、Between Pagesトリガーを作成します(第4.13.3.5項「レポート・トリガーの作成」を参照)。

- 特定のオブジェクトが印刷される特定のページで使用するプリンタ・トレーを変更するには、そのオブジェクトに対してフォーマット・トリガーを作成します(第4.13.4.1項「フォーマット・トリガーの作成または編集」を参照)。

関連項目

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

4.7.17.6 UNIXでのレポートの印刷

UNIXで印刷を行うには、適切な印刷環境を作成するための設定および構成が必要です。UNIXでのレポート印刷の詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「UNIXでのOracle Reportsによる印刷」を参照してください。

Oracle Reports 10g (9.0.4)では、UNIXでのレポートの印刷に関して、次の機能拡張が行われています。

- REPORTS_DEFAULT_DISPLAY環境変数。DISPLAY環境変数に対する依存性が排除されています。以前のOracle Reportsのリリースでは、UNIXでレポートを実行し、印刷するためには、DISPLAY環境変数を設定する必要がありました。

- PostScriptプリンタ・ドライバのscreenprinter.ppd。Reports Runtime (UNIXのみ)に対する有効なプリンタの定義(PRINTERおよびTK_PRINTER環境変数の有効なプリンタの設定、またはuiprint.txtの有効なエントリ)に対する依存性が排除されています。このドライバは、イメージの画面解像度を決定し、フォント情報を指定します。前のリリースのOracle Reportsでは、UNIXでレポートを実行および出力するために、プリンタによるフォントの解決が必要でした。
このドライバは、uiscreenprint.txtの最初のエントリです。このファイルは、次の場所にあります(UNIXのみ)。

uiscreenprint.txt: $ORACLE_INSTANCE/config/FRCommon/frcommon/guicommon/tk/admin
screenprinter.ppd:
$ORACLE_INSTANCE/config/FRCommon/frcommon/guicommon/tk/admin/PPD

制限

- レポートにOracle Graphics 6i Graphが含まれている場合、プリンタはそのグラフを生成する必要があります。しかし、g90runm.shにTK_PRINT_STATUS=echoが設定されています。このため、有効なプリンタを使用せずにOracle Graphics 6i Graphを含むレポートを実行するには、PRINTER環境変数を任意の値に設定します。

注意:

Oracle Graphics 6i (Graphics Builder)は廃止されました。かわりにグラフ・ウィザードを使用します。このウィザードでは、JSPタグに自動的に変換されるグラフが生成されるため、Webレポートにグラフを追加できます(詳細は、Oracle Reportsオンライン・ヘルプのOracle Reports 11gでのOracle Graphics 6iグラフの表示に関するトピックを参照してください)。

4.7.18 電子メールによるレポートの送信

Oracle Reports Builderからレポートを電子メールで送信するには:

1. インターネットの標準プロトコルSMTPを採用しているメール・アプリケーションにログインします。

2. レポートを選択または開きます。

3. データベースに接続していない場合は接続します。

4. 「ファイル」→「メール」を選択します。

5. 「メール」ダイアログ・ボックスで、電子メール・レポートの宛先と件名を指定します。

6. 「OK」をクリックします。

バッチ・モードでレポートを電子メール送信するには:

1. インターネットの標準プロトコルSMTPを採用しているメール・アプリケーションにログインします。

2. コマンドラインでDESTYPE=MAILおよびDESNAME=recipient1, recipient2, recipient3, ....と指定して、レポートを実行します。

使用に関する注意

構成ファイル$ORACLE_INSTANCE\config\ReportsToolsComponent\
ReportsTools\rwbuilder.confでは、プラグイン・パラメータmailServerの値を指定する必要があります。次に例を示します。

<pluginParam name="mailServer" value="stbeehive.oracle.com">
<property name="enableSSL" value="yes"/>
</pluginParam>

この値は送信メール・サーバー名です。これは、WindowsおよびSolaris環境の両方に当てはまります。

4.8 データ・モデルの操作

この項では、レポートのデータ・モデルを操作する際に実行する可能性がある次のタスクの手順について説明します。

- 問合せの作成

- 問合せの変更

- クエリー・ビルダーの使用

- データベースからのHTMLタグの選択

- データベースからのイメージの選択

- データベースからのイメージURLの選択

- ブレーク・グループの作成

- マトリックス(クロス積)グループの作成

- データ・リンクの作成

- 式列の作成または編集

- サマリー列の作成

- プレースホルダ列の作成または編集

4.8.1 問合せの作成

問合せの作成には次のツールを使用できます。

- レポート・ウィザード(単一問合せレポートのみ)

- データ・ウィザード

- SQL問合せツール(Oracleのリレーショナル・データベースからデータを選択する問合せを作成する場合)

- XML Queryツール(DTDファイルがある状態でXMLデータ・ファイルにアクセスする場合)

- JDBC Queryツール(JDBCを使用できるデータ・ソースにアクセスする場合)

- Text Queryツール(テキスト・プラガブルなデータ・ソースからデータを選択する問合せを作成する場合)

- REFカーソル問合せツール(REFカーソルを使用する場合)

関連項目

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

第1.7.3項「データベース列について」

4.8.1.1 問合せの作成: レポート・ウィザード

レポート・ウィザードを使用して問合せを作成するには:

- レポート・ウィザードの「データ」ページで、以前に選択した型のデータ・ソースを検索対象とする問合せ文を入力します。たとえば、「SQL問合せ」のデータ・ソースを選択した場合、次のいずれかの方法でSQL問合せを入力できます。

- 「データ・ソース定義」フィールドにSELECT文を入力します。

- SQLの知識がなく、グラフィカルに問合せを作成するには、「クエリー・ビルダー」をクリックします。

- 他の人が作成した問合せを使用する場合、またはテキスト・エディタを使用する場合は、「問合せをインポート」をクリックします。

4.8.1.2 問合せの作成: データ・ウィザード

データ・ウィザードを使用して問合せを作成するには:

1. データ・モデル・ビューで、「挿入」→「問合せ」を選択してデータ・ウィザードを表示します。

2. ウィザードの指示に従って、データ・モデルに対する最初の問合せを作成します。

3. 作成する問合せごとに手順1と2を繰り返します。

4. 作成されたデータ・モデルをデータ・モデル・ビューで変更します。

5. データ・ウィザードを再実行するには、次のいずれかの操作を行います。

- 右クリックして「データ・ウィザード」を選択します。

- グラフをクリックし、「編集」→「設定」を選択します。

注意:

データ・ウィザードでは、問合せ間のリンクを作成することはできません。問合せに親子リレーションシップを定義するには、データ・リンクを手動で作成します。

4.8.1.3 問合せの作成: SQL問合せツール

SQL問合せを作成するには:

1. データ・モデル・ビューで、ツール・パレットの「SQL問合せ」ツールをクリックし、データ・モデル・ビューの空いている場所をクリックして、「SQL問合せ文」ダイアログ・ボックスを表示します。

2. 「SQL問合せ文」フィールドで、問合せのSELECT文を次のいずれかの方法で定義します。

- SQLの知識なしでもグラフィカルな方法で簡単に問合せを作成できるようにクエリー・ビルダーを使用するには、「クエリー・ビルダー」をクリックします。

- ファイルから問合せをインポートするには、「問合せをインポート」をクリックします。

- 独自にSELECT文を入力するには、「SQL問合せ文」フィールドに入力します。

ヒント:

レポート出力に表示する順番で列を選択します。

3. 「OK」をクリックします。

4. 次のいずれかの方法で、問合せの内容を調整します。

- 問合せオブジェクトを右クリックして「プロパティ・インスペクタ」を選択し、目的のプロパティを設定します。

- 問合せオブジェクトを右クリックして「データ・ウィザード」を選択し、表示するフィールド、グループ・フィールドおよび合計を指定します。

5. 作成する問合せごとに手順1から5を繰り返します。

注意:

レポートのデータ・モデル・ビューで複数の問合せを定義すると、レポート・ウィザードを起動してレイアウトをデフォルトに戻しても「データ」ページは表示されません。

4.8.1.4 問合せの作成: XML Queryツール

XML問合せを作成するには:

1. データ・モデル・ビューで、ツール・パレットの「XML Query」ツールをクリックします。

2. ウィンドウのメイン領域(キャンバス領域)をクリックします。

3. 「XML問合せの定義」ダイアログ・ボックスで、選択されているdata definition file (DTD)に定義されているフィールドに基づいて、XML問合せを定義します。問合せはXMLデータ・ファイルのデータに対して実行されます。XSLファイルを指定している場合、問合せを実行する前にXMLデータ・ファイルが変換されます。

4. 「OK」をクリックします。

4.8.1.5 問合せの作成: JDBC Queryツール

JDBC問合せを作成するには:

1. データ・モデル・ビューで、ツール・パレットの「JDBC Query」ツールをクリックします。

2. ウィンドウのメイン領域(キャンバス領域)をクリックします。

3. 「JDBC Query」ダイアログ・ボックスで、JDBC問合せまたはプロシージャと、データ・ソースへの接続パラメータを定義します。操作方法がわからない場合には「ヘルプ」をクリックしてください。

4. 「OK」をクリックします。

4.8.1.6 問合せの作成: Text Queryツール

テキスト問合せを作成するには:

1. データ・モデル・ビューで、ツール・パレットの「Text Query」ツールをクリックします。

2. ウィンドウのメイン領域(キャンバス領域)をクリックします。

3. 「テキスト問合せの定義」ダイアログ・ボックスで、テキスト問合せのデータ定義とデータ・ソースを指定します。操作方法がわからない場合には「ヘルプ」をクリックしてください。

4. 「OK」をクリックします。

4.8.1.7 問合せの作成: REFカーソル問合せツール

REFカーソル問合せを作成するには:

1. 次のいずれかの方法で、REFカーソルの型を定義するパッケージを作成します。

- ローカル・プログラム・ユニットを作成します(第4.13.3.1項「ローカル・プログラム・ユニットの作成」を参照)。

- 外部PL/SQLライブラリを作成します(第4.13.5.1項「外部PL/SQLライブラリの作成」を参照)。

- ストアド・プログラム・ユニットを作成します(第4.13.3.2項「ストアド・プログラム・ユニットの作成」を参照)。

2. 手順1で作成したパッケージが外部PL/SQLライブラリの場合は、参照する前にレポートに連結しておく必要があります。

3. データ・モデル・ビューで、ツール・パレットの「REFカーソル問合せ」ツールをクリックします。

4. ウィンドウのメイン領域(キャンバス領域)をクリックします。

5. PL/SQLエディタで、カーソルを開いてパッケージ内で定義したREFカーソル型のカーソル変数を返すファンクションのPL/SQLを入力します。次に例を示します。

empCur rcPackage.empCurType;

BEGIN
OPEN empCur FOR SELECT * FROM emp;
RETURN empCur;
END;

/* Note, rcPackage is a local program unit defined as: */
PACKAGE rcPackage IS
TYPE empCurType IS REF CURSOR RETURN emp%ROWTYPE;
END;

注意:

Oracle Reportsでは、静的と動的の両方のREFカーソルがサポートされています。詳細は、第2.6.10項「REFカーソル問合せについて」を参照してください。

6. 必要に応じて問合せの内容を調整します。

- REFカーソル問合せオブジェクトをクリックし、「ツール」→「プロパティ・インスペクタ」を選択してプロパティを変更します。

- 問合せオブジェクトをクリックし、「ツール」→「データ・ウィザード」を選択して、表示するフィールド、グループ・フィールドおよび合計する項目を指定します。

7. 作成するREFカーソル問合せごとに、ステップ1から6を繰り返します。

関連項目

第2.6.10項「REFカーソル問合せについて」

4.8.2 問合せの変更

SQL問合せ文、またはレポートに表示される列を変更するには:

1. データ・モデル・ビューで問合せオブジェクトをクリックし、右クリックして「データ・ウィザード」を選択します。

2. SELECT文を変更するには「データ」タブをクリックします。

3. ブレーク・グループを変更するには「グループ」タブをクリックします。

4. 合計を表示するサマリー列を追加または変更するには「合計」タブをクリックします。

5. レポートに表示するデータベース列の選択を変更するには、「ツール」→「レポート・ウィザード」を選択し、「フィールド」タブをクリックします。

問合せのプロパティを変更するには:

1. データ・モデル・ビューで問合せオブジェクトをクリックし、右クリックして「プロパティ・インスペクタ」を選択します。

2. プロパティ・インスペクタで、必要に応じてプロパティを変更します。

4.8.3 クエリー・ビルダーの使用

クエリー・ビルダーでは、SQL SELECT文を使用すると、作成する問合せのほとんどを定義できます。クエリー・ビルダーでは、作業領域に表示された列に基づいて、適切なSELECT FROM [table.column]句が自動的に生成されます。

クエリー・ビルダーの使用方法は、Oracle Reportsオンライン・ヘルプの使用方法に関する項を参照してください。

関連項目

第1.7.5項「クエリー・ビルダーについて」

4.8.4 データベースからのHTMLタグの選択

注意:

この手順は、ペーパーベースのレポートに適用されます。

データベースからHTMLタグを選択するには:

1. 問合せを作成し、HTMLタグを含む列かHTMLタグを含むファイルの名前をSELECT文で選択します。

2. データ・モデル・ビューで、HTMLタグの列をダブルクリックして、プロパティ・インスペクタを表示します。

3. HTMLタグそのものではなく、HTMLタグを含むファイルの名前が列に含まれている場合は、次の操作を行います。

- 「列」ノードで、「ファイルからの読取り」プロパティを「はい」に設定します。

- 「ファイル形式」プロパティを「テキスト」に設定します。

4. ペーパー・レイアウト・ビューで、列を参照するフィールド・オブジェクトを作成します。

5. フィールド・オブジェクトをダブルクリックして、プロパティ・インスペクタを表示します。

6. プロパティ・インスペクタの「Webの設定」ノードで、「HTMLタグを含む」プロパティを「はい」に設定します。

使用に関する注意

テキスト・オブジェクトの「HTMLタグを含む」プロパティが「はい」に設定されていると、HTMLタグと属性がレポート出力に次のようにフォーマットされます。

- レポートがHTML出力またはHTMLCSS出力で生成される場合、その出力のHTMLタグと属性がすべて解析およびフォーマットされます。

- レポートが他のビットマップ出力フォーマット(PDF、RTF、PostScriptなど)で生成される場合は、第2.8.9項「HTMLフォーマットについて」で説明しているように、固定のHTMLタグと属性のセットが解釈されて、その出力にフォーマットされます。サポートされているタグと属性のセットにないHTMLは解釈されずに、レポート出力にそのまま表示されます。

4.8.5 データベースからのイメージの選択

注意:

これらの手順および第4.9.8.1.2項「イメージ・オブジェクトのファイルへのリンク」(ペーパーベースのレポートのみ)に示す手順を使用すると、JPEG (Progressive JPEGやExif JPEGなどのすべてのタイプ)、PNG、BMP、TIFF、GIF、CGMなど、Oracle Reportsでサポートされる様々なフォーマットのイメージを含めることができます。ペーパーベースのレポートでは、「挿入」→「イメージ」を使用して、TIFF、JFIF、BMP、TGA、PCX、PICT、GIF、CALS、RAS、OIFまたはPCDのフォーマットで、ファイル内のイメージをイメージ用のレポート・レイアウトにインポートすることもできます(第4.9.8.1.1項「イメージのインポート」を参照)。

データベースからイメージを選択するには:

1. イメージまたはイメージ・オブジェクトのファイル名を含む列を選択する問合せを作成します。

2. データ・モデル・ビューで、イメージの列をダブルクリックして、プロパティ・インスペクタを表示します。

3. 列の内容がイメージそのものではなく、イメージ・オブジェクトのファイル名である場合は、次の操作を行います。

- 「列」ノードで、「ファイルからの読取り」プロパティを「はい」に設定します。

4. 列にイメージが含まれている場合も、列にイメージ・オブジェクトのファイル名が含まれている場合も、「列」ノードの「ファイル形式」プロパティを「イメージ」に設定します。

5. JSPベースのWebレポートを作成している場合、次のように、containsHtml属性を、列の<rw:field> JSPタグに追加することも必要になります。

- レポートのWebソース・ビューを表示します。

- 列のrw:fieldタグ(<rw:field ... src="column_name" ...>)を検索します。

- containsHtml=yes属性を追加して、イメージがフィールドの値に含まれるように指定します。
次に例を示します。

<rw:field id="F_MYIMAGE" src="MYIMAGE" nullValue="&nbsp;" containsHtml="yes">

6. Webレイアウトが指定されたレポート出力をWebブラウザでプレビューするには、「プログラム」→「Webレイアウトを実行」を選択してWebソースを実行します。Webソース・ビュー(JSPベースのWebレポートの場合)を変更すると、変更がレポートの出力にどのように影響するかをすぐに確認できます。

関連項目

第2.4.3項「イメージについて」

第1.7.3項「データベース列について」

4.8.6 データベースからのイメージURLの選択

注意:

この手順を行うのはHTML出力の場合のみです。

これらの手順および第4.9.8.1.3項「イメージ・オブジェクトのURLへのリンク」(ペーパーベースのレポートのみ)に示す手順を使用すると、JPEG (Progressive JPEGやExif JPEGなどのすべてのタイプ)、PNG、BMP、TIFF、GIF、CGMなど、Oracle Reportsでサポートされる様々なフォーマットのイメージを含めることができます。ペーパーベースのレポートでは、「挿入」→「イメージ」を使用して、TIFF、JFIF、BMP、TGA、PCX、PICT、GIF、CALS、RAS、OIFまたはPCDのフォーマットで、ファイル内のイメージをイメージ用のレポート・レイアウトにインポートすることもできます(第4.9.8.1.1項「イメージのインポート」を参照)。

HTMLレポートに含めるイメージを指すURLをデータベースから選択するには:

1. SELECT文を使用して、URLを含む列を選択する問合せを作成します。

2. データ・モデル・ビューで、URLを含む列をダブルクリックして、プロパティ・インスペクタを表示します。

3. 「列」ノードで次の操作を行います。

- 「ファイルからの読込み」プロパティを「はい」に設定します。

- 「ファイル形式」プロパティを「イメージURL」に設定します。

4. JSPベースのWebレポートを作成している場合、次のように、containsHtml属性を、列の<rw:field> JSPタグに追加することも必要になります。

- レポートのWebソース・ビューを表示します。

- 列のrw:fieldタグ(<rw:field ... src="column_name" ...>)を検索します。

- containsHtml=yes属性を追加して、イメージがフィールドの値に含まれるように指定します。
次に例を示します。

<rw:field id="F_MYIMAGE" src="MYIMAGE" nullValue="&nbsp;" containsHtml="yes">

5. Webレイアウトが指定されたレポート出力をWebブラウザでプレビューするには、「プログラム」→「Webレイアウトを実行」を選択してWebソースを実行します。Webソース・ビュー(JSPベースのWebレポートの場合)を変更すると、変更がレポートの出力にどのように影響するかをすぐに確認できます。

関連項目

第2.4.3項「イメージについて」

第2.8.8項「HTMLおよびHTMLCSS出力について」

4.8.7 ブレーク・グループの作成

ブレーク・グループは、レポート・ウィザードで定義するか手動で作成します。

ブレーク・グループを手動で作成するには:

1. データ・モデル・ビューで、レポートをブレークする列を含むグループを、問合せオブジェクトの約5センチメートル (2インチ)下にドラッグします。

2. レポートの分割に使用する列を選択します。たとえば、従業員データの一覧を部門番号でグループ化する場合は、部門番号の列を選択します。列を選択したら、グループ外の上の方で問合せオブジェクトとの間へドラッグして、新しいグループを作成します。これがブレーク列になります。

3. 新しいグループ・オブジェクトをダブルクリックしてプロパティ・インスペクタを表示し、ブレーク・グループのプロパティを設定できます。

関連項目

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

第1.3.2項「グループ上レポートについて」

第1.3.3項「グループ左レポートについて」

4.8.8 マトリックス(クロス積)グループの作成

マトリックス・グループは、データ・ウィザードで定義するか手動で作成します。データ・ウィザードを使用してマトリックス(クロス積)グループを作成する手順は次のとおりです。

1. データ・モデル・ビューで、右クリックして「データ・ウィザード」を選択します。

2. 「問合せ」ページで、「マトリックス問合せ」チェック・ボックスを選択します。

3. ウィザードの指示に従って、マトリックス・グループの列、行およびセルに使用する各列を選択します。
マトリックス(クロス積)グループを手動で作成するには:

4. データ・モデル・ビューで、グループ・オブジェクトのタイトル・バーを下へドラッグします。

5. 行と列にする列を、グループ・オブジェクトから空いたスペースにドラッグし、新しいグループを2つ作成します。

6. ツール・パレットの「クロス積」ツールをクリックします。

7. マウスをドラッグし、マトリックス(クロス積)グループに入れるグループを囲むボックスを描きます。

8. セル・グループがマトリックス(クロス積)グループとは別の問合せの場合は、マトリックス・グループの列とセル・グループの列の間に適切なリンクを作成します。

関連項目

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

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

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

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

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

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

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

第1.3.2項「グループ上レポートについて」

第1.3.3項「グループ左レポートについて」

4.8.9 データ・リンクの作成

データ・リンクを作成するには:

1. データ・モデル・ビューで、ツール・パレットの「データ・リンク」ツールをクリックします。リンクは常に親グループから子問合せへと描かれます。

2. 次のようにリンクを作成します。
グループ間リンクの作成: ある問合せのグループと別の問合せのグループとの間にリンクを作成するには、親グループをクリックして(グループ内の列をクリックしないようにして)子グループへリンクをドラッグします。グループ間リンクは、子問合せ側で親のデータに関する情報が必要な場合に便利です。

列間リンクの作成: 列と列の間にリンクを作成するには、親問合せの列をクリックして、子問合せの列へリンクをドラッグします。

3. 新しいリンク・オブジェクトをダブルクリックしてプロパティ・インスペクタを表示し、目的のプロパティを設定します。

関連項目

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

第2.3.5項「リンク不可能な問合せについて」

4.8.10 式列の作成または編集

式列を作成または編集するには:

1. データ・モデル・ビューで、ツール・パレットの「式列」ツールをクリックし、次の操作を行います。

- グループ内に列を作成するには、グループの階層の中で、列を配置する場所をクリックします。

- レポートレベルの列を作成するには、キャンバス領域の空いている場所をクリックします。

2. 式列オブジェクトをダブルクリックしてプロパティ・インスペクタを表示します。

3. 「プレースホルダ/式」ノードで、「PL/SQL式」プロパティ・フィールドをダブルクリックします。

4. PL/SQLエディタで、式に使用するPL/SQL (SAL * 0.07など)を定義します。

例: 式における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)

または

CompSal(:SAL) + COMM

関連項目

第2.3.2項「式列について」

4.8.11 サマリー列の作成

データ・ウィザードを使用してサマリー列(合計または小計用)を作成する手順は次のとおりです。

1. データ・モデル・ビューで、合計する列を含む問合せをクリックします。

2. 右クリックして、「データ・ウィザード」を選択します。

3. 「合計」ページで、ウィザードの指示に従って必要なサマリーをレポートに追加します。

注意:

グループ・レポートの場合、レポート・ウィザードとデータ・ウィザードは、ユーザーが定義する各サマリー列のデータ・モデル内にn個のサマリー・フィールドを作成します。サマリーする列より上のグループ・レベルごとに1つ、およびレポート・レベルで1つ作成されます。たとえば、レポートが部門別にグループ化され、さらに課別にグループ化される場合、給与合計を求めるためにサマリー列を定義すると、各部門グループおよび各課グループの給与合計(グループ・レベル・サマリー)および給与の総合計(レポート・レベル・サマリー)のフィールドが作成されます。

ツール・パレットを使用してサマリー列(合計または小計用)を作成するには:

1. データ・モデル・ビューで、ツール・パレットの「サマリー列」ツールをクリックし、次の操作を行います。

- グループ内に列を作成するには、グループの階層の中で、列を配置する場所をクリックします。

- レポートレベルの列を作成するには、キャンバス領域の空いている場所をクリックします。

2. 新しいサマリー列のオブジェクトをダブルクリックしてプロパティ・インスペクタを表示します。

3. 「サマリー」ノードで次の操作を行います。

- リストからサマリーのタイプを選択して、「ファンクション」プロパティを設定します。

- 「ソース」プロパティを集計列に指定します。

- 「リセット位置」プロパティを、サマリー列の値をリセットするグループに設定します。

使用に関する注意

「グループ上」または「マトリックス」のスタイルが設定されたJSPベースのWebレポートで、ツールバーの「Webレイアウトを実行」ボタンをクリックするか「プログラム」→「Webレイアウトを実行」を選択したときに、サマリー列の値が左揃えで正しく表示されない場合は、次の回避策を実行して、値を揃えることができます。

- Webソース・ビューでサマリー列が定義されているセクションを探し、次の行を削除して、余分なスペースを削除します。

<th class="summary_column_name"> </th>

関連項目

第2.3.1項「サマリー列について」

第9章「サマリー・レポートの作成」

第13章「グループ左サマリー・レポートの作成」

4.8.12 プレースホルダ列の作成または編集

プレースホルダ列を作成または編集するには:

1. データ・モデル・ビューで、ツール・パレットの「プレースホルダ列」ツールをクリックします。

- グループ内に列を作成するには、グループの階層の中で、列を配置する場所をクリックします。

- レポートレベルの列を作成するには、キャンバス領域の空いている場所をクリックします。

2. プレースホルダ列オブジェクトをダブルクリックします。

3. プロパティ・インスペクタで、プレースホルダ列に目的のプロパティを設定します。

4. 次の場所にプレースホルダ列の値を設定します。

- Before Reportトリガー(プレースホルダがレポートレベルの列の場合)

- レポートレベルの式列(プレースホルダがレポートレベルの列の場合)

- プレースホルダのグループまたはその下のグループ内の式(値はグループの各レコードに一度ずつ設定します)

関連項目

第2.3.2項「式列について」

4.9 レポート・レイアウトの操作

この項では、レポート・レイアウト内のオブジェクトを作成および変更する手順について説明します。手順は次の各項に分類されています。

- 標準レイアウト・オブジェクト

- テキスト・オブジェクト

- ページ番号または日付/時刻スタンプ

- 境界線

- アンカー

- カラー、パターンおよびハイライト

- 書式マスク

- グラフィック・オブジェクトまたはイメージ・オブジェクト

- ページまたはグループのヘッダーとフッター

- マージン・オブジェクト、ヘッダー・ページ・オブジェクトまたはトレーラ・ページ・オブジェクト

- オブジェクトの移動

- オブジェクトのサイズ変更

- 間隔の変更

- ページ・レイアウトの変更

4.9.1 標準レイアウト・オブジェクト

この項では、コンテナ・オブジェクトを操作する際に実行する可能性がある次のタスクの手順について説明します。

- フィールド・オブジェクトの作成

- 枠または繰返し枠の作成

- マトリックス・オブジェクトの作成

- バーコード・フォントを使用したバーコードの作成

- 条件付き書式のレイアウト・オブジェクトへの適用

4.9.1.1 フィールド・オブジェクトの作成

レポート・レイアウトのフィールド・オブジェクトを手動で作成するには:

1. ペーパー・デザイン・ビュー、ペーパー・レイアウト・ビューまたはペーパー・パラメータ・フォーム・ビューで、ツール・パレットの「フィールド」ツールをクリックします。

2. 四角形をクリックして、ドラッグします。

3. 新しいフィールド・オブジェクトをダブルクリックします。

4. プロパティ・インスペクタの「フィールド」ノードで、「ソース」プロパティをそのフィールドの値を指定する列またはパラメータに設定します。

5. 必要に応じて、他のプロパティを設定します。

関連項目

第1.8.4項「フィールドについて」

第1.9.2項「パラメータ・フォーム・フィールドについて」

4.9.1.2 枠または繰返し枠の作成

枠または繰返し枠を手動で作成するには:

1. ペーパー・レイアウト・ビューで、ツール・パレットの「枠」ツールまたは「繰返し枠」ツールをクリックします。

2. 四角形をクリックして、ドラッグします。

注意:

四角形のサイズは、その中に含めるオブジェクトが収まる大きさである必要があります。

3. 新しい枠オブジェクトをダブルクリックします。

4. プロパティ・インスペクタで、必要なプロパティを設定します。

関連項目

第1.8.1項「枠について」

第1.8.2項「繰返し枠について」

第1.8.3項「枠と繰返し枠のサイズ変更について」

4.9.1.3 マトリックス・オブジェクトの作成

注意:

ここでは、マトリックス・オブジェクトを手動で作成する手順について説明します。マトリックス・オブジェクトの作成には、レポート・ブロック・ウィザードを使用することをお薦めします(ペーパー・レイアウト・ビューで「挿入」→「レポート・ブロック」を選択します)。

マトリックス・オブジェクトを作成するには:

1. ペーパー・レイアウト・ビューで、ツール・パレットの「繰返し枠」ツールをクリックし、四角形をドラッグして繰返し枠を作成します。

2. プロパティ・インスペクタの「繰返し枠」で、マトリックスの「ソース」プロパティを列に設定し、「印刷方向」プロパティを「縦」に設定します。

3. ツール・パレットの「繰返し枠」ツールを再度クリックし、四角形をドラッグして最初の繰返し枠と交差するように2番目の繰返し枠を作成します。

4. プロパティ・インスペクタの「繰返し枠」で、マトリックスの「ソース」プロパティを「行」に設定し、「印刷方向」プロパティを「横」に設定します。

5. 両方の繰返し枠の周囲を四角形にドラッグして選択し、「挿入」→「レイアウト・マトリックス」を選択します。
これにより、2つの繰返し枠の共通部分であるマトリックス・オブジェクトが作成されます。次に例を示します。

図4-1 マトリックス・オブジェクトの例

6. マトリックス・オブジェクトをダブルクリックして、プロパティを設定します。

関連項目

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

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

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

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

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

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

4.9.1.4 バーコード・フォントを使用したバーコードの作成

注意:

Oracle9i Reportsリリース2 (9.0.2)から、バーコードが自動的に生成されるバーコードJavaBeanを使用できるようになりました。第43章「バーコードを使用したレポートの作成」のサンプル・レポートを参照してください。

バーコード・フォントを使用してバーコードを作成するには:

1. 使用しているマシンにバーコード・フォントをインストールします(たとえば、WindowsではWindowsのコントロール・パネルの「フォント」を使用してインストールします)。バーコード・フォントは、ソフトウェア販売店で入手することができます。

注意:

PostScriptのバーコード・フォントを使用すると、PostScript対応の任意の出力デバイスでレポートを印刷できるので、プラットフォーム間の移植性を向上させることができます。

2. レポートに含めるバーコードのデータが格納されている列を、データベースから選択する問合せを作成します。

3. ペーパー・レイアウト・ビューで、バーコード・フィールドをクリックして「書式」→「フォント」を選択し、フィールドにバーコード・フォントを適用します。

4.9.1.5 条件付き書式のレイアウト・オブジェクトへの適用

条件付き書式をレイアウト・オブジェクトに適用するには:

1. オブジェクトをクリックし、「書式」→「条件付き書式」を選択します。

ヒント:

複数のオブジェクトを選択するには、オブジェクトを1つクリックしてから[Shift]を押しながら他のすべてのオブジェクトをクリックします。すべてのオブジェクトを選択するには、「編集」→「すべて選択」を選択します。

2. 「条件付き書式」ダイアログ・ボックスで、「新規」をクリックして、「書式の例外」ダイアログ・ボックスを表示します。

3. 条件がTRUEと評価されたときに適用される、条件および書式設定の属性を指定します。

4. 「OK」をクリックします。

使用に関する注意

- PL/SQLエディタで、PL/SQLフォーマット・トリガーを使用してオブジェクトに対して条件を定義すると、さらに複雑な条件付き書式を指定できます。

関連項目

第2.1.6項「条件付き書式について」

第4.9.6.7項「値のハイライト」

第4.9.6.8項「行のハイライト」

4.9.2 テキスト・オブジェクト

この項では、テキスト・オブジェクトを操作する際に実行する可能性がある次のタスクの手順について説明します。

- テキストのボイラープレート・オブジェクトの作成

- 2ページごとに表示されるテキストのボイラープレート・オブジェクトの作成

- HTMLタグのボイラープレート・テキスト・オブジェクトの作成

- テキストの編集

- ボイラープレート・テキスト内でのフィールドの参照

- ボイラープレート・テキスト・オブジェクトのファイルへのリンク

- HTMLテキスト・オブジェクトのファイルへのリンク

- フィールドのテキストの折返し

- テキスト属性の変更

4.9.2.1 テキストのボイラープレート・オブジェクトの作成

テキストのボイラープレート・オブジェクトを作成するには:

1. ペーパー・デザイン・ビュー、ペーパー・レイアウト・ビューまたはペーパー・パラメータ・フォーム・ビューで、ツール・パレットの「テキスト」ツールをクリックします。

2. 四角形をクリックして、ドラッグします。

3. ボイラープレート・オブジェクトに必要なテキストを入力します。
入力するテキスト内の各段落は、新しい行で区切ります。段落内のテキストは、ボイラープレート・オブジェクトの水平サイズ内でワードラップされます。

4. ボイラープレート・テキスト・オブジェクトの外側をクリックします。

関連項目

第1.8.5項「ボイラープレート・オブジェクトについて」

4.9.2.2 2ページごとに表示されるテキストのボイラープレート・オブジェクトの作成

2ページごとに表示されるテキストのボイラープレート・オブジェクトを作成するには:

1. ページ上の表示させる位置、つまりマージン内または繰返し枠内(繰返し枠を拡張して繰返し枠内のフィールドの下にボイラープレート・テキストを表示するスペースを作成します)に、ボイラープレート・テキスト・オブジェクトを作成します。

2. ボイラープレート・テキスト・オブジェクトをダブルクリックして、プロパティ・インスペクタを表示します。PL/SQLエディタで次のコードを入力し、「拡張レイアウト」ノードで「フォーマット・トリガー」プロパティを設定します。

function XXX_HDRFormatTrigger return boolean is page_num number;
begin
srw.get_page_num(page_num);
if mod(page_num, 2) = 0 then
return(false);
else
return (true);
end if;
end;

3. レポートを実行して、ボイラープレート・テキストが2ページごとに表示されることを確認します。

関連項目

第1.8.5項「ボイラープレート・オブジェクトについて」

4.9.2.3 HTMLタグのボイラープレート・テキスト・オブジェクトの作成

注意:

この手順は、ペーパーベースのレポートに適用されます。

HTMLタグのボイラープレート・テキスト・オブジェクトを作成するには:

1. ペーパー・デザイン・ビューで、ツール・パレットの「テキスト」ツールをクリックします。

2. 四角形をクリックして、ドラッグします。

3. ボイラープレート・オブジェクトに必要なHTMLを入力します。

4. ボイラープレート・テキスト・オブジェクトの外側をクリックします。

5. ボイラープレート・テキスト・オブジェクトをダブルクリックします(または、オブジェクトを右クリックして「プロパティ・インスペクタ」を選択します)。

6. プロパティ・インスペクタの「Webの設定」ノードで、「HTMLタグを含む」プロパティを「はい」に設定します。

使用に関する注意

テキスト・オブジェクトの「HTMLタグを含む」プロパティが「はい」に設定されていると、HTMLタグと属性がレポート出力に次のようにフォーマットされます。

- レポートがHTML出力またはHTMLCSS出力で生成される場合、その出力のHTMLタグと属性がすべて解析およびフォーマットされます。

- レポートが他のビットマップ出力フォーマット(PDF、RTF、PostScriptなど)で生成される場合は、第2.8.9項「HTMLフォーマットについて」で説明しているように、固定のHTMLタグと属性のセットが解釈されて、その出力にフォーマットされます。サポートされているタグと属性のセットにないHTMLは解釈されずに、レポート出力にそのまま表示されます。

例1: フォーマットのオンとオフの切替え

次のように定義されたテキスト・ボイラープレート・オブジェクトがあるとします。

<i><b>Design time format</b> is merged with <span style="font-family:Arial;
color:#00F">run time formatting instructions.</span></i>

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

Design time format is merged with run time formatting instructions.

「HTMLタグを含む」プロパティを「いいえ」に設定すると、次のフォーマットでレポートに出力されます。

<i><b>Design time format</b> is merged with <span style="font-family:Arial; color:#00F">run time formatting instructions.</span></i>

例2: ハイパーリンクとしてタグが付けられたボイラープレート・テキスト・オブジェクト

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

<a href=http://your_webserver/reports/my_report.html><img src=oracle.gif> </a>

「HTMLタグを含む」プロパティを「はい」に設定すると、このオブジェクトはグラフ(oracle.gif)としてHTML/HTMLCSSレポートに出力され、エンド・ユーザーがこのグラフをクリックすると、my_report.htmlにリンクされます。

例3: HTMLに出力されるパラメータ値

ボイラープレート・テキスト・オブジェクトで、NervousText.classという次のJavaアプレットを入力します。これに対して、オブジェクトの幅と高さをパラメータとして与えます。

<base href=http://cagney.uk.oracle.com/java/NervousText/>
<applet code="NervousText.class" width=&ObjectWidth height=&ObjectHeight>
<param name=text value="&deptno">
</applet>

「HTMLタグを含む」プロパティを「はい」に設定すると、このオブジェクトは実際の値に置換されたパラメータにより解釈されます。

<base href=http://cagney.uk.oracle.com/java/NervousText/>
<applet code="NervousText.class" width=84 height=72>
<param name=text value="10">
</applet>

関連項目

第1.8.5項「ボイラープレート・オブジェクトについて」

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

4.9.2.4 テキストの編集

テキストを挿入および置換するには:

1. ペーパー・デザイン・ビュー、ペーパー・レイアウト・ビューまたはペーパー・パラメータ・フォーム・ビューで、テキスト・オブジェクトをクリックします。

2. テキストをクリックして、編集モードに切り替えます。

3. 必要に応じてテキストを変更し、テキスト・オブジェクトの外側をクリックします。

テキストを削除するには:

1. ペーパー・デザイン・ビュー、ペーパー・レイアウト・ビューまたはペーパー・パラメータ・フォーム・ビューで、テキスト・オブジェクトをクリックします。

2. テキストをすべて切り取るには、「編集」→「削除」を選択します。

テキストの切取り、コピーまたは貼付けを実行するには:

1. ペーパー・レイアウト・ビューまたはペーパー・パラメータ・フォーム・ビューで、テキスト・オブジェクトをクリックします。

2. 切取りまたはコピーの対象のテキストをクリック・アンド・ドラッグでマークします。次に、「編集」→「切取り」、または「編集」→「コピー」を選択します。

3. テキストを貼り付けるには、「編集」→「貼付け」を選択します。

4.9.2.5 ボイラープレート・テキスト内でのフィールドの参照

ボイラープレート・テキスト内でフィールドの値を参照するには:

1. ペーパー・デザイン・ビューまたはペーパー・レイアウト・ビューで、フィールドへの参照を含むボイラープレート・テキストをクリックして表示します。

2. アンパサンド(&)に続けてフィールド名を入力します。
他のテキストの前に空白を含めずにフィールド参照を指定する場合は、フィールド名を山カッコで囲んでテキストと区別します(&<fieldname>Oracleなど)。他のテキストの後にフィールド参照を指定する場合、山カッコは必要ありません(Oracle&fieldnameなど)。複数のフィールド参照をそれぞれの間に空白を入れずに続けて、山カッコなしで指定することもできます(&field1&field2&field3など)。

使用に関する注意

- フィールドの参照には、そのフィールドのプロパティが含まれます。したがって、「水平拡張度」プロパティが「固定」に設定されていると、そのフィールド内の余分な空白がレポート出力に表示されることになります。たとえば、フィールドf_salの水平拡張度が固定に設定されている場合、$&<f_sal>/weekと指定すると、レポート出力に$800 /weekと表示される場合があります。

- ボイラープレート・テキスト・オブジェクトのフィールドの参照に加えて、データベース列(&SALなど)を直接参照することもできます。たとえば、$&<SAL>/weekと指定して、レポート出力に$800/weekと表示させることもできます。

関連項目

第1.8.4項「フィールドについて」

第1.8.5項「ボイラープレート・オブジェクトについて」

4.9.2.6 ボイラープレート・テキスト・オブジェクトのファイルへのリンク

注意:

この手順は、ペーパーベースのレポートに適用されます。ファイル・リンク・オブジェクトは、JSPベースのWebレポートに実装されていません。

ボイラープレート・テキスト・オブジェクトをファイルにリンクするには:

1. ペーパー・デザイン・ビューまたはペーパー・レイアウト・ビューで、ツール・パレットの「ファイル・リンク」ツールをクリックします。

2. 四角形をクリックして、ドラッグします。

3. ファイル・リンク・オブジェクトをダブルクリックして、プロパティ・インスペクタを表示します。

4. 「ファイル・リンク・ボイラープレート」ノードで次の操作を行います。

- 「ソース・ファイルのフォーマット」プロパティを「テキスト」に設定します。

- 「ソース・ファイル名」プロパティを、テキストを含むファイルの名前に設定します。

関連項目

第1.8.5項「ボイラープレート・オブジェクトについて」

4.9.2.7 HTMLテキスト・オブジェクトのファイルへのリンク

注意:

この手順は、ペーパーベースのレポートに適用されます。ファイル・リンク・オブジェクトは、JSPベースのWebレポートに実装されていません。

HTMLオブジェクトをファイルにリンクするには:

1. ペーパー・デザイン・ビューまたはペーパー・レイアウト・ビューで、ツール・パレットの「ファイル・リンク」ツールをクリックします。

2. 四角形をクリックして、ドラッグします。

3. ファイル・リンク・オブジェクトをダブルクリックして、プロパティ・インスペクタを表示します。

4. 「ファイル・リンク・ボイラープレート」ノードで次の操作を行います。

- 「ソース・ファイルのフォーマット」プロパティを「テキスト」に設定します。

- 「ソース・ファイル名」プロパティを、HTMLタグを含むファイルの名前に設定します。

5. 「Webの設定」ノードで、「HTMLタグを含む」プロパティを「はい」に設定します。

使用に関する注意

テキスト・オブジェクトの「HTMLタグを含む」プロパティが「はい」に設定されていると、HTMLタグと属性がレポート出力に次のようにフォーマットされます。

- レポートがHTML出力またはHTMLCSS出力で生成される場合、その出力のHTMLタグと属性がすべて解析およびフォーマットされます。

- レポートが他のビットマップ出力フォーマット(PDF、RTF、PostScriptなど)で生成される場合は、第2.8.9項「HTMLフォーマットについて」で説明しているように、固定のHTMLタグと属性のセットが解釈されて、その出力にフォーマットされます。サポートされているタグと属性のセットにないHTMLは解釈されずに、レポート出力にそのまま表示されます。

関連項目

第1.8.5項「ボイラープレート・オブジェクトについて」

4.9.2.8 フィールドのテキストの折返し

フィールドのテキストを折り返すには:

1. 「ツール」→「レポート・ウィザード」を選択します。

2. レポート・ウィザードで、「ラベル」タブをクリックします。

3. テキストを折り返すフィールドの「幅」列の値を必要に応じて変更します。

4. 「適用」をクリックします。

注意:

ペーパー・レイアウト・ビューまたはペーパー・デザイン・ビューでレイアウトを手動で調整した場合は、レポート・ウィザードの「適用」または「終了」をクリックすると、これらのレイアウトの変更は失われ、レイアウトはデフォルトに戻ります。現行のレイアウトが上書きされないようにするには、ペーパー・レイアウト・ビューまたはペーパー・デザイン・ビューで列を目的の幅まで手動でドラッグします。

5. ペーパー・レイアウト・ビューまたはペーパー・パラメータ・フォーム・ビューで、フィールドをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「標準レイアウト」で、「垂直拡張度」プロパティが「拡張」に設定されていることを確認します。

4.9.2.9 テキスト属性の変更

テキスト・オブジェクトのフォント、文字位置、間隔または文字の方向を変更するには:

1. ペーパー・デザイン・ビューで、テキスト・オブジェクトをクリックします。

ヒント:

複数のオブジェクトを選択するには、オブジェクトを1つクリックしてから[Shift]を押しながら他のすべてのオブジェクトをクリックします。すべてのオブジェクトを選択するには、「編集」→「すべて選択」を選択します。

2. 「書式」メニューから、「フォント」、「文字の割付け」、「テキスト間隔」または「方向」を選択します。

4.9.2.10 PL/SQLを使用したテキスト属性の変更

ユーザー・インタフェースのかわりにPL/SQLを使用して、テキスト・オブジェクトのフォントまたは文字位置を変更するには:

1. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードを開きます。

2. テキスト・オブジェクトの横の「PL/SQL」アイコンをダブルクリックします。

ヒント:

複数のオブジェクトを選択するには、オブジェクトを1つクリックしてから[Shift]を押しながら他のすべてのオブジェクトをクリックします。すべてのオブジェクトを選択するには、「編集」→「すべて選択」を選択します。

3. PL/SQLエディタで、次のビルトイン・プロシージャを使用してオブジェクトのフォントまたは文字位置を必要に応じて変更します。
SRW.SET_CHARMODE_TEXT

SRW.SET_FONT_FACE

SRW.SET_FONT_STYLE

SRW.SET_FONT_WEIGHT

SRW.SET_FONT_SIZE

SRW.SET_JUSTIFICATION

関連項目

Oracle Reportsオンライン・ヘルプのリファレンス、PL/SQLリファレンスのビルトイン・パッケージに関する項にある、SRWのビルトイン・パッケージに関するトピック

4.9.3 ページ番号または日付/時刻スタンプ

この項では、ページ番号または日付/時刻スタンプを操作する際に実行する可能性がある次のタスクの手順について説明します。

- ページ番号の作成

- ページ番号のリセット

- 時刻スタンプまたは日付スタンプの作成

4.9.3.1 ページ番号の作成

デフォルトのページ番号を作成するには:

1. ペーパー・レイアウト・ビューまたはペーパー・デザイン・ビューで、「挿入」→「ページ番号」を選択します。

2. 「ページ番号を挿入」ダイアログ・ボックスで、リストからページ番号の位置を選択します。

3. 必要なページ番号の書式を選択します。「ページ番号のみ」または「ページ番号と合計ページ」に設定します。

4. 必要に応じて、ページ番号テキストのデフォルト属性を変更することもできます。

カスタマイズされたページ番号を作成するには:

1. ペーパー・レイアウト・ビューまたはペーパー・デザイン・ビューで、ツールバーの「マージン編集」ボタンをクリックします。

注意:

マージン領域は、本体と分離する黒の太線で定義されています。マージン領域を表示しながらレポートの本体部分にオブジェクトを作成すると、それらのオブジェクトはマージンが表示されているときにのみ編集できます。

2. 必要なページ番号値(物理ページ番号、総物理ページ数など)ごとに、マージン領域でフィールド・オブジェクトを作成します(第4.9.1.1項「フィールド・オブジェクトの作成」を参照)。

3. フィールドのプロパティ・インスペクタの「フィールド」ノードで、「ソース」プロパティをページ番号のソースに設定し、「可視」プロパティを「いいえ」に設定します。「標準レイアウト」ノードで、「水平拡張度」プロパティを「可変」に設定します。

4. マージン領域でボイラープレート・テキスト・オブジェクトを作成し(第4.9.2.1項「テキストのボイラープレート・オブジェクトの作成」を参照)、&fieldnameを使用してページ番号フィールドを参照します(第4.9.2.5項「ボイラープレート・テキスト内でのフィールドの参照」を参照)。

使用に関する注意

- 奇数ページ番号を右側に、偶数ページ番号を左側に生成するには、フィールドを2つ(右側に1つと左側に1つ)作成する必要があります。各フィールドのフォーマット・トリガーで、SRW.GET_PAGE_NUMを使用して、奇数ページか偶数ページかを調べます。次に、そのフィールドを表示するか非表示にするかを指定します。

4.9.3.2 ページ番号のリセット

デフォルトのページ番号(「挿入」→「ページ番号」で作成)をリセットする手順は次のとおりです。

1. ペーパー・レイアウト・ビューまたはペーパー・デザイン・ビューで、デフォルトのページ番号オブジェクトをクリックし、「編集」→「削除」を選択して削除します。

2. カスタマイズされたページ番号を作成します(第4.9.3.1項「ページ番号の作成」を参照)。

3. ページ番号フィールドのプロパティ・インスペクタの「フィールド」で、「ページ番号付け」プロパティの値をダブルクリックします。

4. 「ページ番号付け」ダイアログ・ボックスで、目的の「リセット位置」の設定をクリックします。選択された枠がフォーマットされるたびに、ページ番号は「起動位置」の値にリセットされます。「OK」をクリックします。

4.9.3.3 時刻スタンプまたは日付スタンプの作成

日付スタンプまたは時刻スタンプをレポートに追加するには:

1. ペーパー・レイアウト・ビューまたはペーパー・デザイン・ビューで「挿入」→「日付と時間」を選択します。

2. 「日付と時間を挿入」ダイアログ・ボックスで、リストから日付スタンプまたは時刻スタンプの位置を選択します。

3. 日付または時刻の必要な書式をクリックするか、「カスタム」をクリックして独自の書式を定義します。

4.9.4 境界線

この項では、境界線を操作する際に実行する可能性がある次のタスクの手順について説明します。

- オブジェクトの境界線の表示または非表示

- オブジェクトの境界線属性の変更

- 現行のモード(制限またはフレックス)の変更

4.9.4.1 オブジェクトの境界線の表示または非表示

オブジェクトのまわりの境界線を表示または非表示にするには:

1. オブジェクトをクリックします。

ヒント:

複数のオブジェクトを選択するには、オブジェクトを1つクリックしてから[Shift]を押しながら他のすべてのオブジェクトをクリックします。すべてのオブジェクトを選択するには、「編集」→「すべて選択」を選択します。

2. ツール・パレットの「線カラー」ツールをクリックします。

3. 境界線を追加するには、塗りつぶされた四角形をクリックします。

4. レポート出力で境界線を透明にするには、カラー・パレットの下部にある枠なしをクリックします。

注意:

すべてのオブジェクトの境界線を透明にすると、列ヘッダーの下線も透明になります。下線を追加するには、下線にするオブジェクトをクリックし、ツール・パレットの「線カラー」を使用して線カラーを選択します。

5. 境界線の一部を表示または非表示にするには、「書式」→「線」→「境界線」を選択し、各境界線の表示と非表示をメニューから選択して切り替えます。

4.9.4.2 オブジェクトの境界線属性の変更

オブジェクトのまわりの境界線を変更するには:

1. オブジェクトをクリックします。

ヒント:

複数のオブジェクトを選択するには、オブジェクトを1つクリックしてから[Shift]を押しながら他のすべてのオブジェクトをクリックします。すべてのオブジェクトを選択するには、「編集」→「すべて選択」を選択します。

2. 線幅を変更するには、「書式」→「線」→「線幅」を選択します。

3. パターンを選択するには、「書式」→「線」→「破線」を選択します。線種パターンは、出力には表示されますが、オブジェクトのアウトラインで見にくくなる場合もあります。「ツール」→「オプション」→「ペーパー・レイアウト」を選択して、「オプション」の「枠アウトライン」チェック・ボックスの選択を解除できます。

4. 境界線に枠を付けるには、「書式」→「凹凸」を選択します。

関連項目

第2.4.5項「カラーとパターンの変更について」

第4.12.8項「テンプレートの本体オブジェクトのカラー、パターンまたは境界線の変更」

4.9.4.3 現行のモード(制限またはフレックス)の変更

制限モードを設定またはオーバーライドするには:

- ペーパー・レイアウト・ビューで、ツールバーの「制限オン」ボタンまたは「制限オフ」ボタンをクリックして、モードを切り替えます。
オン: 子オブジェクトは、それを囲む親オブジェクトの外に移動することはできません。

オフ: 子オブジェクトは、それを囲む親オブジェクトの外に移動することができます。

フレックス・モードを設定またはオーバーライドするには:

- ペーパー・レイアウト・ビューで、ツールバーの「フレックス・オン」ボタンまたは「フレックス・オフ」ボタンをクリックして、モードを切り替えます。
オン: 子オブジェクトを親オブジェクトに対して移動すると、親の枠が伸びます。子オブジェクトは、移動先の親オブジェクトの辺からと同じ距離を維持します。

オフ: 子オブジェクトを親オブジェクトに対して移動しても、親の枠は固定されたままです。

関連項目

第2.4.7項「ペーパー・レイアウト・ビューでのオブジェクトの移動とレイヤーについて」

第4.9.11.3項「親の境界線の自動調整」

第4.9.11.2項「オブジェクトの親の外への移動」

4.9.5 アンカー

この項では、アンカーを操作する際に実行する可能性がある次のタスクの手順について説明します。

- アンカー・オブジェクトによる連動

- 暗黙的なアンカーの表示

- アンカーの移動

関連項目

第2.4.4項「アンカーについて」

4.9.5.1 アンカー・オブジェクトによる連動

アンカー・オブジェクトによって、アンカーされているオブジェクトは親オブジェクトとともに移動します。オブジェクトは、他の1つのオブジェクトにのみアンカーできます。

アンカーでオブジェクトを連動するには:

1. ペーパー・レイアウト・ビューで、ツール・パレットの「アンカー」ツールをクリックします。

2. 子オブジェクトの境界線をクリックし、親オブジェクトの境界線をダブルクリックします。
子から親に線が1本描画されます。親オブジェクトに連結された線の最後に小さいボックスが表示されます。

4.9.5.2 暗黙的なアンカーの表示

デフォルトでは、レポート・エディタのペーパー・レイアウト・ビューで作成した明示的なアンカーが表示されます。

暗黙的なアンカーと明示的なアンカーの情報を表示するには:

1. オブジェクト・ナビゲータで、「ツール」→「オプション」→「ナビゲータ」を選択し、「オブジェクト・ナビゲータ・オプション」ダイアログ・ボックスを表示します。

2. 「レイアウト」タブをクリックし、「アンカー情報」チェック・ボックスを選択します。
このオプションを選択すると、暗黙的なアンカーと明示的なアンカーの両方に関するすべての情報がオブジェクト・ナビゲータに表示されます。

注意:

デフォルトでは、オブジェクトはそれを囲むオブジェクトの左上角にアンカーされています。このオブジェクト・ナビゲータ表示にオブジェクトのアンカー情報が表示されない場合は、オブジェクトがそれを囲むオブジェクト(枠または本体)にアンカーされていることを示します。

関連項目

第2.4.4.1項「暗黙的なアンカーのアルゴリズム」

4.9.5.3 アンカーの移動

アンカーを移動すると、オブジェクトどうしが相対的にどう表示されるかが変わります。

アンカーを移動するには:

1. ペーパー・レイアウト・ビューで、アンカーをクリックします。

2. ツール・パレットの「変形」ツールをクリックし、アンカー・エンドポイントの1つをオブジェクト枠上の新しい位置までドラッグします。

オブジェクト枠に沿ってアンカーを移動するには:

- 制約キー([Shift]など)を押しながら、アンカーを移動します。

オブジェクト枠上のアンカーの位置を縦(上から下)または横(左から右)に%単位で変更するには:

1. アンカー・オブジェクトをダブルクリックして、プロパティ・インスペクタを表示します。

2. 「子の枠の割合(%)」プロパティまたは「親の枠の割合(%)」プロパティに新しい値を設定します。

アンカーを配置する枠を変更するには:

- 「子の枠の種類」プロパティまたは「親の枠の種類」プロパティを必要に応じて設定します。

4.9.6 カラー、パターンおよびハイライト

この項では、カラー、パターンおよびハイライトを操作する際に実行する可能性がある次のタスクの手順について説明します。

- カラー・パレットの環境設定の設定

- カラーの変更

- パターンの変更

- PL/SQLを使用したカラーおよびパターンの変更

- カラー・パレットの変更

- カラー・パレットのインポートまたはエクスポート

- 値のハイライト

- 行のハイライト

4.9.6.1 カラー・パレットの環境設定の設定

第4.2.6項「カラー・パレットの環境設定の設定」を参照してください。

4.9.6.2 カラーの変更

オブジェクトまたはテキストのカラーを変更するには:

1. ペーパー・レイアウト・ビューで、オブジェクトをクリックします。

ヒント:

複数のオブジェクトを選択するには、オブジェクトを1つクリックしてから[Shift]を押しながら他のすべてのオブジェクトをクリックします。すべてのオブジェクトを選択するには、「編集」→「すべて選択」を選択します。

2. オブジェクトのどの部分にカラーを適用するかに応じて、ツール・パレットの「塗りつぶしカラー」ツール、「線カラー」ツールまたは「テキスト・カラー」ツールをクリックします。

注意:

3つのカラー・ツールの真上にある「塗りつぶし/線/テキスト・サンプル」ボックスには、現在選択されている塗りつぶし、境界線およびテキストが表示されます。Oracle Reports Builderによって作成されたオブジェクトのデフォルトの塗りつぶしおよび境界線は透明ですが、ユーザーが作成するオブジェクトのデフォルト値は白塗りのまわりに黒の1ポイント線です。

3. カラー・パレットでカラーをクリックします。

関連項目

第2.4.5項「カラーとパターンの変更について」

第4.12.8項「テンプレートの本体オブジェクトのカラー、パターンまたは境界線の変更」

4.9.6.3 パターンの変更

オブジェクトのパターンを変更するには:

1. ペーパー・レイアウト・ビューで、オブジェクトをクリックします。

ヒント:

複数のオブジェクトを選択するには、オブジェクトを1つクリックしてから[Shift]を押しながら他のすべてのオブジェクトをクリックします。すべてのオブジェクトを選択するには、「編集」→「すべて選択」を選択します。

2. オブジェクトのどの部分にパターンを適用するかに応じて、ツール・パレットの「塗りつぶしカラー」ツールまたは「線カラー」ツールをクリックします。

注意:

Windowsプラットフォームでは、境界線パターン(「線カラー」ツールのパターン)はサポートされません。

3. カラー・パレットで「パターン」をクリックします。

4. パターン・パレットでパターンをクリックします。フォアグラウンド・カラーおよびバックグラウンド・カラーを変更するには、パターン・パレットの下部にあるカラー・パレットから選択します。

関連項目

第2.4.5項「カラーとパターンの変更について」

第4.12.8項「テンプレートの本体オブジェクトのカラー、パターンまたは境界線の変更」

Oracle Reportsオンライン・ヘルプのリファレンスに関する項のパターン・カラー・パレットに関するトピック

4.9.6.4 PL/SQLを使用したカラーおよびパターンの変更

ユーザー・インタフェースのかわりにPL/SQLを使用してオブジェクトのカラーを変更するには:

1. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードを開きます。

2. カラーを変更するオブジェクトの横の「PL/SQL」アイコンをダブルクリックします。

3. PL/SQLエディタで、次のビルトイン・プロシージャを使用してオブジェクトのカラーを必要に応じて変更します。
SRW.SET_BACKGROUND_BORDER_COLOR

SRW.SET_BACKGROUND_FILL_COLOR

SRW.SET_FOREGROUND_BORDER_COLOR

SRW.SET_FOREGROUND_FILL_COLOR

SRW.SET_TEXT_COLOR

SRW.SET_BORDER_PATTERN

関連項目

第2.4.5項「カラーとパターンの変更について」

Oracle Reportsオンライン・ヘルプのリファレンス、PL/SQLリファレンスのビルトイン・パッケージに関する項にある、SRWのビルトイン・パッケージに関するトピック

4.9.6.5 カラー・パレットの変更

カラー・パレットを変更するには:

1. まず、カラー・パレットを編集可能にします。

- 第4.2.6項「カラー・パレットの環境設定の設定」に記載されている手順に従って、「編集」→「プリファレンス」を選択して「カラー・モード」を「編集可」に設定します。

注意:

デフォルトでは、カラー・パレットは読取り専用です。

- Oracle Reports Builderをシャットダウンして再起動し、編集可能モードを有効にします。

2. ペーパー・レイアウト・ビューで、「書式」→「カラー・パレット」→「編集」を選択します。

3. 「カラー・パレット」ダイアログ・ボックスで、必要に応じてカラー・パレットを変更します。

- 「編集」をクリックして、現行のカラーの設定を変更します。

- 現在のカラーに新しい名前を入力して「改名」をクリックすると、現行のカラーの名前を変更できます。

- 編集するカラーを選択には、現行のレポートのレポート・エディタで使用している現行のカラー・パレットが表示されます。パレットからカラーを選択し、そのカラーを変更します。

- 「OK」をクリックして、現行のレポートに変更を適用します。

注意:

レポートにはカラー・パレットは1つのみ設定できます。

関連項目

第2.4.5項「カラーとパターンの変更について」

Oracle Reportsオンライン・ヘルプのリファレンスのカラー・パレットとパターン・パレットに関する項にある、Oracle CDE1カラー・パレット、デフォルト・カラー・パレットおよびグレースケール・カラー・パレットに関するトピック

4.9.6.6 カラー・パレットのインポートまたはエクスポート

カラー・パレットをインポートまたはエクスポートするには:

1. まず、カラー・パレットを編集可能にします。

- 第4.2.6項「カラー・パレットの環境設定の設定」に記載されている手順に従って、「編集」→「プリファレンス」を選択して「カラー・モード」を「編集可」に設定します。

注意:

デフォルトでは、カラー・パレットは読取り専用です。

- Oracle Reports Builderをシャットダウンして再起動し、編集可能モードを有効にします。

2. ペーパー・レイアウト・ビューで、「書式」→「カラー・パレット」→「インポート」または「書式」→「カラー・パレット」→「エクスポート」を選択します。

3. ダイアログ・ボックスで、ファイルの名前と書式を指定します。

4. 「OK」をクリックします。

注意:

レポートにはカラー・パレットは1つのみ設定できます。

関連項目

第2.4.5項「カラーとパターンの変更について」

Oracle Reportsオンライン・ヘルプのリファレンスのカラー・パレットとパターン・パレットに関する項にある、Oracle CDE1カラー・パレット、デフォルト・カラー・パレットおよびグレースケール・カラー・パレットに関するトピック

4.9.6.7 値のハイライト

レポートの値をハイライトするには:

1. ペーパー・レイアウト・ビューまたはペーパー・デザイン・ビューで、ハイライトする値を含むフィールドをクリックします。

2. 「書式」→「条件付き書式」を選択します。

3. 「条件付き書式」ダイアログ・ボックスで、「新規」をクリックして、「書式の例外」ダイアログ・ボックスを表示します。

4. フィールドを選択し、値をハイライトする条件を定義します。

5. 「書式」グループ・ボックスで、値のハイライトに使用する「塗りつぶしカラー」を選択します。

注意:

ダイアログ・ボックスで希望する条件を選択できない場合は、必要な書式とプレースホルダに対する適当な条件を選択します。条件は、作成したフォーマット・トリガーに対してPL/SQLエディタで後から編集できます。

6. 「OK」をクリックして「書式の例外」ダイアログ・ボックスを閉じ、「OK」を再度クリックして「条件付き書式」ダイアログ・ボックスを閉じます。コードがエラーなしでコンパイルされると、新しい書式がペーパー・レイアウト・ビューに反映されます。コードは、フィールドのフォーマット・トリガーとして格納されます。

例

次のコードでは、1か月の報酬を判別して、管理者ではない従業員の1か月の報酬が4,000ドルを超えるとバックグラウンド・カラーを赤に変更します。

function R_G_EMPNOFormatTrigger return boolean is varcomm number;
begin
if :comm is null then
varcomm := 0;
else
varcomm := :comm;
end if;
if (:sal * 2 + varcomm > 4000) and :job != 'MANAGER' then
srw.set_background_fill_color('red');
end if;
return (TRUE);
end;

関連項目

第2.1.6項「条件付き書式について」

第4.9.1.5項「条件付き書式のレイアウト・オブジェクトへの適用」

4.9.6.8 行のハイライト

1行全体をハイライトするには:

1. ペーパー・レイアウト・ビューで、ハイライトする行を構成するフィールドを含む繰返し枠をクリックします。

2. 「書式」→「条件付き書式」を選択します。

3. 「条件付き書式」ダイアログ・ボックスで、「新規」をクリックして、「書式の例外」ダイアログ・ボックスを表示します。

4. フィールドを選択し、ハイライトする行を説明する条件を定義します。

5. 「書式」グループ・ボックスで、行のハイライトに使用する「塗りつぶしカラー」を選択します。

注意:

ダイアログ・ボックスで希望する条件を選択できない場合は、必要な書式とプレースホルダに対する適当な条件を選択します。条件は、作成したフォーマット・トリガーに対してPL/SQLエディタで後から編集できます。

6. 「OK」をクリックして「書式の例外」ダイアログ・ボックスを閉じ、「OK」を再度クリックして「条件付き書式」ダイアログ・ボックスを閉じます。コードがエラーなしでコンパイルされると、新しい書式がペーパー・レイアウト・ビューに反映されます。コードは、繰返し枠のフォーマット・トリガーとして格納されます。

例

次のコードでは、1か月の報酬を判別して、管理者ではない従業員の1か月の報酬が4,000ドルを超えるとバックグラウンド・カラーを赤に変更します。

function R_G_EMPNOFormatTrigger return boolean is varcomm number;
begin
if :comm is null then
varcomm := 0;
else
varcomm := :comm;
end if;

if (:sal * 2 + varcomm > 4000) and :job != 'MANAGER' then
srw.set_background_fill_color('red');
end if;
return (TRUE);
end;

関連項目

第2.1.6項「条件付き書式について」

第4.9.1.5項「条件付き書式のレイアウト・オブジェクトへの適用」

4.9.6.9 行カラーの交互適用

行のテキスト・カラーまたは塗りつぶしカラーを交互に適用するには:

- 第45章「XMLプラガブル・データ・ソースを使用したレポートの作成」を参照してください。この章では、PL/SQLプロシージャとフォーマット・トリガーを使用して、行カラーを交互に適用する手順を説明しています。

4.9.7 書式マスク

この項では、書式マスクを操作する際に実行する可能性がある次のタスクの手順について説明します。

- 日付書式マスクおよび時刻書式マスクの指定

- 数値書式マスクの指定

- 数値オブジェクトへの書式マスクの適用

- 日付オブジェクトへの書式マスクの適用

- カスタム書式マスクの追加

- 複数のフィールドの書式マスクの変更

4.9.7.1 日付書式マスクおよび時刻書式マスクの指定

次の表では、日付書式マスクと時刻書式マスク、および日付書式マスクに付加できる接尾辞を説明します。

表4-2 日付書式マスクおよび時刻書式マスク

書式マスク

説明

SCCまたはCC

世紀、省略形。'S'を指定すると"BC"の場合に前に(-)が付きます。

SYYYYまたはYYYY

年。'S'を指定すると"BC"日付の場合に前に(-)が付きます。

I、IYまたはIYY

年の下1桁、2桁または3桁。

Y、YYまたはYYY

年の下1桁、2桁または3桁。

Y,YYY

年(カンマ付き)。

SYEARまたはYEAR

年、スペル表記。'S'を指定すると"BC"日付の場合に前に(-)が付きます。

RRRRまたはSRRRR

年。'S'を指定すると"BC"日付の場合に前に(-)が付きます。

RR

年の下2桁。

BC、ADまたはB.C.、A.D.

世紀記号。

Q

年の四半期(1月から3月=第1四半期)。

MM

月(数字、1月=01)。

MONTHまたはMON

月の名前または3文字の省略形。

WW、IW

1年の第何週目か。

W

週(ユリウス日)。

J

ユリウス日。BC 4712年1月1日からの日数。

DDD、DDまたはD

年、月または週の何日目か。

DAY

完全にスペル表記された曜日(MONDAYなど)。

DY

曜日の3文字の省略形(MONなど)。

AM、PMまたはA.M.、P.M.

午前と午後の記号。

HHまたはHH12

1日の時間(1から12)。

HH24

1日の時間(0から23)。

MI

分。

SS、SSSSS

1分の秒、1日の秒。

FM

日付、数字または単語の前や間にある複数の空白を1つの空白に置換する埋込みモードの切替え。

書式マスクには、次の接尾辞を付加できます。

表4-3 日付書式マスクの接尾辞

接尾辞

説明

TH

接尾辞番号("4th"に対する"DDth")。

SP

数字のスペル表記("FOUR"に対する"DDSP")。

SPTHまたはTHSP

スペル表記された接尾辞番号("FOURTH"に対する"DDSPTH")。

例

表4-4 日付書式マスクの例

日付書式の例

表示される日付

MM/DD/RR

03/04/09

DD MON RRRR

04 MAR 2009

Mon. DD, RRRR

Mar. 4, 2009

Day Month DD fmHH:MI AM

Monday March 4 11:35 AM

Dy Mon ddth fmHH24:MI:SS

Mon Mar 4th 23:35:22

Day "the" ddthsp "of" Month

Monday the fourth of March

4.9.7.2 数値書式マスクの指定

次の表では、数値書式マスクの作成で使用できるトークンを説明します。

表4-5 数値書式マスクのトークン

書式トークン

説明

0

数字を1桁出力します。

N

小数点の左側の先行ゼロまたは小数点の右側の終了ゼロではない場合、数字を1桁出力します。

*

小数点左側の先行0以外の数字の場合、1桁分の数字が印刷され、先行0の場合はアスタリスク(*)が印刷されます。小数点右側の後続0は、印刷されます。

9

小数点の左側の1桁がゼロ以外の場合に、その桁を表示します。小数点の左側の1桁がゼロの場合は、空白を表示します。小数点右側の後続0は、印刷されます。

+

正の値の場合は先行のプラス(+)記号、負の値の場合は先行のマイナス(-)記号を出力します。このトークンは、マスクより前に指定する必要があります。

-

負の値の場合は先行のマイナス(-)記号を出力し、正の値の場合は何も出力しません。このトークンは、他のトークンより前に指定する必要があります。

MI

負の値の後にマイナス(-)記号、正の値の後に空白を出力します。このトークンは、他のトークンより後に指定する必要があります。

S

負の値の場合はマイナス(-)記号、正の値の場合はプラス(+)記号をマスク内のすべてのSの位置に出力します。このトークンは、他のトークンの前または後で指定する必要があります。

PR

負の値は山カッコ(<>)、正の値は空白で囲みます。このトークンは、他のトークンより後に指定する必要があります。

( )

負の値はカッコ、正の値は空白で囲みます。カッコは、他のトークンを囲む必要があります。

DB

正の値の後に"DB"を出力します。このトークンは、他のトークンより後に指定する必要があります。

CR

負の値の後に"CR"を出力します。このトークンは、他のトークンより後に指定する必要があります。

Y

負の値の場合も正の値の場合も、符号を出力しません。

V

数値を10N乗に計算します。Nは、Vの右側の0、9、*およびSトークンの数です。

EEEE

科学表記法で数値が印刷されます。すべての数字トークンは、仮数の数字を示します。小数点の左側には、その表示、非表示にかかわらず、数字が1桁必要です。トークンEEEEは、縦座標が正または0の場合、Eの後にプラス記号(+)を印刷します。縦座標が負の場合、Eの後にマイナス記号(-)と縦座標を表す2桁の数字(E-99など)を印刷します。

"文字列"

二重引用符の間の文字列を出力します。二重引用符を文字列に含めるには、二重引用符を2つ続けて("")指定します。

. (ピリオド)

数値の整数部と小数部を区切るピリオド(.)を出力します。

D

数値の整数部と小数部を区切る、各国で使用されている小数点文字を出力します。

,(カンマ)

グループ・セパレータまたは3桁区切りとしてカンマ(,)を出力します。

G

各国で使用されているグループ・セパレータまたは3桁区切りを出力します。

$

$を出力します。

L

各国の通貨記号を出力します。

C

ISO通貨記号を出力します。

%

%を出力します。

" "

空白を出力します。(マスクに引用符を含めないでください)。

v

他のトークンにかかわらず、すべてのゼロ値に対して空白を出力します。

K

空白を出力します。

<>

10進揃え領域(書式マスク内で小数点に合せる部分)の開始と終了を指定します。山カッコは、数値が常に同じ量の領域を占めることを示します。必要に応じて、値は小数点の左または右に空白で詰められます。

RN、rn

それぞれ、ローマ数字の大文字または小文字で値を出力します。このトークンと他のトークンを同時に指定することはできません。

制限

- 数値書式マスクの場合、指定した書式マスクより実際の値が長いと、フィールドの幅にかかわらず、値はレポート出力にアスタリスクの文字列として出力されます。たとえば、固定フィールドの幅が8、値が1234567、書式マスクが<NNNNNN>の場合、*******が出力されます。

- 同様に、数値書式マスクによって値がフィールド幅より長くなった場合も、値のかわりにアスタリスクが出力されます。たとえば、固定フィールドの幅が6、値が1234、書式マスクが-99999999の場合、******が出力されます。これは、書式トークン9により、小数点左側の先行ゼロに対して空白が出力されるためです。その結果、値が長くなり、幅6のフィールドに表示できなくなります。

- 書式マスク内で符号トークンを指定しないと、正の値の前には空白、負の値の前にはマイナス(-)記号が出力されます。

- 作成した書式マスクが値リストに表示されるのは、その書式マスクが「ソース」の「データ型」に適している場合のみです。つまり、数値の書式マスクは、「ソース」が数値の場合に表示され、日付の書式マスクは、「ソース」が日付の場合に表示されます。

- ゼロに対して空白を出力する書式マスク(9など)の場合、出力が占める1ページ当たりのバイト数が増加します。

例

表4-6 数値書式マスクの例

数値書式の例

数値

表示される数値

-0000

7934

"7934"

-7934

"-7934"

-00000

7934

"07934"

-NNNN

7639

"7639"

535

"535"

-NNN

7639

"****"

-****

7902

"7902"

-*****

7902

"*7902"

+NNNN

100

"+100"

-99

"-99"

(NNNN)

1600

" 1600 "

-800

"(800)"

NNNNPR

1600

" 1600 "

-800

"<800>"

NNNNMI

1600

"1600 "

-800

"800-"

NNNVNN

343

"34300"

N.NNEEEE

7369

"7.37E+03"

"SRW"-0000

7782

"SRW7782"

-$NNNN.NN

800

"$800"

1600

"$1600"

-%NNN

10

"%10"

-NN NNN.NN

3000

"3 000"

+KKNNNNN.00

1950

"+ 1950.00"

900

"+ 900.00"

$<NNNNN.00>

1200

"$1200.00"

500

"$500.00"

$<NNNNN.00> DB

1200

"$1200.00 DB"

-500

"$500.00"

$<NNNNN.00> CR

1200

"$1200.00"

-500

"$500.00 CR"

* 引用符は出力に表示されません。ここでは、引用符は先行空白または終了空白があるかどうかを示すために使用されています。

4.9.7.3 数値オブジェクトへの書式マスクの適用

1. 書式マスクを数値オブジェクトに適用するには:

2. ペーパー・デザイン・ビューで、オブジェクトをクリックします。

ヒント:

複数のオブジェクトを選択するには、オブジェクトを1つクリックしてから[Shift]を押しながら他のすべてのオブジェクトをクリックします。すべてのオブジェクトを選択するには、「編集」→「すべて選択」を選択します。

3. 通貨の書式をオブジェクトに適用するには、ツールバーの「通貨」ボタンをクリックします。

4. パーセンテージの書式をオブジェクトに適用するには、ツールバーの「パーセント」ボタンをクリックします。

5. オブジェクトの値にカンマを付加するには、ツールバーの「カンマ」ボタンをクリックします。カンマを右または左に移動するには、「10進桁を削除」ボタンまたは「10進桁を追加」ボタンをクリックします。

6. 「ツール」→「プロパティ・インスペクタ」を選択します。

7. 「フィールド」ノードで、「書式マスク」プロパティが必要な書式に設定されていることを確認します。

8. 必要に応じて、他のプロパティを設定します。

4.9.7.4 日付オブジェクトへの書式マスクの適用

書式マスクを日付オブジェクトに適用するには:

1. ペーパー・デザイン・ビューで、オブジェクトをクリックします。

ヒント:

複数のオブジェクトを選択するには、オブジェクトを1つクリックしてから[Shift]を押しながら他のすべてのオブジェクトをクリックします。すべてのオブジェクトを選択するには、「編集」→「すべて選択」を選択します。

2. 「ツール」→「プロパティ・インスペクタ」を選択します。

3. 「フィールド」ノードで、「書式マスク」プロパティが必要な日付書式に設定されていることを確認します。

4. 必要に応じて、他のプロパティを設定します。

4.9.7.5 カスタム書式マスクの追加

デフォルトの書式マスク・リストにカスタム書式マスクを追加するには:

1. 「編集」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログ・ボックスで、「マスク編集」をクリックします。

3. 「書式マスク」ダイアログ・ボックスで、「表示」を追加する書式マスクのタイプに設定します。

4. 追加する書式マスクを「マスク」フィールドに入力し、「追加」をクリックします。

5. 「OK」をクリックします。
フィールドの「書式マスク」プロパティおよびパラメータの「入力マスク」プロパティの値リストに、新しいカスタム書式マスクが表示されます。

4.9.7.6 複数のフィールドの書式マスクの変更

複数のフィールドの書式マスクを一度に変更するには:

1. ペーパー・レイアウト・ビューで、変更するフィールドをクリックします。

2. 「ツール」→「プロパティ・インスペクタ」を選択します。

3. プロパティ・インスペクタで、「書式マスク」プロパティを新しい書式マスクに設定します。

4.9.8 グラフィック・オブジェクトまたはイメージ・オブジェクト

この項では、グラフィック・オブジェクトまたはイメージ・オブジェクトを操作する際に実行する可能性がある次のタスクの手順について説明します。

- イメージの追加

- グラフの追加

- グラフの編集

- グラフ・ハイパーリンクの追加

- 描画オブジェクトの作成

4.9.8.1 イメージの追加

イメージをレポートに追加するには、次のトピックで説明する手順を実行します。

ペーパーベースのレポートおよびJSPベースのWebレポートの場合

- 第4.8.5項「データベースからのイメージの選択」

- 第4.8.6項「データベースからのイメージURLの選択」

ペーパーベースのレポートのみ

- イメージのインポート

- イメージ・オブジェクトのファイルへのリンク

- イメージ・オブジェクトのURLへのリンク

関連項目

第2.4.3項「イメージについて」

4.9.8.1.1 イメージのインポート

注意:

この手順は、ペーパーベースのレポートに適用されます。JSPベースのWebレポートについては、後述の「使用に関する注意」を参照してください。

これらの手順を使用すると、TIFF、JFIF、BMP、TGA、PCX、PICT、GIF、CALS、RAS、OIFおよびPCDのフォーマットのイメージを含めることができます。JPEG (Progressive JPEGやExif JPEGなどのすべてのタイプ)、PNG、BMP、TIFF、GIF、CGMなど、Oracle Reportsでサポートされる他のフォーマットのイメージの詳細は、第4.9.8.1.2項「イメージ・オブジェクトのファイルへのリンク」または第4.8.5項「データベースからのイメージの選択」を参照してください。

イメージをインポートするには:

1. 「ペーパー・レイアウト」ビューで、「挿入」→「イメージ」を選択し、インポートするオブジェクトのタイプをクリックします。

2. ダイアログ・ボックスで、ファイルの名前と書式を指定します。「OK」をクリックします。

3. 目的の位置にオブジェクトを移動します。

使用に関する注意

この手順は、ペーパーベースのレポート専用です。JSPベースのWebレポートに静的イメージを含める場合は、Webソース・ビューでHTML <img>タグを追加できます。

4.9.8.1.2 イメージ・オブジェクトのファイルへのリンク

注意:

この手順は、ペーパーベースのレポートに適用されます。ファイル・リンク・オブジェクトは、JSPベースのWebレポートに実装されていません。

これらの手順および第4.8.5項「データベースからのイメージの選択」に示す手順を使用すると、JPEG (Progressive JPEGやExif JPEGなどのすべてのタイプ)、PNG、BMP、TIFF、GIF、CGMなど、Oracle Reportsでサポートされる様々なフォーマットのイメージを含めることができます。ペーパーベースのレポートでは、「挿入」→「イメージ」を使用して、TIFF、JFIF、BMP、TGA、PCX、PICT、GIF、CALS、RAS、OIFまたはPCDのフォーマットで、ファイル内のイメージをイメージ用のレポート・レイアウトにインポートすることもできます(前述の第4.9.8.1.1項「イメージのインポート」を参照)。

イメージ・オブジェクトをファイルにリンクするには:

1. ペーパー・デザイン・ビューまたはペーパー・レイアウト・ビューで、ツール・パレットの「ファイル・リンク」ツールをクリックします。

2. 四角形をクリックして、ドラッグします。

3. ファイル・リンク・オブジェクトをダブルクリックして、プロパティ・インスペクタを表示します。

4. 「ファイル・リンク・ボイラープレート」ノードで次の操作を行います。

- 「ソース・ファイルのフォーマット」プロパティを「イメージ」に設定します。

- 「ソース・ファイル名」プロパティを、イメージを含むファイルの名前に設定します。

4.9.8.1.3 イメージ・オブジェクトのURLへのリンク

注意:

この手順は、HTMLまたはHTMLCSSのファイルに生成されたペーパーベースのレポート出力に適用されます。これは、JSPベースのWebレポートを実行(ツールバーの「Webレイアウトを実行」ボタンをクリック、または「プログラム」→「Webレイアウトを実行」を選択)したときに生成されるHTMLとは関係がありません。また、ファイル・リンク・オブジェクトは、JSPベースのWebレポートに実装されていません。

これらの手順および第4.8.6項「データベースからのイメージURLの選択」に示す手順を使用すると、JPEG (Progressive JPEGやExif JPEGなどのすべてのタイプ)、PNG、BMP、TIFF、GIF、CGMなど、Oracle Reportsでサポートされる様々なフォーマットのイメージを含めることができます。ペーパーベースのレポートでは、「挿入」→「イメージ」を使用して、TIFF、JFIF、BMP、TGA、PCX、PICT、GIF、CALS、RAS、OIFまたはPCDのフォーマットで、ファイル内のイメージをイメージ用のレポート・レイアウトにインポートすることもできます(前述の第4.9.8.1.1項「イメージのインポート」を参照)。

HTMLレポートに含めるイメージを指すURLにイメージ・オブジェクトをリンクするには:

1. ペーパー・デザイン・ビューまたはペーパー・レイアウト・ビューで、ツール・パレットの「ファイル・リンク」ツールをクリックします。

2. 四角形をクリックして、ドラッグします。

3. ファイル・リンク・オブジェクトをダブルクリックして、プロパティ・インスペクタを表示します。

4. 「ファイル・リンク・ボイラープレート」ノードで次の操作を行います。

- 「ソース・ファイルのフォーマット」プロパティを「イメージURL」に設定します。

- 「ソース・ファイル名」プロパティを、必要なプロトコルによってイメージが配置されているURLに設定します。

例1: イメージURL

HTTP://www.oracle.com/images/logo.gif

例2: ユーザー・パラメータが含まれるイメージURL

HTTP://&<P_SERVER_NAME>/images/logo.gif

ここで、P_SERVER_NAMEはCHAR型のユーザー・パラメータです。

実行時に、ユーザーはこのパラメータの値を設定できます(たとえば、
P_SERVER_NAME = www.oracle.us.comの場合、URLリンクはhttp://www.oracle.us.com/images/logo.gifとなります)。

例3: ファイルへのURL

FILE://c:/images/logo.gif

注意:

ファイルを検索する際に「参照」をクリックすると、Oracle Reportsによってリターン・パスの前にFILE://が自動的に付加されます。

4.9.8.2 グラフの追加

レポートにグラフを追加するには、次のいずれかのトピックで説明する手順を実行します。

- ペーパーベースのレポートへのグラフの追加

- JSPベースのWebレポートへのグラフの追加

使用に関する注意

グループ別マトリックス・レポートのペーパー・デザイン・ビューで、各グループの位置に1つずつグラフを挿入すると、Oracle Reports Builderの障害が発生します。これに対処するには、グループ別マトリックス・レポートにグラフを追加する際に、ペーパー・デザイン・ビューではなく、ペーパー・レイアウト・ビューでグラフを挿入してください。

関連項目

第1.6.6項「Webソース・ビューについて」

第39章 グラフを使用したレポートの作成

4.9.8.2.1 ペーパーベースのレポートへのグラフの追加

ペーパーベースのレポートにグラフを追加するには:

1. ペーパー・レイアウト・ビューで、ツール・パレットの「グラフ」ツールをクリックします。

2. グラフを表示する領域で四角形をドラッグし、グラフ・ウィザードを表示します。

3. グラフ・ウィザードで、グラフの情報を指定します。操作方法がわからない場合にはウィザード・ページの「ヘルプ」をクリックしてください。

注意:

グラフ・ウィザードでグラフのタイトル、サブタイトル、脚注または軸タイトルを指定する場合、字句参照を(ユーザー・パラメータ、システム・パラメータおよび列に対して)テキストに挿入することができます。たとえば、グラフ・ウィザードの「タイトル」ページにあるタイトルの表示フィールドで、titletext &<P_1>と入力すると、実行時にユーザー・パラメータP_1の値がタイトルのテキストに挿入されます。パラメータまたは列名は、山カッコ(<>)で囲む必要があります。

4. 作成したグラフ・オブジェクトをダブルクリックしてプロパティ・インスペクタを表示し、必要に応じてプロパティを設定します。
グラフ・ウィザードでは指定できない部分に関してグラフのXML定義をカスタマイズするには、グラフの「グラフ設定」プロパティでXMLを直接編集できます。使用できる全属性のリストは、DTDファイルgraph.dtdにあります。

注意:

graph.dtdは次の場所にあります。

- ORACLE_HOME\jlib\bigraphbean.jar

- Oracle Technology Network (OTN)のGetting Started with Oracle Reports: Oracle Reports製品ページ(http://www.oracle.com/technology/products/reports/index.html)で、「Getting Started」をクリックし、「Getting Started with Oracle Reports」ホーム・ページを表示します。左側にあるトピックのリストの中から「Index」をクリックします。「Collateral Type」リストで「Documentation」を選択し、「Search」をクリックします。表示されたリストの中から「Documented Graph DTD」を探します。

5. グラフ・ウィザードを再実行するには、次のいずれかの操作を行います。

- グラフを右クリックして「グラフ・ウィザード」を選択します。

- グラフをクリックし、「編集」→「設定」を選択します。

4.9.8.2.2 JSPベースのWebレポートへのグラフの追加

JSPベースのWebレポートにグラフを追加するには:

1. オブジェクト・ナビゲータで、「Webソース」ノードの横にあるビュー・アイコンをダブルクリックして、Webソース・ビューにソース・コードを表示します。

2. ソース・コード内で、グラフを追加する位置を定めます。

注意:

「Place the graph here(ここにグラフを配置)」といったテキストをあらかじめWebページに追加しておくと、グラフの正しい位置が簡単に見つかります。

3. 「挿入」→「グラフ」を選択します。

4. グラフ・ウィザードで、グラフの情報を指定します。操作方法がわからない場合にはタブ・ページの「ヘルプ」をクリックしてください。

注意:

グラフ・ウィザードでグラフのタイトル、サブタイトル、脚注または軸タイトルを指定する場合、字句参照を(ユーザー・パラメータ、システム・パラメータおよび列に対して)テキストに挿入することができます。たとえば、グラフ・ウィザードの「タイトル」ページにあるタイトルの表示フィールドで、titletext &<P_1>と入力すると、実行時にユーザー・パラメータP_1の値がタイトルのテキストに挿入されます。パラメータまたは列名は、山カッコ(<>)で囲む必要があります。

5. ツールバーの「Webレイアウトを実行」ボタンをクリックして(または、「プログラム」→「Webレイアウトを実行」を選択して)、Webブラウザのレポートおよびグラフを表示します。

注意:

デフォルトのブラウザとしてNetscape 7.0を使用し、ブラウザにレポートが表示されない場合は、レジストリ・キーHKEY_CURRENT_USERS\Software\Oracle\Toolkit\Tkbrowserをブラウザのデフォルトの場所に設定します。BrowserNameおよびBrowserPathのキーに正しい値が指定されていることを確認してください。たとえば、BrowserName=Netscape 7、BrowserPath=C:\Program Files\Netscape\Netscape\Netscp.exeになります。

6. グラフ・ウィザードを再表示するには、Webソース・ビューで、<rw:graph>タグと</rw:graph>タグの間の任意の位置にカーソルを置き、「編集」→「設定」を選択します。
グラフ・ウィザードでは指定できない部分に関してグラフのXML定義をカスタマイズするには、Webソース・ビューでXMLを直接編集できます。使用できる全属性のリストは、DTDファイルgraph.dtdにあります。

注意:

graph.dtdは次の場所にあります。

- ORACLE_HOME\jlib\bigraphbean.jar

- Oracle Technology Network (OTN)のGetting Started with Oracle Reports: Oracle Reports製品ページ(http://www.oracle.com/technology/products/reports/index.html)で、「Getting Started」をクリックし、「Getting Started with Oracle Reports」ホーム・ページを表示します。左側にあるトピックのリストの中から「Index」をクリックします。「Collateral Type」リストで「Documentation」を選択し、「Search」をクリックします。表示されたリストの中から「Documented Graph DTD」を探します。

4.9.8.3 グラフの編集

レポートにグラフを追加するには、次のいずれかのトピックで説明する手順を実行します。

- ペーパーベースのレポートのグラフの編集

- JSPベースのWebレポートのグラフの編集

関連項目

第1.4.4項「グラフおよびグラフ・ウィザードについて」

第1.6.6項「Webソース・ビューについて」

4.9.8.3.1 ペーパーベースのレポートのグラフの編集

ペーパーベースのレポートのグラフを編集するには:

1. ペーパー・レイアウト・ビューで、グラフをクリックします。

注意:

グラフは、別のタイプであっても、棒グラフとして表示されます。

2. グラフのXML定義を編集するには:

- グラフを右クリックして、「プロパティ・インスペクタ」を選択します。

- プロパティ・インスペクタの「グラフ」ノードで、「グラフ設定」プロパティの値フィールドをクリックし、「グラフ設定」ダイアログ・ボックスを表示します。グラフ・ウィザードでは指定できない部分に関してグラフのXML定義をカスタマイズするには、さらにrw:graphタグ属性を指定します。使用できる全属性のリストは、DTDファイルgraph.dtdにあります。

注意:

graph.dtdは次の場所にあります。

- ORACLE_HOME\jlib\bigraphbean.jar

- Oracle Technology Network (OTN)のGetting Started with Oracle Reports: Oracle Reports製品ページ(http://www.oracle.com/technology/products/reports/index.html)で、「Getting Started」をクリックし、「Getting Started with Oracle Reports」ホーム・ページを表示します。左側にあるトピックのリストの中から「Index」をクリックします。「Collateral Type」リストで「Documentation」を選択し、「Search」をクリックします。表示されたリストの中から「Documented Graph DTD」を探します。

3. グラフ・ウィザードを再実行してグラフを再定義するには、次のいずれかの操作を行います。

- グラフを右クリックして「グラフ・ウィザード」を選択します。

- グラフをクリックし、「編集」→「設定」を選択します。

4.9.8.3.2 JSPベースのWebレポートのグラフの編集

JSPベースのWebレポートのグラフを編集するには、Webソース・ビューで次のいずれかの操作を行います。

- カーソルを<rw:graph>タグと</rw:graph>タグの間の任意の位置に置き、「編集」→「設定」を選択してグラフ・ウィザードを再度表示します。

注意:

「終了」をクリックすると、グラフのXMLに対して手動で加えた変更や追加は失われ、グラフはグラフ・ウィザードの定義に戻ります。

- 次の手順に従って、グラフを削除して再作成します。

1. <rw:graph>タグから</rw:graph>タグまでのすべての行を削除します。

2. グラフを切り取った位置にカーソルを置いたまま、「挿入」→「グラフ」を選択し、グラフ・ウィザードに従ってグラフを再作成します。

- グラフを定義している<rw:graph>タグと</rw:graph>タグの間で、JSPタグおよびXMLタグを直接変更します。これにより、グラフ・ウィザードでは指定できない部分に関してグラフのXML定義をカスタマイズできます。使用できる全属性のリストは、DTDファイルgraph.dtdにあります。

注意:

graph.dtdは次の場所にあります。

- ORACLE_HOME\jlib\bigraphbean.jar

- Oracle Technology Network (OTN)のGetting Started with Oracle Reports: Oracle Reports製品ページ(http://www.oracle.com/technology/products/reports/index.html)で、「Getting Started」をクリックし、「Getting Started with Oracle Reports」ホーム・ページを表示します。左側にあるトピックのリストの中から「Index」をクリックします。「Collateral Type」リストで「Documentation」を選択し、「Search」をクリックします。表示されたリストの中から「Documented Graph DTD」を探します。

4.9.8.4 グラフ・ハイパーリンクの追加

ペーパーベースのWebレポート(PDFまたはHTMLへの出力)またはJSPベースのWebレポートでは、グラフにグラフ・ハイパーリンクを追加できます。エンド・ユーザーは、Webにレポートを表示してグラフの領域をクリックすると、リンクされている追加情報にドリルダウンできます。

グラフにグラフ・ハイパーリンクを追加するには、次のいずれかのトピックで説明する手順を実行します。

- ペーパーベースのレポートへのグラフ・ハイパーリンクの追加

- JSPベースのWebレポートへのグラフ・ハイパーリンクの追加

関連項目

第2.2.6項「グラフ・ハイパーリンクについて」

第1.4.4項「グラフおよびグラフ・ウィザードについて」

第1.6.6項「Webソース・ビューについて」

4.9.8.4.1 ペーパーベースのレポートへのグラフ・ハイパーリンクの追加

ペーパーベースのWebレポート(HTMLまたはPDF出力)では、次のいずれかを使用して、グラフにグラフ・ハイパーリンクを追加できます。

- プロパティ・インスペクタ

- グラフ・ウィザード

プロパティ・インスペクタを使用して、ペーパーベースのレポートにグラフ・ハイパーリンクを指定するには:

1. ペーパー・レイアウト・ビューで、グラフのプロパティ・インスペクタを表示します。

2. 「グラフ・ハイパーリンク」プロパティを、任意のグラフ・セクションからレポート出力にある任意のオブジェクト、別のレポートまたは有効なハイパーリンクの宛先へのハイパーリンクに設定します。
例:

- グラフ・セクションからレポートのオブジェクトへのハイパーリンク
#&<dept_id>

- 別のレポートへのハイパーリンク
http://my_machine:8888/reports/myWebApp/Dept_Detail.jsp? p_deptid=&<deptid>+...

- 有効なハイパーリンクの宛先へのハイパーリンク
www.oracle.com

グラフ・ウィザードを使用して、ペーパーベースのレポートにグラフ・ハイパーリンクを指定するには:

1. ハイパーリンクの定義パネルで、パネルに表示された例を使用して、指定した宛先にグラフの領域をリンクするハイパーリンク値を入力します。

2. 「終了」をクリックします。

グラフ・ハイパーリンクを定義したら、HTML、HTMLCSSまたはPDFの出力のレポートを生成して、グラフ・ハイパーリンクをテストします。第4.7.5項「HTMLまたはHTMLCSS出力の生成」および第4.7.6項「PDF出力の生成」を参照してください。

4.9.8.4.2 JSPベースのWebレポートへのグラフ・ハイパーリンクの追加

JSPベースのWebレポートにあるグラフにグラフ・ハイパーリンクを追加するには:

- レポートのWebソース・ビューで、<rw:graph> JSPタグを編集してgraphHyperlink属性を追加します。
次に例を示します。

graphHyperlink="http://my_machine:8888/reports/myWebApp/Dept_Detail.jsp? userid=hr/hr@mydb+server=myserver+p_deptno=&<deptno>"

グラフ・ハイパーリンクを定義したら、ツールバーの「Webレイアウトを実行」ボタンをクリックして(または「プログラム」→「Webレイアウトを実行」を選択)Webブラウザにレポートとグラフを表示し、グラフ・ハイパーリンクをクリックしてテストします。

4.9.8.5 描画オブジェクトの作成

描画オブジェクトを作成するには:

1. ペーパー・レイアウト・ビューで、ツール・パレットの描画ツール(四角形、楕円、折れ線など)をクリックします。

2. 線、丸い四角形、四角形、楕円、円弧または手書きオブジェクトを作成するには、ウィンドウのメイン領域(キャンバス領域)をクリックし、ドラッグしてオブジェクトを作成します。

3. 多角形または折れ線を作成するには、ウィンドウのメイン領域(キャンバス領域)でオブジェクトの各ポイントをクリックし、ダブルクリックしてオブジェクトを作成します。

4. 制限オブジェクト(真円や正方形など)を描画するには、制約キー([Shift]キーなど)を押しながらグラフィックを描画します。

5. 描画オブジェクトをダブルクリックします。

6. プロパティ・インスペクタで、必要なプロパティを設定します。

4.9.9 ページまたはグループのヘッダーとフッター

この項では、ページまたはグループのヘッダーとフッターを操作する際に実行する可能性がある次のタスクの手順について説明します。

- テキスト・ヘッダーの作成

- データベース値を含むヘッダーの作成

- グループのヘッダーまたはフッターの作成

4.9.9.1 テキスト・ヘッダーの作成

レポートのマージンにオブジェクトまたはヘッダーを作成するには:

1. ペーパー・レイアウト・ビューで、ツールバーの「マージン編集」ボタンをクリックします。

注意:

マージン領域は、本体と分離する黒の太線で定義されています。マージン領域を表示しながらレポートの本体部分にオブジェクトを作成すると、それらのオブジェクトはマージンが表示されているときにのみ編集できます。

2. マージンを調整するには、マージンの境界線をクリックし、ハンドルを必要な位置までドラッグします。マージンは、レポートの4つの辺すべてで調整できます。

3. マージン領域で、必要なオブジェクトを作成します。オブジェクトは、レポートのすべてのページに表示されます。

4. ツールバーの「ヘッダー・セクション」ボタン、「メイン・セクション」ボタンまたは「トレーラ・セクション」ボタンをクリックして、レポートの本体領域の該当するセクションを再度アクティブ化します。

4.9.9.2 データベース値を含むヘッダーの作成

データベース値を含むヘッダーを作成するには:

1. 「ツール」→「レポート・ウィザード」を選択して、現行のレポートに対してレポート・ウィザードを再表示します。

2. 「合計」ページで、ヘッダーに含める任意の合計を作成します。

注意:

レポートのマージン領域に配置する合計は、いずれもレポートレベルの合計であることが必要です。グループ合計(部門合計など)をマージンに配置すると、レポートの実行時に頻繁にエラーが発生します。

3. 「フィールド」ページで、ヘッダーに含めるフィールドと合計がレポートで選択可能であるか、または表示されていることを確認します。

4. ペーパー・レイアウト・ビューで、ツールバーの「マージン」ボタンをクリックします。

注意:

マージン領域は、本体と分離する黒の太線で定義されています。マージン領域を表示しながらレポートの本体部分にオブジェクトを作成すると、それらのオブジェクトはマージンが表示されているときにのみ編集できます。

5. 書式マスクが必要な値について、マージン領域内で非表示のフィールド・オブジェクトを作成します(第4.9.1.1項「フィールド・オブジェクトの作成」を参照)。

- プロパティ・インスペクタの「フィールド」ノードで、「ソース」プロパティを値のソース列に設定し、「可視」プロパティを「いいえ」に設定します。さらに、必要に応じて「書式マスク」プロパティを設定します。

- 「標準レイアウト」ノードで、「水平拡張度」プロパティを「可変」に設定します。

注意:

書式マスクを指定する必要がない場合は、手順6で値を直接参照できます。この非表示のフィールドを作成する必要はありません。

6. マージン領域にボイラープレート・テキスト・オブジェクトを作成し、ヘッダーに含めるフィールドまたはレポートレベルの合計を参照します。第4.9.2.1項「テキストのボイラープレート・オブジェクトの作成」および第4.9.2.5項「ボイラープレート・テキスト内でのフィールドの参照」を参照してください。

関連項目

第17章「データベース値を使用したヘッダー付レポートの作成」のサンプル・レポート

4.9.9.3 グループのヘッダーまたはフッターの作成

レコードの各グループの上または下にヘッダーやフッターを作成するには:

1. ペーパー・レイアウト・ビューで、ツールバーの「制限オフ」ボタンと「フレックス・オン」ボタンをクリックします。

2. ヘッダーまたはフッターを加えるグループの繰返し枠を囲む枠をクリックし、その枠をドラッグしてサイズを変更し、ヘッダーまたはフッターのテキストを入力できる大きさにします。

ヒント:

オブジェクト・ナビゲータの「ペーパー・レイアウト」ノードで、「ボディ」ノードを開いて枠を名前で選択できます。

3. ヘッダーまたはフッターのテキストのボイラープレート・テキスト・オブジェクトを作成します(第4.9.2.1項「テキストのボイラープレート・オブジェクトの作成」を参照)。

4.9.10 マージン・オブジェクト、ヘッダー・ページ・オブジェクトまたはトレーラ・ページ・オブジェクト

この項では、マージン・オブジェクト、ヘッダー・ページ・オブジェクトまたはトレーラ・ページ・オブジェクトを操作する際に実行する可能性がある次のタスクの手順について説明します。

- マージン・オブジェクトの作成

- ヘッダー・ページ・オブジェクトまたはトレーラ・ページ・オブジェクトの作成

4.9.10.1 マージン・オブジェクトの作成

レポートのマージンにオブジェクトまたはヘッダーを作成するには:

1. ペーパー・レイアウト・ビューで、ツールバーの「マージン編集」ボタンをクリックします。

注意:

マージン領域は、本体と分離する黒の太線で定義されています。マージン領域を表示しながらレポートの本体部分にオブジェクトを作成すると、それらのオブジェクトはマージンが表示されているときにのみ編集できます。

2. マージンを調整するには、マージンの境界線をクリックし、ハンドルを必要な位置までドラッグします。マージンは、レポートの4つの辺すべてで調整できます。

3. マージン領域で、必要なオブジェクトを作成します。オブジェクトは、レポートのすべてのページに表示されます。

4. ツールバーの「ヘッダー・セクション」ボタン、「メイン・セクション」ボタンまたは「トレーラ・セクション」ボタンをクリックして、レポートの本体領域の該当するセクションを再度アクティブ化します。

4.9.10.2 ヘッダー・ページ・オブジェクトまたはトレーラ・ページ・オブジェクトの作成

レポートをセクションに区分している場合、ヘッダー・ページとトレーラ・ページは本体ページと同じです。つまり、ヘッダー、トレーラおよび本体は、レポートの3つのセクションです。セクションの名前は、オブジェクト・ナビゲータの「ペーパー・デザイン」ノードで、「ヘッダー・セクション」、「メイン・セクション」および「トレーラ・セクション」として表示されます。ヘッダー・セクションとトレーラ・セクションのマージンと本体を使用して、Oracle Reportsの以前のリリースと同様に、ヘッダー・ページとトレーラ・ページを作成できます。

1. ペーパー・レイアウト・ビューで、ツールバーの「制限オフ」ボタンと「フレックス・オン」ボタンをクリックします。

2. ページの繰返し枠をクリックし、その枠をドラッグしてサイズを変更し、ヘッダーまたはフッターのテキストを入力できる大きさにします。

ヒント:

オブジェクト・ナビゲータの「ペーパー・レイアウト」ノードで、「ボディ」ノードを開いて枠を名前で選択できます。

3. ヘッダーまたはフッターのテキストのボイラープレート・テキスト・オブジェクトを作成します。

4.9.11 オブジェクトの移動

この項では、レポート・オブジェクトを移動する際に実行する可能性がある次のタスクの手順について説明します。

- 複数オブジェクトの移動

- オブジェクトの親の外への移動

- 親の境界線の自動調整

- レポート出力の列の移動

- グループ・レポートのディテール・オブジェクトのオフセット

- オブジェクトの整列

- オブジェクトのレイヤーの変更

- ボイラープレート・オブジェクトの回転

4.9.11.1 複数オブジェクトの移動

複数オブジェクトを移動するには:

1. 移動するオブジェクトのまわりのボックスをクリックまたはドラッグします。

ヒント:

複数のオブジェクトを選択するには、オブジェクトを1つクリックしてから[Shift]を押しながら他のすべてのオブジェクトをクリックします。すべてのオブジェクトを選択するには、「編集」→「すべて選択」を選択します。

2. キーボードの矢印キーを使用して、オブジェクトを必要な方向に移動します。

関連項目

第2.4.7項「ペーパー・レイアウト・ビューでのオブジェクトの移動とレイヤーについて」

4.9.11.2 オブジェクトの親の外への移動

子オブジェクトを、それを囲む親オブジェクトの外に移動するには:

1. ペーパー・レイアウト・ビューまたはペーパー・デザイン・ビューで、ツールバーの「制限オフ」ボタンをクリックします。

2. 必要に応じて、子オブジェクトをクリックしてドラッグします。

ヒント:

複数のオブジェクトを選択するには、オブジェクトを1つクリックしてから[Shift]を押しながら他のすべてのオブジェクトをクリックします。すべてのオブジェクトを選択するには、「編集」→「すべて選択」を選択します。

関連項目

第2.4.7項「ペーパー・レイアウト・ビューでのオブジェクトの移動とレイヤーについて」

4.9.11.3 親の境界線の自動調整

子オブジェクトの移動に伴って親の境界線を調整するには:

1. ペーパー・レイアウト・ビューで、ツールバーの「フレックス・オン」ボタンをクリックします。

2. 必要に応じて、子オブジェクトをクリックしてドラッグします。

ヒント:

複数のオブジェクトを選択するには、オブジェクトを1つクリックしてから[Shift]を押しながら他のすべてのオブジェクトをクリックします。すべてのオブジェクトを選択するには、「編集」→「すべて選択」を選択します。

3. 水平または垂直方向に他のオブジェクトと揃っているオブジェクト(フィールドとそのラベルなど)を移動するには、[Ctrl]キーを押しながら最初のオブジェクトをドラッグします。両方のオブジェクトを同時に移動する場合、[Ctrl]キーは使用しません。

関連項目

第2.4.6項「オブジェクトのサイズ変更について」

4.9.11.4 レポート出力の列の移動

レポート出力の列を移動するには:

1. ペーパー・レイアウト・ビューまたはペーパー・デザイン・ビューで、列をクリックします。

2. ツールバーの「フレックス・オン」ボタンをクリックします。

3. 列を目的の位置までドラッグします。

関連項目

第2.4.7項「ペーパー・レイアウト・ビューでのオブジェクトの移動とレイヤーについて」

第4.9.13.1項「列のラベルまたは幅の変更」

第4.9.13.3項「デフォルトのレイアウト間隔の変更」

4.9.11.5 グループ・レポートのディテール・オブジェクトのオフセット

グループ上レポートまたはグループ左レポートのディテール・フィールドをオフセットするには:

1. ペーパー・デザイン・ビューで、ツールバーの「フレックス・オン」ボタンをクリックします。

2. ディテール・オブジェクトを選択して右に移動します。

3. ツールバーの「フレックス・オフ」ボタンをクリックします。

関連項目

第1.3.2項「グループ上レポートについて」

第1.3.3項「グループ左レポートについて」

4.9.11.6 オブジェクトの整列

オブジェクトを整列するには:

1. 整列するオブジェクトをクリックします。

ヒント:

複数のオブジェクトを選択するには、オブジェクトを1つクリックしてから[Shift]を押しながら他のすべてのオブジェクトをクリックします。すべてのオブジェクトを選択するには、「編集」→「すべて選択」を選択します。

2. 「レイアウト」→「整列」を選択します。

3. 「オブジェクト整列」ダイアログ・ボックスで、必要な整列方法を指定します。

4. 「OK」をクリックします。

関連項目

第2.4.7項「ペーパー・レイアウト・ビューでのオブジェクトの移動とレイヤーについて」

4.9.11.7 オブジェクトのレイヤーの変更

オブジェクトの互いのレイヤー順序を変更するには:

1. ペーパー・レイアウト・ビューで、ツールバーの「制限オフ」ボタンをクリックします。

2. 移動するオブジェクトをクリックします。

3. 「配置」メニューから、次のいずれか1つの項目を選択します。

- 最前面へ移動: オブジェクトを他のすべてのオブジェクトの前に移動します。

- 最背面へ移動: オブジェクトを他のすべてのオブジェクトの後ろに移動します。

- 前面へ: オブジェクトをすぐ上のオブジェクトの前に移動します。

- 背面へ: オブジェクトをすぐ下のオブジェクトの後ろに移動します。

関連項目

第2.4.7項「ペーパー・レイアウト・ビューでのオブジェクトの移動とレイヤーについて」

4.9.11.8 ボイラープレート・オブジェクトの回転

回転できるのは、ボイラープレート・テキストとボイラープレート・グラフィックのみです。他のレイアウト・オブジェクト(繰返し枠またはフィールド)を回転することはできません。

ボイラープレート・オブジェクトを回転するには:

1. 回転するオブジェクトをクリックします。

ヒント:

複数のオブジェクトを選択するには、オブジェクトを1つクリックしてから[Shift]を押しながら他のすべてのオブジェクトをクリックします。すべてのオブジェクトを選択するには、「編集」→「すべて選択」を選択します。

2. ツール・パレットの「回転」ツールをクリックします。

3. ハンドルをドラッグして、オブジェクトまたはグループを回転します。

関連項目

第1.8.5項「ボイラープレート・オブジェクトについて」

4.9.12 オブジェクトのサイズ変更

この項では、レポート・オブジェクトのサイズを変更する際に実行する可能性がある次のタスクの手順について説明します。

- オブジェクトのサイズ変更

- 複数オブジェクトの同一サイズ化

- オブジェクトの境界線のサイズ変更

4.9.12.1 オブジェクトのサイズ変更

1つ以上のオブジェクトをサイズ変更するには:

1. サイズ変更するオブジェクトをクリックします。

ヒント:

複数のオブジェクトを選択するには、オブジェクトを1つクリックしてから[Shift]を押しながら他のすべてのオブジェクトをクリックします。すべてのオブジェクトを選択するには、「編集」→「すべて選択」を選択します。

2. 次のようにサイズを設定します。

- 固定サイズの場合は、選択したオブジェクトの1つのハンドルをドラッグします。選択したすべてのオブジェクトのサイズが変わります。

- または、「ツール」→「プロパティ・インスペクタ」を選択します。プロパティ・インスペクタの「標準レイアウト」ノードで、「垂直拡張度」プロパティと「水平拡張度」プロパティを「縮小」、「拡張」、「固定」または「可変」に設定します。

関連項目

第2.4.6項「オブジェクトのサイズ変更について」

第1.8.3項「枠と繰返し枠のサイズ変更について」

4.9.12.2 複数オブジェクトの同一サイズ化

複数オブジェクトを同じサイズにするには:

1. サイズを指定するオブジェクトをクリックします。

ヒント:

複数のオブジェクトを選択するには、オブジェクトを1つクリックしてから[Shift]を押しながら他のすべてのオブジェクトをクリックします。すべてのオブジェクトを選択するには、「編集」→「すべて選択」を選択します。

2. 「レイアウト」→「オブジェクト・サイズ設定」を選択します。

3. 「オブジェクト・サイズ設定」ダイアログ・ボックスで、必要な設定を指定します。「OK」をクリックします。

4.9.12.3 オブジェクトの境界線のサイズ変更

第4.9.11.3項「親の境界線の自動調整」を参照してください。

4.9.13 間隔の変更

この項では、レポート・オブジェクトの間隔を変更する際に実行する可能性がある次のタスクの手順について説明します。

- 列のラベルまたは幅の変更

- テキスト・オブジェクト内の間隔の変更

- デフォルトのレイアウト間隔の変更

- すべての行の間の間隔の変更

- 行のグループ間への空白行の追加

4.9.13.1 列のラベルまたは幅の変更

列のラベルまたは幅を変更するには:

1. 「ツール」→「レポート・ウィザード」を選択します。

2. レポート・ウィザードで、「ラベル」タブをクリックします。

3. 必要に応じて、「ラベル」列および「幅」列の値を変更します。

4. 「適用」をクリックします。

関連項目

第4.9.11.4項「レポート出力の列の移動」

4.9.13.2 テキスト・オブジェクト内の間隔の変更

テキスト・オブジェクト内の間隔を変更するには:

1. ペーパー・デザイン・ビューで、オブジェクトをクリックします。

ヒント:

複数のオブジェクトを選択するには、オブジェクトを1つクリックしてから[Shift]を押しながら他のすべてのオブジェクトをクリックします。すべてのオブジェクトを選択するには、「編集」→「すべて選択」を選択します。

2. 「書式」→「テキスト間隔」を選択して、テキスト・オブジェクトに必要な間隔を選択します。

4.9.13.3 デフォルトのレイアウト間隔の変更

デフォルトのレポート・レイアウトの場合に、レポート・ウィザードで使用されるデフォルトのレイアウト間隔を変更するには:

1. 「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログ・ボックスで、「ウィザード」タブをクリックします。

3. オブジェクトとそれを囲むオブジェクトの間の間隔を広げるには、「水平差」および「垂直差」に、より大きい値を入力します。

4. フィールド間の間隔を広げるには、「水平中間フィールド」および「垂直中間フィールド」に、より大きい値を入力します。

5. 「OK」をクリックして、「プリファレンス」ダイアログ・ボックスを閉じます。

6. フィールド間の間隔を狭くする場合は、「表示」→「グリッド指定」を選択し、この設定をオフ(チェックマークなし)に切り替えます。「グリッド指定」を選択すると、デフォルトのレイアウトではレイアウト間隔値が有効ですが、最も近いグリッド点にスナップされます。そのため、これらの値を少し変更しても、レポート出力では違いが明確にならない場合があります。

関連項目

第4.9.11.4項「レポート出力の列の移動」

4.9.13.4 すべての行の間の間隔の変更

ペーパー・デザイン・ビューを使用してすべての行の間の間隔を変更するには:

1. ペーパー・デザイン・ビューで、2番目のレコードをクリックします。

2. 2番目のレコードを下にドラッグし、レポート出力のすべての行の間に必要な間隔を作成します。

プロパティ・インスペクタを使用してすべての行の間の間隔を変更するには:

1. ペーパー・デザイン・ビューで、レポート本体の任意のフィールドをクリックします。

2. ツールバーの「親枠を選択」ボタンをクリックします。

3. 「ツール」→「プロパティ・インスペクタ」を選択します。

4. 「繰返し枠」ノードで、「枠間の垂直間隔」プロパティ(インチ指定)をレポート出力の行間の空白の量(0.25など)に設定します。

4.9.13.5 行のグループ間への空白行の追加

行のグループ間に空白行を追加するには:

1. サマリー列を作成します(第4.8.11項「サマリー列の作成」を参照)。データ・ウィザード(またはレポート・ウィザード)の「合計」ページで、出力の各行に表示される任意のフィールドを選択し、計算として「カウント」を選択します。「フィールド」ページで、表示されるフィールド列からサマリーを削除します。

2. SPACEという名前のユーザー・パラメータを作成します(第4.11.2項「ユーザー・パラメータの作成」を参照)。プロパティ・インスペクタの「パラメータ」ノードで、「データ型」プロパティを「Number」、「初期値」プロパティを各グループ内のレコード数(5など)に設定します。

3. ペーパー・レイアウト・ビューで、ツールバーの「フレックス・オン」ボタンおよび「制限オフ」ボタンをクリックします。

4. グループの繰返し枠をクリックし、枠の下部のハンドルをドラッグして、レポート出力の行のグループ間に追加するスペースより少し大きいスペースを作成します。

5. 「ツール」→「プロパティ・インスペクタ」を選択して、繰返し枠に対するプロパティ・インスペクタを表示します。

6. 「標準レイアウト」ノードで、「垂直拡張度」プロパティを「可変」に設定します。

7. ツール・パレットの「四角形」ツールをクリックします。

8. レコードの下のスペースに四角形を描画します。

9. 四角形オブジェクトをダブルクリックします。

10. プロパティ・インスペクタの「拡張レイアウト」ノードで、「フォーマット・トリガー」プロパティの値をダブルクリックし、PL/SQLエディタを表示します。

11. PL/SQLエディタで、フォーマット・トリガーのPL/SQLを定義します。たとえば、次のPL/SQLコードでは、行のグループ間に空白を挿入します(行カウントをSPACEの値で除算すると余りがない場合、ボイラープレート四角形が表示されます)。

function spacing return BOOLEAN is
begin
if :CountENAMEPerReport MOD :SPACE = 0 then
return (true);
else
return (false);
end if;
end;

12. 四角形オブジェクトを非表示にするには、次の操作を行います。

- 「塗りつぶしカラー」パレットで、塗りなしをクリックします。

- 「線カラー」パレットで、枠なしをクリックします。

4.9.14 ページ・レイアウトの変更

この項では、レポートのページ・レイアウトを変更する際に実行する可能性がある次のタスクの手順について説明します。

- マージンの調整

- 改ページの追加

4.9.14.1 マージンの調整

マージンを調整するには:

1. ペーパー・レイアウト・ビューで、ツールバーの「マージン編集」ボタンをクリックします。

注意:

マージン領域は、本体と分離する黒の太線で定義されています。マージン領域を表示しながらレポートの本体部分にオブジェクトを作成すると、それらのオブジェクトはマージンが表示されているときにのみ編集できます。

2. マージンの境界線をクリックし、ハンドルを必要な位置までドラッグします。マージンは、レポートの4つの辺すべてで調整できます。

4.9.14.2 改ページの追加

改ページを追加するには:

1. ペーパー・レイアウト・ビューで、改ページを挿入する枠の一部である任意のフィールドをクリックします。

2. ツールバーの「親枠」をクリックします。

3. 「ツール」→「プロパティ・インスペクタ」を選択します。

4. 改ページを設定するには、次の操作を行います。

- 選択した枠の前:「標準レイアウト」ノードで、「前で改ページ」プロパティを「はい」に設定します。

- 選択した枠の後:「標準レイアウト」ノードで、「後で改ページ」プロパティを「はい」に設定します。

- 各出力ページの一定の行数の後:「繰返し枠」ノードで、「ページ当たりの最大レコード数」プロパティを各ページに表示する行数に設定します。

5. 改ページが設定された場所を示すアイコンを表示するには、「ペーパー・レイアウト」ビューで「表示」→「ページ・ブレーク」を選択します。

使用に関する注意

レポート出力の特定の行に改ページを設定するには、特定の行でのみフォーマットする非表示のオブジェクト(「塗りなし」および「枠なし」の四角形など)を作成する方法もあります。その四角形のオブジェクトの「前で改ページ」プロパティを「はい」に設定すると、その行の後に改ページが挿入されます。

4.10 レポート・セクションの操作

この項では、レポート・セクションを操作する際に実行する可能性がある次のタスクの手順について説明します。

- セクションのレイアウト・ビューの表示

- セクションのデフォルト・レイアウトの作成

関連項目

第2.1.2項「レポートのセクション分割と各セクションについて」

4.10.1 セクションのレイアウト・ビューの表示

レポート・セクションのレイアウト・ビューを表示するには:

- ペーパー・レイアウト・ビューで、次のいずれかの操作を行います。

- 「表示」→「レイアウト・セクション」を選択し、表示するセクションを選択して、マージン領域を表示または編集するかどうかをチェックします。

- ツールバーの「ヘッダー・セクション」ボタン、「メイン・セクション」ボタンまたは「トレーラ・セクション」ボタンをクリックして、ヘッダー・セクション、メイン・セクションまたはトレーラ・セクションを表示します。「マージン編集」ボタンをクリックして、マージン領域を表示または編集します。

4.10.2 セクションのデフォルト・レイアウトの作成

レポート・セクションのデフォルト・レイアウトを作成するには:

1. ペーパー・レイアウト・ビューで、セクションのレイアウト・ビューを表示します。

2. 「ツール」→「レポート・ウィザード」を選択します。

3. ウィザードに従って、レポートのデフォルト・レイアウトを作成します。

4. セクションのマージン領域でレイアウトまたはオブジェクトを作成するには、ツールバーの「マージン編集」ボタンをクリックしてマージン領域を表示または編集します。

5. 現行のレイアウトに別のレイアウト・セクションを追加するには、レポート・レイアウトをもう1つ作成します(第4.5.5項「追加のレポート・レイアウトの作成」を参照)。

6. ペーパー・レイアウト・ビューで、デフォルト・レイアウトを手動でさらに変更します。

注意:

ペーパー・レイアウト・ビューまたはペーパー・デザイン・ビューでレイアウトを手動で変更した後、レポート・ウィザードに再度アクセスした場合、レポート・ウィザードの「終了」をクリックすると、これらのレイアウトの変更は失われ、レイアウトはデフォルト設定に戻ります。

7. 必要に応じて、セクションのプロパティを設定します。

関連項目

第2.4.2項「レイアウトのデフォルトについて」

第4.5.4項「レポートのデフォルト・レイアウトの作成」

第4.9.13.3項「デフォルトのレイアウト間隔の変更」

4.11 パラメータとパラメータ・フォームの操作

この項では、パラメータとパラメータ・フォームを操作する際に実行する可能性がある次のタスクの手順について説明します。

- 事前定義されたシステム・パラメータの使用

- ユーザー・パラメータの作成

- パラメータの値リスト(LOV)の作成

- 実行時におけるパラメータ値の検証

- デフォルト・パラメータ・フォームの作成

- ランタイム・パラメータ・フォームに追加するパラメータの選択

- 実行時におけるパラメータ・フォームの表示

- ランタイム・パラメータ・フォームへのページの追加

- バッチ・モードで実行中のレポートへのパラメータ渡し

- PL/SQLを使用したHTMLパラメータ・フォーム・ヘッダーの作成

- PL/SQLを使用したHTMLパラメータ・フォーム・フッターの作成

- HTMLパラメータ・フォームの入力イベントまたは選択イベントの作成

- HTMLパラメータ・フォームの入力の大文字への変更

関連項目

第1.9.1項「パラメータについて」

第2.3.4項「列参照とパラメータ参照について」

第1.6.5項「ペーパー・パラメータ・フォーム・ビューについて」

第1.11.1項「ランタイム・パラメータ・フォームについて」

第1.9.4項「Webレポートのパラメータ・フォームについて」

4.11.1 事前定義されたシステム・パラメータの使用

システム・パラメータを使用するには:

1. オブジェクト・ナビゲータで、「データ・モデル」ノードを開き、「システム・パラメータ」ノードを開きます。

2. 目的のパラメータのプロパティ・アイコンをダブルクリックし、プロパティ・インスペクタを表示します。

3. 「パラメータ」ノードで、必要に応じて「初期値」プロパティを設定します。

4. 実行時にパラメータの値を検証するには、「...」ボタンをクリックしてPL/SQLエディタを表示し、実行時にトリガーされるPL/SQLを定義して、「検証トリガー」プロパティを設定します。

4.11.2 ユーザー・パラメータの作成

注意:

Oracle Reports Builderでは、問合せの中でパラメータのバインド参照を使用すると、自動的にユーザー・パラメータが作成されます。

ユーザー・パラメータを作成するには:

1. オブジェクト・ナビゲータで、「データ・モデル」ノードを開き、「ユーザー・パラメータ」ノードをクリックします。

2. ツールバーの「作成」ボタンをクリックします。

3. 新しいパラメータのプロパティ・アイコンをダブルクリックし、プロパティ・インスペクタを表示します。

4. 「一般情報」ノードで、「名前」プロパティを適切なパラメータ名に置き換えます。

5. 「パラメータ」ノードで、必要に応じて「初期値」プロパティと「値リスト」プロパティを設定します。

6. 実行時にパラメータの値を検証するには、プロパティ・フィールドをクリックしてPL/SQLエディタを表示し、実行時にトリガーされるPL/SQLを定義して、「検証トリガー」プロパティを設定します。

4.11.3 パラメータの値リスト(LOV)の作成

ヒント:

テンプレートでパラメータを定義する場合、そのテンプレートをレポートに適用して、ランタイム・パラメータ・フォーム用にそのパラメータを選択する必要があります。

パラメータのLOVを作成するには:

1. オブジェクト・ナビゲータで、「データ・モデル」ノードを開き、「ユーザー・パラメータ」ノードを開きます。

2. LOVを作成するパラメータのプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。

3. 「パラメータ」ノードで、「値リスト」プロパティ・フィールドをダブルクリックして「値リスト・パラメータ」ダイアログ・ボックスを表示します。

4. 作成するリストのタイプを選択します。

- 静的値を選択する場合、「値」テキスト・ボックスに値を入力し、「追加」をクリックします。追加する各値で、この手順を繰り返します(リストから項目を削除するには、「削除」をクリックします)。

- SELECT文を選択する場合は、値リストに移入する問合せを入力します。値リストには、2つ以上の列を選択し、表示することができます。最初の列には、パラメータに割り当てられる値が含まれます。値リストには、問合せに指定された順序で列が表示されます。

5. パラメータ値をLOVの値のみに制限する場合は、「事前定義済値に対するリストを制限」チェック・ボックスを選択します。ユーザーが値を編集したり、ランタイム・パラメータ・フォームに異なる値を入力したりすることができるコンボ・ボックスを表示するには、このチェック・ボックスの選択を解除します。

6. 問合せの第1列(パラメータ値が格納されている列)をLOVに表示しない場合は、「第1列を隠す」チェック・ボックスを選択します。第1列を機密保護にする必要がない場合は、このチェック・ボックスの選択を解除します。

注意:

Oracle Reports Builderからレポート出力をHTMLファイルに送信するか、Webブラウザで実行してレポート出力をHTMLファイルに送信する場合、第1列の値は「第1列を隠す」を選択してもHTMLソースで見ることができます。

Webブラウザでレポートを実行し、値リストに制限がない場合、HTMLパラメータ・フォームには、コンボ・ボックスのかわりにテキスト・フィールドが表示され、そのテキスト・フィールドにコピーして貼り付けることができる静的値も一覧されます。この場合、「第1列を隠す」を選択しても、第1列は常にパラメータ・フォームに表示されます。

7. 「OK」をクリックします。

4.11.4 実行時におけるパラメータ値の検証

実行時にパラメータ値を検証するには:

1. オブジェクト・ナビゲータで、「データ・モデル」ノードを開き、「システム・パラメータ」ノードまたは「ユーザー・パラメータ」ノードを開きます。

2. PL/SQLの検証トリガーを追加するパラメータの「PL/SQL」アイコンをダブルクリックします。

3. PL/SQLエディタで、実行時にトリガーされるPL/SQLを定義します。

関連項目

第2.6.13.3項「検証トリガーについて」

4.11.5 デフォルト・パラメータ・フォームの作成

デフォルト・パラメータ・フォームを作成するには:

1. 「ツール」→「パラメータ・フォーム・ビルダー」を選択します。

2. 「OK」をクリックして、デフォルト・パラメータ・フォームでペーパー・パラメータ・フォーム・ビューを表示します。

4.11.6 ランタイム・パラメータ・フォームに追加するパラメータの選択

ランタイム・パラメータ・フォームに追加するパラメータを選択するには:

1. 「ツール」→「パラメータ・フォーム・ビルダー」を選択します。

2. 「パラメータ・フォーム・ビルダー」で、ランタイム・パラメータ・フォームに追加するパラメータをクリックします。

3. 必要に応じて、パラメータのラベルを変更します。

4. 「OK」をクリックして、ペーパー・パラメータ・フォーム・ビューを表示します。

4.11.7 実行時におけるパラメータ・フォームの表示

レポートの実行時にランタイム・パラメータ・フォームを表示するには:

1. 「編集」→「プリファレンス」を選択し、「プリファレンス」ダイアログ・ボックスを表示します。

2. 「ランタイム設定」ページで、「パラメータ・フォーム」チェック・ボックスが選択されていることを確認します。

注意:

パラメータ・フォームはペーパー・レポートでのみ使用できます。ペーパーベースのレポートをWebで表示する場合は、次のいずれかを使用してHTMLのヘッダー・タグおよびフッター・タグを追加することにより、HTMLパラメータ・フォームを作成できます(「BEFORE FORM値」プロパティと「フォーム後値」プロパティ、またはSRW.SET_BEFORE_FORM_HTMLプロシージャとSRW.SET_AFTER_FORM_HTMLプロシージャを使用します)。ただし、Oracle Reports Builderでパラメータ・フォームを使用してJSPベースのWebレポートを設計する場合、JSPを使用するWebレポートでは実行時におけるランタイム・パラメータ・フォームの表示がサポートされていないので、ご注意ください。詳細は、第1.9.4項「Webレポートのパラメータ・フォームについて」を参照してください。

4.11.8 ランタイム・パラメータ・フォームへのページの追加

ランタイム・パラメータ・フォームにページを追加するには:

1. オブジェクト・ナビゲータで、レポート名の横のプロパティ・アイコンをダブルクリックします。

2. プロパティ・インスペクタの「パラメータ・フォーム・ウィンドウ」ノードで、必要に応じて「ページ数」プロパティを設定します。

4.11.9 バッチ・モードで実行中のレポートへのパラメータ渡し

バッチ・モードで実行中のレポートにパラメータ(データ範囲など)を渡すには:

- 問合せでバインド変数を使用して問合せを制限し、コマンドライン・パラメータを使用して問合せに値を渡します。次に例を示します。

問合せ:

SELECT * FROM EMP WHERE HIREDATE BETWEEN
:FROM_DATE AND :END_DATE

実行時:

RWRUN REP1 SCOTT/TIGER FROM_DATE='12-JUN-92'
END_DATE='24-JUN-92'

4.11.10 PL/SQLを使用したHTMLパラメータ・フォーム・ヘッダーの作成

第4.6.10.2.5項「PL/SQLを使用したHTMLパラメータ・フォーム・ヘッダーの作成」を参照してください。

4.11.11 PL/SQLを使用したHTMLパラメータ・フォーム・フッターの作成

第4.6.10.2.6項「PL/SQLを使用したHTMLパラメータ・フォーム・フッターの作成」を参照してください。

4.11.12 HTMLパラメータ・フォームの入力イベントまたは選択イベントの作成

HTMLパラメータ・フォームのフィールドを入力イベントまたは選択イベントを使用して作成するには:

1. オブジェクト・ナビゲータで、「ペーパー・パラメータ・フォーム」ノードの横にあるビュー・アイコンをダブルクリックして、ペーパー・パラメータ・フォーム・ビューを表示します。

2. パラメータ・フォームのフィールドを作成または編集します(第4.9.1.1項「フィールド・オブジェクトの作成」を参照)。

3. フィールド・オブジェクトをダブルクリックして、プロパティ・インスペクタを表示します。

4. 「Webの設定」で、「追加属性(HTML)」プロパティを有効なJavaScriptイベント・ハンドラに設定します。

注意:

メッセージを表示するときなど、Before FormトリガーでJavaScriptコードを入力することが必要な場合もあります。

Before FormトリガーにJavaScriptコードを挿入するには:

1. オブジェクト・ナビゲータで、レポート名の横のプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。

2. 「レポート・エスケープ」の「フォーム前型」プロパティを「テキスト」(JavaScriptを入力する場合)または「ファイル」(ファイルからJavaScriptをインポートする場合)に設定します。

3. 「...」ボタンをクリックして、ダイアログ・ボックスにJavaScriptを入力するか、インポートするJavaScriptを含むHTMLファイルを選択して、「BEFORE FORM値」プロパティを設定します。

例1: データ入力の検証

この例では、レポートがWebで実行されるときに入力の検証で使用されるパラメータ・フォーム・フィールドを設定する方法を示します。この設定によって、エンド・ユーザーが無効なデータをパラメータ・フォーム・フィールドに入力するたびにメッセージが表示されます。

1. ペーパー・パラメータ・フォーム・ビューで、PF_DEPTNOというパラメータ・フォーム・フィールドを作成します。

2. フィールド・オブジェクトをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「パラメータ・フォーム・フィールド」で、「ソース」プロパティを「DEPTNO」に設定します。

- 「Webの設定」で、「追加属性(HTML)」プロパティを次のJavaScriptイベント・ハンドラに設定します。

onChange="checkIt(this.form)"

3. オブジェクト・ナビゲータで、レポート名の横のプロパティ・アイコンをクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「レポート・エスケープ」で、「BEFORE FORM型」プロパティを「テキスト」に設定します。

- 「BEFORE FORM値」プロパティを次のJavaScriptコードに設定します。

<SCRIPT LANGUAGE = "JavaScript">
function isNumber(inputStr){
for (var i = 0; i < inputStr.length; i++) {
var oneChar = inputStr.charAt(i)
if (oneChar < "0" || oneChar > "9") {
alert("Please enter a numeric value.")
return false
}
}
return true
}
function checkIt(form) {
inputStr = form.DEPTNO.value
if (isNumber(inputStr)) {
// statements if true
}
else {
form.numeric.focus()
form.numeric.select()
}
}
</SCRIPT>

レポートがWebで実行されるときに、エンド・ユーザーがランタイム・パラメータ・フォームに部門番号ではなく部門名を入力すると、次のメッセージが表示されます。

Please enter a numeric value.

例2: 選択の検証

この例では、レポートがWebで実行されるときに選択の検証で使用されるパラメータ・フォーム・フィールドを設定する方法を示します。この設定によって、エンド・ユーザーがランタイム・パラメータ・フォームで「DESTYPE」値リストから「PRINTER」を選択するたびにメッセージが表示されます。

1. ペーパー・パラメータ・フォーム・ビューで、PF_DESTYPEというパラメータ・フォーム・フィールドを作成します。

2. フィールド・オブジェクトをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「パラメータ・フォーム・フィールド」で、「ソース」プロパティを「DESTYPE」に設定します。

- 「Webの設定」で、「追加属性(HTML)」プロパティを次のJavaScriptイベント・ハンドラに設定します。

onChange="isPrinter(this.form)"

3. オブジェクト・ナビゲータで、レポート名の横のプロパティ・アイコンをクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「レポート・エスケープ」で、「BEFORE FORM型」プロパティを「テキスト」に設定します。

- 「BEFORE FORM値」プロパティを次のJavaScriptコードに設定します。

<SCRIPT LANGUAGE = "JavaScript">
function isPrinter(form) {
if( form.DESTYPE.options[form.DESTYPE.selectedIndex].value
== 'Printer')
alert("Please be sure that your print is installed and running.")
return true}
}
</SCRIPT>

実行時に、エンド・ユーザーが「DESTYPE」フィールドの値リストから「PRINTER」を選択すると、次のメッセージが表示されます。

Please be sure that your print is installed and running.

関連項目

第2.5.1項「パラメータ・フォームのHTML拡張について」

4.11.13 HTMLパラメータ・フォームの入力の大文字への変更

パラメータ・フォーム・フィールドのエントリについて、データ入力値をデフォルトで大文字に変更するには:

1. 「ツール」→「パラメータ・フォーム・ビルダー」を選択します。

2. 「パラメータ・フォーム・ビルダー」で、PF_DESFORMATというパラメータ・フォーム・フィールドをDESFORMATというソースで作成します。

3. 「ツール」→「プロパティ・インスペクタ」を選択します。

4. プロパティ・インスペクタの「Webの設定」で、「追加属性(HTML)」プロパティを次のように設定します。

onChange="this.value=this.value.toUpperCase()"

例: 入力をデフォルトで大文字に変更

この例では、パラメータ・フォーム・フィールドのエントリについて、データ入力値をデフォルトで大文字に指定します。

1. ペーパー・パラメータ・フォーム・ビューで、PF_DESTYPEというパラメータ・フォーム・フィールドを作成します。

2. フィールド・オブジェクトをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「パラメータ・フォーム・フィールド」で、「ソース」プロパティを「DESFORMAT」に設定します。

- 「Webの設定」で、「追加属性(HTML)」プロパティを次のJavaScriptイベント・ハンドラに設定します。

onChange="this.value=this.value.toUpperCase()"

実行時に、エンド・ユーザーが宛先フォーマットとしてpdfを入力すると、この値はレポートがWebで実行されるときにランタイム・パラメータ・フォームで大文字(PDF)に変更されます。

4.12 テンプレートの定義

この項では、レポート・テンプレートを定義する際に実行する可能性がある次のタスクの手順について説明します。

- テンプレートの作成

- デフォルトのテンプレート属性の定義

- 上書きテンプレート属性の定義

- レポートへのテンプレートの適用

- テンプレートのレポート・タイトルのフォーマット

- テンプレートの本体オブジェクトのカラー、パターンまたは境界線の変更

- 事前定義テンプレートのリストへのテンプレートの追加

4.12.1 テンプレートの作成

テンプレートを作成するには:

1. オブジェクト・ナビゲータで、「テンプレート」ノードをクリックし、ツールバーの「作成」ボタンをクリックします。

2. すべてのレポート・スタイルについて、デフォルトのテンプレート属性を定義します。

3. 必要に応じて、選択したレポート・スタイルの上書きテンプレート属性を定義します。

4. テンプレートのシステム・パラメータ、ユーザー・パラメータ、レポート・トリガー、プログラム・ユニットおよび連結ライブラリを定義するには、オブジェクト・ナビゲータで関連するノードをダブルクリックします。

関連項目

第2.7.5項「テンプレート・エディタについて」

第2.7.1項「テンプレートについて」

第2.7.2項「テンプレート属性について」

第2.7.3項「テンプレートの適用について」

第2.7.4項「テンプレートでの継承について」

4.12.2 デフォルトのテンプレート属性の定義

テンプレートのレポート・オブジェクトについて、すべてのレポート・スタイルに適用されるデフォルト属性を定義するには:

1. オブジェクト・ナビゲータで、「テンプレート」ノード、「ペーパー・レイアウト」ノード、「セクション」ノード、「ボディ」ノード、「デフォルト」ノードの順に開きます。

2. レイアウト全体のデフォルト・プロパティとレポート・スタイルの間隔設定を変更するには、「デフォルト」ノードの横のプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。

3. 枠、フィールドのラベル/ヘッダー、フィールド、サマリー・ラベルおよびサマリー(合計)のデフォルト・プロパティを変更するには、「デフォルト」ノードを完全に開きプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。

注意:

ペーパー・レイアウト・ビューは、オブジェクト・ナビゲータと同期されています。したがって、レイアウト・オブジェクトを選択すると、オブジェクト・ナビゲータで対応するノードがハイライト表示されます。レイアウト・オブジェクトの親枠を選択するには、オブジェクトをクリックし、ツールバーの「親枠を選択」ボタンをクリックします。

4. ペーパー・レイアウト・ビューで、「レポート・スタイル」リストから選択して、個々のレポート・スタイルのレイアウトを表示します。

5. 現在表示されているレポート・スタイルをさらに変更するには、オブジェクト・ナビゲータに戻るか、オブジェクトをダブルクリックしてプロパティ・インスペクタを表示します。

注意:

個々のレポート・スタイルに加えた変更は、「デフォルト」ノードで定義されている属性を上書きします。

関連項目

第2.7.1項「テンプレートについて」

第2.7.2項「テンプレート属性について」

4.12.3 上書きテンプレート属性の定義

選択したレポート・スタイルの上書き属性を定義するには:

1. オブジェクト・ナビゲータで、「テンプレート」ノード、「ペーパー・レイアウト」ノード、「セクション」ノード、「ボディ」ノード、「上書き」ノードと拡張してから、オーバーライドを定義するレポート・スタイルのノード(「表」、「グループ左」など)を拡張します。

2. レイアウト全体のデフォルト・プロパティと選択したレポート・スタイルのセクションの間隔設定を変更するには、「セクション(レベルn)」ノードの横のプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。

3. 特定のレポート・スタイルに対してデフォルト数以上のセクションを作成するには、「セクション(レベルn)」ノードをクリックし、ツールバーの「作成」ボタンをクリックします。

注意:

セクションは、レポート内のグループにマップされます。詳細は、「テンプレート属性について」を参照してください。

4. 特定のレポートのセクションを削除するには、「セクション(レベルn)」ノードをクリックし、ツールバーの「削除」ボタンをクリックします。

注意:

現行のレポート・スタイルで削除できるのは、最低要件のノード数までです。

5. 上書き属性を定義する各セクションでは、「セクション(レベルn)」ノードを完全に開きプロパティ・アイコンをダブルクリックして、枠、フィールドのラベルとヘッダー、フィールド、サマリー・ラベルおよびサマリー(合計)のプロパティ・インスペクタを表示します。

注意:

ペーパー・レイアウト・ビューは、オブジェクト・ナビゲータと同期されています。したがって、レイアウト・オブジェクトを選択すると、オブジェクト・ナビゲータで対応するノードがハイライト表示されます。レイアウト・オブジェクトの親枠を選択するには、オブジェクトをクリックし、ツールバーの「親枠を選択」ボタンをクリックします。

6. ペーパー・レイアウト・ビューで、「レポート・スタイル」リストから選択して、個々のレポート・スタイルのレイアウトを表示します。

7. 現在表示されているレポート・スタイルをさらに変更するには、オブジェクト・ナビゲータに戻るか、オブジェクトをダブルクリックしてプロパティ・インスペクタを表示します。

注意:

個々のレポート・スタイルに加えた変更は、「デフォルト」ノードで定義されている属性を上書きします。

関連項目

第2.7.1項「テンプレートについて」

第2.7.2項「テンプレート属性について」

4.12.4 レポートへのテンプレートの適用

レポートにテンプレートを適用するには:

1. オブジェクト・ナビゲータで、テンプレートを適用するレポートまたはレポート・セクションをクリックします。

注意:

オブジェクト・ナビゲータでレポート全体のノードを選択すると、テンプレートがデフォルトでレポートのメイン・セクションに適用されます。レポートの特定のセクションにテンプレートを適用するには、オブジェクト・ナビゲータでそのセクションのノードを選択します。

2. 「ツール」→「レポート・ウィザード」を選択します。

3. 「テンプレート」ページで、事前定義テンプレートを選択するか、「テンプレート・ファイル」をクリックして「参照」をクリックし、目的のテンプレートを開きます。

4. 「終了」をクリックして、現行のレポート・セクションにテンプレートを適用します。

関連項目

第2.7.1項「テンプレートについて」

第2.7.3項「テンプレートの適用について」

4.12.5 テンプレートのレポート・タイトルのフォーマット

選択したテンプレートのタイトルに対してデフォルトの属性(フォント、カラーなど)を定義するには:

1. オブジェクト・ナビゲータで、「テンプレート」ノード、「ペーパー・レイアウト」ノード、「セクション」ノード、「ボディ」ノード、「デフォルト」ノードの順に開きます。

2. 「デフォルト」ノードの横のプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。

3. 「タイトル」で、必要に応じてプロパティを変更します。

選択したテンプレートのタイトルに対して配置と上書き属性(フォント、カラーなど)を設定するには:

1. テンプレートのペーパー・レイアウト・ビューで、マージンにタイトルのボイラープレート・テキスト・オブジェクトを作成します。

2. タイトルのサイズと位置を設定し、必要に応じてカラー属性とテキスト属性を変更します。

3. タイトル・オブジェクトをダブルクリックして、プロパティ・インスペクタを表示します。

4. 「一般情報」で、「名前」プロパティを「B_OR$REPORT_TITLE」に設定します。

関連項目

第2.1.1項「レポートのタイトルについて」

第2.7.1項「テンプレートについて」

4.12.6 テンプレートへの項目とオブジェクトの追加

テンプレートに項目とオブジェクトを追加するには:

1. テンプレート・エディタのペーパー・レイアウト・ビューで、ツールバーの「マージン」ボタンをクリックしてマージン領域を表示します。

2. テンプレートのマージンでオブジェクトを作成します。テンプレートの本体ではオブジェクトを作成できません。

関連項目

第2.7.5項「テンプレート・エディタについて」

第2.7.1項「テンプレートについて」

第2.7.2項「テンプレート属性について」

第2.7.4項「テンプレートでの継承について」

4.12.7 テンプレートのマージンでのオブジェクトの変更

テンプレートのマージンでオブジェクトを変更するには:

1. テンプレート・エディタのペーパー・レイアウト・ビューで、ツールバーの「マージン編集」ボタンをクリックします。

2. テンプレートのマージンでオブジェクトを変更します。

関連項目

第2.7.5項「テンプレート・エディタについて」

第2.7.1項「テンプレートについて」

第2.7.2項「テンプレート属性について」

第2.7.4項「テンプレートでの継承について」

4.12.8 テンプレートの本体オブジェクトのカラー、パターンまたは境界線の変更

テンプレートのオブジェクトは、レポートのオブジェクトと同じ方法で変更できます。テンプレートのオブジェクトのカラーやパターンを変更するには(ツール・パレットのカラー・ツールではなくテンプレートのプロパティ・インスペクタを使用):

- 「塗りつぶしパターン」プロパティでは、オブジェクトで囲まれる領域に使用するパターンを定義します。「前景色」プロパティと「背景色」プロパティを使用して、塗りつぶしパターンの背景色と前景色を定義できます。

- 「枠のパターン」プロパティでは、オブジェクトの境界線に使用するパターンを定義します。「枠の前景色」プロパティと「枠の背景色」プロパティを使用して、枠のパターンの背景色と前景色を定義できます。

- 「テキスト・カラー」プロパティでは、オブジェクトに使用するテキスト・カラーを指定します。

関連項目

第2.4.5項「カラーとパターンの変更について」

第4.9.6.2項「カラーの変更」

第4.9.6.3項「パターンの変更」

第2.7.1項「テンプレートについて」

4.12.9 事前定義テンプレートのリストへのテンプレートの追加

レポート・ウィザードで事前定義テンプレートのリストに独自のテンプレートを追加するには:

1. テキスト・エディタ(メモ帳など)で、設定のファイルを開きます。

- Windowsでは、$ORACLE_INSTANCE\config\FRComponent\frcommon\tools\admin\CAUPREFS.ORA(ユーザー設定)、またはこのファイルがない場合は、$ORACLE_INSTANCE\config\FRComponent\frcommon\tools\admin\CAGPREFS.ORA(グローバル設定)を開きます。

- UNIXでは、your_home_directory/prefs.ora(ユーザー設定)、またはこのファイルがない場合は、$ORACLE_INSTANCE/config/FRComponent/
frcommon/tools/admin/prefs.ora(グローバル設定)を開きます。

2. Reports.xxx_Template_Descで識別されるテンプレートの説明までスクロールします(xxxには、Tabular、BreakAbove、BreakLeft、FormLetter、Formlike、MailingLabel、Matrix、MatrixBreakなどのレポート・スタイルを指定します)。

3. テンプレートが定義される各レポート・スタイルについて、次の操作を行います。

- Reports.xxx_Template_Descリストに、レポート・ウィザードの「テンプレート」ページに表示する説明を追加します。

- 対応するReports.xxx_Template_Fileリストに、説明リストに追加した説明と同じ位置でテンプレートのファイル名を追加します。

4. テンプレート・ファイル(filename.tdf)をORACLE_HOME/REPORTS/TEMPLATESにコピーします。

レポート・ウィザードでテンプレートのサンプル・イメージを追加するには:

1. テンプレートのイメージとして使用する.bmpファイルをコピーまたは作成し、yyy.bmp(yyyはテンプレートのファイル名)という名前を付けます。

2. 各.bmpファイルをORACLE_HOME/REPORTS/TEMPLATESにコピーします。

関連項目

第2.7.1項「テンプレートについて」

第2.7.3項「テンプレートの適用について」

4.12.10 レポート・ポートレットのHTMLテンプレートの作成

Oracle Portalページに公開できるレポートのHTMLテンプレートを作成および使用するには:

- Oracle Technology Network Oracle Reportsページ(http://www.oracle.com/technology/products/reports/index.html)から入手可能な、『Getting Started with Oracle Reports』ホワイト・ペーパーの「How To Create a Report Portlet Template」を参照してください。「Getting Started」をクリックします。左側にあるトピックのリストの中から「Index」をクリックします。Indexページの「Collateral Type」リストで、「White Papers & How To Documents」を選択し、「Search」をクリックします。表示されるリストの中から「Creating a Report Portlet Template」をクリックします。

関連項目

第2.7.1項「テンプレートについて」

第2.7.3項「テンプレートの適用について」

4.13 レポートまたはテンプレートでのPL/SQLの使用

この項では、レポートまたはテンプレートでPL/SQLを使用する際に実行する可能性がある次のタスクの手順について説明します。

- ビルトイン・パッケージの使用

- PL/SQLエディタの操作

- レポートレベルまたはテンプレートレベルのPL/SQLの作成または編集

- 外部PL/SQLライブラリの作成または編集

- プログラム・ユニットのコンパイルおよび実行

4.13.1 ビルトイン・パッケージの使用

ビルトイン・パッケージを使用するには:

1. 「ツール」→「PL/SQLエディタ」を選択し、PL/SQLエディタを表示します。

2. オブジェクト・ナビゲータで、ビルトイン・パッケージ・ノードを開き、使用するパッケージを開きます。

3. プロシージャ、ファンクションまたは例外を右クリックして、「ページの貼付け」または引数を貼付けを選択し、パッケージへのコールをPL/SQLコードにコピーします。

関連項目

第2.6.12項「ビルトイン・パッケージについて」

4.13.2 PL/SQLエディタの操作

この項では、PL/SQLエディタを操作する際に実行する可能性がある次のタスクの手順について説明します。

- PL/SQLの定義

- プログラム・ユニット内のテキストの検索および置換

- プログラム・ユニットの編集

- PL/SQLエディタへの構文の挿入

4.13.2.1 PL/SQLの定義

PL/SQLを定義するには:

1. PL/SQLエディタで、プログラム・ユニットのPL/SQLコードを入力または編集します。

2. 「コンパイル」をクリックします。

3. 必要に応じて、エラーをクリックしてソース・コードのエラーの位置にナビゲートします。

ヒント:

文末のセミコロンが欠落していないか、または構文のスペルが誤っていないかなどを確認します。

4. コードが正常にコンパイルされたら、「閉じる」をクリックします。

関連項目

第2.6.4項「プログラム・ユニットについて」

4.13.2.2 プログラム・ユニット内のテキストの検索および置換

プログラム・ユニット内のテキストを検索および置換するには:

1. オブジェクト・ナビゲータで、「プログラム・ユニット」ノードを開きます。

2. 編集するプログラム・ユニットの横の「PL/SQLエディタ」ビュー・アイコンをダブルクリックします。

3. PL/SQLエディタで、検索を開始する位置にカーソルを置きます。

4. 「編集」→「検索と置換」を選択します。

5. ダイアログ・ボックスに検索条件を入力し、必要に応じて置換文字列を入力します。検索テキストには、テキスト文字列または正規表現を指定できます。

6. 「検索」をクリックします。

7. 検索条件のインスタンスが検索されたら、「置換」をクリックして1つのインスタンスを置換するか、「すべて置換」をクリックしてすべてのインスタンスを置換するか、PL/SQLエディタでテキストを直接編集します。

8. 「検索」をクリックして次のインスタンスに進むか、「取消」をクリックしてダイアログ・ボックスを閉じます。

9. プログラム・ユニット内のすべてのテキストを置換したら、「コンパイル」をクリックしてプログラム・ユニットを再コンパイルします。

ヒント:

複数のプログラム・ユニット内のテキストを置換する場合、置換の終了後にすべてのプログラム・ユニットを一度に再コンパイルできます。

10. コードが正常にコンパイルされたら、「閉じる」をクリックします。

ヒント:

編集が広範囲にわたる場合、「適用」をクリックして変更を徐々に保存することもできます。この際、コンパイルする必要はありません。

関連項目

第2.6.4項「プログラム・ユニットについて」

4.13.2.3 プログラム・ユニットの編集

プログラム・ユニットを編集するには:

1. オブジェクト・ナビゲータで、「プログラム・ユニット」ノードを開きます。

2. 編集するプログラム・ユニットの「PL/SQLエディタ」ビュー・アイコンをダブルクリックします。

3. PL/SQLエディタで、プログラム・ユニットのPL/SQLを編集します。

関連項目

第2.6.4項「プログラム・ユニットについて」

4.13.2.3.1 PL/SQLエディタの編集機能

PL/SQLエディタ(およびストアドPL/SQLエディタ)は、次の編集機能を備えています。

表4-7 PL/SQLエディタの編集機能

編集機能

説明

自動インデント

行端で[Enter]キーを押すと、次の行が自動的にインデントされます。

構文のカラー・ハイライト

キーワード、コメント、文字列および記号(:=、||など)は、異なるカラーで表示されます。

列と行の選択

テキストの列およびソース・コードの行を選択できます。

列を選択するには、[Alt]キーを押してクリックし、水平方向にドラッグします。

行を選択するには、「ソース」ペインの行の左端にあるマージンをクリックします。

テキストのドラッグ・アンド・ドロップ操作

選択したテキストは、ドラッグ・アンド・ドロップでコピーまたは移動できます。

テキストをコピーするには、[Ctrl]キーを押して、選択したテキストをドラッグします。

テキストを移動するには、選択したテキストを単にドラッグします。

行のインデントとインデント解除

「書式」メニューの「インデント」コマンドと「インデント解除」コマンドを使用すると、選択したソース行をインデントまたはインデント解除することができます。

画面分割

現行のプログラム・ユニットには、最大4個の個別のビューを作成できます。

水平ビューを作成するには、垂直スクロール・バーの上部にある分割バーにカーソルを置きます。分割バーをクリックして下にドラッグします。

垂直ビューを作成するには、水平スクロール・バーの左端にある分割バーにカーソルを置きます。分割バーをクリックして右にドラッグします。

水平ビューまたは垂直ビューを削除するには、ビューを分離している分割バーをダブルクリックします。

印刷

現行のプログラム・ユニットを印刷するには、「ファイル」→「印刷」を選択します。

無制限の元に戻す操作と再実行

「編集」メニューの「元に戻す」コマンドと「再実行」コマンドを使用すると、最後に保存した時点までの変更を元に戻したり、再実行したりできます。

注意:

これらの機能は、Microsoft Windowsでのみ使用できます。UNIXでは、現行のプログラム・ユニットを印刷したり、[Tab]を押すか、[Shift]を押しながら[Tab]を押して、選択した行をインデントまたはインデント解除できます。

4.13.2.3.2 PL/SQLエディタでのキーボードの使用

Microsoft WindowsとUNIXでPL/SQLエディタ(およびストアドPL/SQLエディタ)を使用する場合、次のキーボード操作がサポートされています。

表4-8 PL/SQLエディタでのキーボードの使用

操作内容

キーストローク

プラットフォーム

カーソルを左に1文字移動する

[←]

WindowsとUNIX

カーソルの左移動に伴い文字を選択する

[Shift]+[←]

WindowsとUNIX

カーソルを右に1文字移動する

[→]

WindowsとUNIX

カーソルの右移動に伴い文字を選択する

[Shift]+[→]

WindowsとUNIX

選択した文字または単語をコピーする

[Ctrl]+[C]

WindowsとUNIX

選択した文字または単語を切り取る

[Ctrl]+[X]

WindowsとUNIX

クリップボードから貼り付ける

[Ctrl]+[V]

WindowsとUNIX

現行のカーソル位置の右側の文字、または選択した文字や単語を削除する

[Delete]

WindowsとUNIX

現行のカーソル位置の左側の文字を削除する

[Back Space]

WindowsとUNIX

カーソルをプログラム・ユニットの最後に移動する

[Ctrl]+[End]

Windows

カーソルをプログラム・ユニットの先頭に移動する

[Ctrl]+[Home]

Windows

現行のカーソル位置からプログラム・ユニットの最後までのソース行を選択する

[Ctrl]+[Shift]+[End]

Windows

現行のカーソル位置からプログラム・ユニットの先頭までのソース行を選択する

[Ctrl]+[Shift]+[Home]

Windows

カーソルを現行の行の最後に移動する

[End]

Windows

カーソルを現行の行の先頭に移動する

[Home]

Windows

現行のカーソル位置から現行の行の最後までの文字を選択する

[Shift]+[End]

Windows

現行のカーソル位置から現行の行の先頭までの文字を選択する

[Shift]+[Home]

Windows

選択した行、または現行のカーソル位置の右側の文字をインデントする

[Tab]

WindowsとUNIX

選択した行をインデント解除する

[Shift]+[Tab]

WindowsとUNIX

カーソルを下に1行移動する

[↓]

WindowsとUNIX

カーソルの下移動に伴い行を選択する

[Shift]+[↓]

WindowsとUNIX

カーソルを上に1行移動する

[↑]

WindowsとUNIX

カーソルの上移動に伴い行を選択する

[Shift]+[↑]

WindowsとUNIX

「ソース」ペインに表示された行数分プログラム・ユニット内を下にスクロールする

[Page Down]

WindowsとUNIX

「ソース」ペインに表示された行数分プログラム・ユニット内を下にスクロールして、同時にそれらの行を選択する

[Shift]+[Page Down]

WindowsとUNIX

「ソース」ペインに表示された行数分プログラム・ユニット内を上にスクロールする

[Page Up]

WindowsとUNIX

「ソース」ペインに表示された行数分プログラム・ユニット内を上にスクロールして、同時にそれらの行を選択する

[Shift]+[Page Up]

WindowsとUNIX

一番最後の操作を元に戻す

[Ctrl]+[Z]

Windows

一番最後に元に戻した操作を回復する

[Ctrl]+[Y]

Windows

4.13.2.3.3 PL/SQLエディタでのマウスの使用

次の表では、Microsoft WindowsでPL/SQLエディタ(およびストアドPL/SQLエディタ)を使用する場合にサポートされているマウス操作を説明します。

表4-9 PL/SQLエディタでのマウスの使用

操作内容

マウス操作

ある範囲で文字を選択する

選択する範囲の最初の文字から最後の文字まで、クリックしてカーソルをドラッグします(UNIXでもサポートされています)。

または

選択する範囲内の最初の文字をクリックし、[Shift]キーを押しながら最後の文字をクリックします。

カーソルが置かれた単語を選択する

単語をダブルクリックします(UNIXでもサポートされています)。

または

[Ctrl]キーを押しながら、選択する単語をクリックします。

ある範囲で単語を選択する

[Ctrl]キーを押しながら、選択する範囲の最初の単語をクリックし、最後の単語までカーソルをドラッグします。

行を選択する

選択する行の左マージンにカーソルを置きます。カーソルが矢印に変わったときにクリックします。

複数行を選択する

選択する最初の行の左マージンにカーソルを置きます。カーソルが矢印に変化したら、クリックして選択する最後の行までカーソルをドラッグします。

テキストを箱型に選択する

[Alt]キーを押し、選択する範囲の最初の列をクリックし、最後の列までカーソルをドラッグします。

選択したテキストを移動する

まずテキストを選択します。次に選択したテキストをクリックし、新しい位置までドラッグします。

選択したテキストをコピーする

まずテキストを選択します。次に、[Ctrl]キーを押しながら、コピーを配置する位置まで選択したテキストをドラッグし、マウスを離します。

ウィンドウを水平ビューに分割する

垂直スクロール・バーの上部にある分割バーをダブルクリックします。

または

垂直スクロール・バーの上部にある分割バーをクリックしてドラッグします。

ウィンドウを垂直ビューに分割する

水平スクロール・バーの左端にある分割バーをダブルクリックします。

または

水平スクロール・バーの左端にある分割バーをクリックしてドラッグします。

分割されたビューの相対サイズを調整する

ビューを分割している分割バーをクリックしてドラッグします。

分割されたビューを削除する

ビューを分割している分割バーをダブルクリックします。

または

分割バーをクリックして、ウィンドウの枠までドラッグします。

4つのビューすべてを一度に削除するには、分割バーが交差する共通部分をダブルクリックするか、共通部分をウィンドウの隅までドラッグします。

4.13.2.4 PL/SQLエディタへの構文の挿入

PL/SQLエディタに構文をコピーするには:

1. PL/SQLエディタまたはストアドPL/SQLエディタが現行の(一番最後に選択された)ウィンドウであることを確認します。

2. エディタ内で、構文を挿入する位置にカーソルを置き、「ツール」→「構文パレット」を選択します。

3. 構文パレットで、「PL/SQL」タブまたはビルトイン・タブをクリックします。

4. リストから、PL/SQLのカテゴリまたはビルトイン・パッケージを選択します。
カテゴリまたはパッケージをクリックすると、選択可能なPL/SQLの言語要素またはPL/SQL構成メンバーが下部のリスト領域に表示されます。

5. リスト領域でPL/SQLの言語要素または構成メンバーを選択します。
PL/SQLの言語要素または構成メンバーをクリックすると、リスト領域の下部にある表示領域に構文が表示されます。

6. 「挿入」をクリックして、選択した構文をコピーします。
選択したPL/SQLの言語要素または構成メンバーが、アクティブなエディタの現行のカーソル位置に挿入されます。

7. コメント以外のすべての小文字項目を適切な値に置換します。コメント内の項目はオプションです。予約語は大文字です。

注意:

リスト領域でPL/SQLの言語要素または構成メンバーをダブルクリックして、エディタに構文を挿入することもできます。

関連項目

第2.6.3項「構文パレットについて」

4.13.3 レポートレベルまたはテンプレートレベルのPL/SQLの作成または編集

この項では、レポートレベルまたはテンプレートレベルのPL/SQLを作成または編集する際に実行する可能性がある次のタスクの手順について説明します。

- ローカル・プログラム・ユニットの作成

- ストアド・プログラム・ユニットの作成

- プログラム・ユニットの削除

- クライアントとデータベース・サーバー間でのプログラム・ユニットの移動

- レポート・トリガーの作成

- レポート・トリガーの削除

- データベース・トリガーの作成

4.13.3.1 ローカル・プログラム・ユニットの作成

ローカル(クライアント側)プログラム・ユニットを作成するには:

1. オブジェクト・ナビゲータで、「プログラム・ユニット」ノードをクリックします。

2. ツールバーの「作成」ボタンをクリックします。

3. ダイアログ・ボックスで、「名前」テキスト・ボックスにプログラム・ユニットの名前を入力します。

4. プログラム・ユニットがプロシージャ(指定された順序でアクションを実行するPL/SQLサブプログラム)でない場合は、次のいずれかをクリックします。

- ファンクション(指定された順序でアクションを実行し、値を返すPL/SQLサブプログラム)

- パッケージ仕様(他のプログラム・ユニットによって参照できるデータ型およびサブプログラム)

- パッケージ本体(プライベート・サブプログラムおよびデータ型を含む場合があるパッケージの実装で、パッケージが宣言のみで構成される場合はオプション)

注意:

ラジオ・ボタンをクリックしても選択されない場合は、別のラジオ・ボタンをクリックしてから必要な「タイプ」をもう一度クリックしてください。

5. 「OK」をクリックします。

6. PL/SQLエディタで、プログラム・ユニットのPL/SQLを定義します。

関連項目

第2.6.4項「プログラム・ユニットについて」

4.13.3.2 ストアド・プログラム・ユニットの作成

ストアド(サーバー側)プログラム・ユニットを作成するには:

1. オブジェクト・ナビゲータで、「データベース・オブジェクト」ノードをダブルクリックします。このノードが無効になっている場合は、データベース接続を確立するための「接続」ダイアログ・ボックスが表示されます。

2. データベースにログインするときに使用したデータベース・ユーザー名に対応するサブノードを開き、PL/SQLストアド・プログラム・ユニット・ノードを表示します。

3. PL/SQLストアド・プログラム・ユニット・ノードをクリックし、ツールバーの「作成」ボタンをクリックします。

4. ダイアログ・ボックスで、「名前」テキスト・ボックスにプログラム・ユニットの名前を入力します。

5. プログラム・ユニットがプロシージャ(指定された順序でアクションを実行するPL/SQLサブプログラム)でない場合は、次のいずれかをクリックします。

- ファンクション(指定された順序でアクションを実行し、値を返すPL/SQLサブプログラム)

- パッケージ仕様(他のプログラム・ユニットによって参照できるデータ型およびサブプログラム)

- パッケージ本体(プライベート・サブプログラムおよびデータ型を含む場合があるパッケージの実装で、パッケージが宣言のみで構成される場合はオプション)

- タイプ仕様部(オブジェクト・タイプまたはコレクション・タイプの名前、変数(属性)およびメンバー・サブプログラム(メソッド)を宣言)

- タイプ本体(オブジェクト・タイプのタイプ仕様部に定義されているメンバー・メソッド(ファンクションおよびプロシージャ)の実装。オブジェクト・タイプに指定する各メソッドについて対応するメソッド本体が必要)

注意:

ラジオ・ボタンをクリックしても選択されない場合は、別のラジオ・ボタンをクリックしてから必要な「タイプ」をもう一度クリックしてください。

6. 「OK」をクリックします。

7. ストアドPL/SQLエディタで、「所有者」リストからデータベースの所有者名を選択してプログラム・ユニットを格納するデータベース内の場所を指定し、ストアド・プログラム・ユニットのPL/SQLを定義します。

関連項目

第2.6.5項「ストアド・プログラム・ユニットについて」

4.13.3.3 プログラム・ユニットの削除

注意:

PL/SQLパッケージ、ファンクションまたはプロシージャを削除する場合は、レポート内の参照もすべて削除する必要があります。参照を削除しないと、レポートをコンパイル、生成または実行するときにエラーが発生します。

プログラム・ユニットを削除するには:

1. オブジェクト・ナビゲータで、「プログラム・ユニット」ノードを開きます。

2. 削除するプログラム・ユニットをクリックします。

3. ツールバーの「削除」ボタンをクリックします。

4. メッセージ・ダイアログ・ボックスで、「はい」をクリックして削除を確認します。

関連項目

第2.6.4項「プログラム・ユニットについて」

4.13.3.4 クライアントとデータベース・サーバー間でのプログラム・ユニットの移動

プログラム・ユニットをクライアントからデータベース・サーバーに移動するには:

1. オブジェクト・ナビゲータで、「データベース・オブジェクト」ノードをダブルクリックします。このノードが無効になっている場合は、データベース接続を確立するための「接続」ダイアログが表示されます。

2. データベースにログインするときに使用したデータベース・ユーザー名に対応するサブノードを開き、PL/SQLストアド・プログラム・ユニット・ノードを表示します。

3. オブジェクト・ナビゲータの「レポート」セクションで、「プログラム・ユニット」ノードを開きます。

4. データベースに格納するプログラム・ユニットをクリックし、これを「プログラム・ユニット」ノードからストアド・プログラム・ユニット・サブノードまでドラッグします。

5. マウス・ボタンを放すと、サーバー上にプログラム・ユニットのコピーが挿入されます。

プログラム・ユニットをデータベース・サーバーからクライアントに移動する手順は次のとおりです。

1. オブジェクト・ナビゲータで、「データベース・オブジェクト」ノードをダブルクリックします。このノードが無効になっている場合は、データベース接続を確立するための「接続」ダイアログ・ボックスが表示されます。

2. データベースにログインするときに使用したデータベース・ユーザー名に対応するサブノードを開きます。

3. ストアド・プログラム・ユニット・ノードを開きます。

4. クライアントに移動するストアド・プログラム・ユニットをクリックし、これをストアド・プログラム・ユニット・ノードからオブジェクト・ナビゲータの「レポート」セクションにある「プログラム・ユニット」ノードまでドラッグします。

5. マウス・ボタンを放すと、クライアント上にプログラム・ユニットのコピーが挿入されます。

関連項目

第2.6.5項「ストアド・プログラム・ユニットについて」

第2.6.4項「プログラム・ユニットについて」

4.13.3.5 レポート・トリガーの作成

レポート・トリガーを作成するには:

1. オブジェクト・ナビゲータで、「レポート・トリガー」ノードを開きます。

2. 作成するトリガーの「PL/SQL」アイコンをダブルクリックします。

3. PL/SQLエディタで、レポート・トリガーのPL/SQLを定義します。

関連項目

第2.6.13.1項「レポート・トリガーについて」

4.13.3.6 レポート・トリガーの削除

レポート・トリガーを削除するには:

1. オブジェクト・ナビゲータで、「レポート・トリガー」ノードを開きます。

2. 削除するトリガーの「PL/SQL」アイコンをダブルクリックします。

3. PL/SQLエディタで、ドラッグしてPL/SQLコードを選択します。

4. 「編集」→「削除」を選択します。

関連項目

第2.6.13.1項「レポート・トリガーについて」

4.13.3.7 データベース・トリガーの作成

データベース・トリガーを作成するには:

1. 「ツール」→「データベース・トリガー・エディタ」を選択します。

2. データベース・トリガー・エディタで、「表所有者」リストからユーザー名(スキーマ)を選択します。

3. 「表」リストから表名を選択します。
「表」リストには、「表所有者」フィールドに示されるユーザーが所有する表の名前が表示されます。「表所有者」フィールドで自分以外のユーザー名を選択すると、「表」リストにはアクセス権が付与されている表のみが表示されます。

4. (ビューのみ)オブジェクト・ビューのINSTEAD OFトリガーを定義するには、「表」の横の矢印をクリックしてリストを表示し、「ビュー」を選択します。次に、「ビュー」リストからビューの名前を選択します。

5. 「新規」をクリックし、新しいデータベース・トリガーを作成します。
「名前」リストで、一意のトリガー名(同じスキーマ内にある他のトリガーの名前ではないもの)が自動的に新しいトリガーに割り当てられます。このトリガー名は変更できます。

「名前」リストには、「表」フィールド(または「ビュー」フィールド)に表示される表(またはビュー)に関連付けられたトリガー名のリストが表示されます。「名前」リストには、アクセス権がある表に関連付けられたデータベース・トリガーの名前のみが表示されます。

6. トリガー・オプションおよびアクションを指定した後、「保存」をクリックしてトリガーをコンパイルします。

関連項目

第2.6.13.4項「データベース・トリガーについて」

4.13.4 オブジェクトレベルのPL/SQLの作成または編集

この項では、オブジェクトレベルのPL/SQLを作成または編集する際に実行する可能性がある次のタスクの手順について説明します。

- フォーマット・トリガーの作成または編集

- グループ・フィルタの作成または編集

- 式列の作成または編集

- プレースホルダ列の作成

- PL/SQLを使用したカラーおよびパターンの変更

4.13.4.1 フォーマット・トリガーの作成または編集

プロパティ・インスペクタを使用してフォーマット・トリガーを作成または編集するには:

1. ペーパー・デザイン・ビューで、フォーマット・トリガーを作成または編集するオブジェクトをダブルクリックして、プロパティ・インスペクタを表示します。

2. 「拡張レイアウト」で、「...」ボタンをクリックしてPL/SQLエディタを表示し、「フォーマット・トリガー」プロパティを設定します。

3. フォーマット・トリガーのPL/SQLを定義します。

オブジェクト・ナビゲータを使用してフォーマット・トリガーを作成または編集する手順は次のとおりです。

1. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードを開き、フォーマット・トリガーを作成または変更するオブジェクトを含むノードを開きます。

2. フォーマット・トリガーを作成または編集するオブジェクトの横の「PL/SQL」アイコンをダブルクリックして、PL/SQLエディタを表示します。

3. フォーマット・トリガーのPL/SQLを定義します。

4.13.4.2 グループ・フィルタの作成または編集

グループ・フィルタを作成または編集するには:

1. データ・モデル・ビューで、グループのタイトル・バーをダブルクリックして、プロパティ・インスペクタを表示します。

2. 「グループ」ノードまでスクロールします。

3. グループの最初のnレコードを表示するには、「アクション・タイプ」プロパティを「最初」に設定し、「レコード数」プロパティをnに設定します。

4. グループの最後のnレコードを表示するには、「アクション・タイプ」プロパティを「最後」に設定し、「レコード数」プロパティをnに設定します。

5. PL/SQLを使用して独自のフィルタを作成するには、「アクション・タイプ」プロパティを「PL/SQL」に設定し、「...」ボタンをクリックして、PL/SQLエディタを表示し、フィルタにPL/SQLを定義します。

6. 必要に応じて、他のプロパティを設定します。

関連項目

第2.6.9項「グループ・フィルタについて」

4.13.4.3 式列の作成または編集

第4.8.10項「式列の作成または編集」を参照してください。

4.13.4.4 プレースホルダ列の作成

第4.8.12項「プレースホルダ列の作成または編集」を参照してください。

4.13.4.5 PL/SQLを使用したカラーおよびパターンの変更

第4.9.6.4項「PL/SQLを使用したカラーおよびパターンの変更」を参照してください。

4.13.5 外部PL/SQLライブラリの作成または編集

この項では、外部PL/SQLライブラリを作成または編集する際に実行する可能性がある次のタスクの手順について説明します。

- 外部PL/SQLライブラリの作成

- 開いているライブラリへのプログラム・ユニットの追加

- PL/SQLライブラリでのプログラム・ユニットの編集

- PL/SQLライブラリからのプログラム・ユニットの削除

- PL/SQLライブラリの連結

- 外部PL/SQLライブラリの変換

関連項目

第2.6.6項「外部PL/SQLライブラリについて」

4.13.5.1 外部PL/SQLライブラリの作成

外部PL/SQLライブラリを作成するには:

1. オブジェクト・ナビゲータで、「PL/SQLライブラリ」ノードをクリックします。

2. ツールバーの「作成」ボタンをクリックします。

新しく作成したライブラリ(最初の名前はLIB_xxx)が自動的に開きます。ライブラリを作成したら、プログラム・ユニットを挿入または削除したり、他のライブラリを連結したりすることによって、ライブラリの内容を変更できます。

4.13.5.2 開いているライブラリへのプログラム・ユニットの追加

開いているライブラリにプログラム・ユニットを追加するには:

1. 現行の状況に応じて、オブジェクト・ナビゲータで次のいずれかの操作を実行します。

- ライブラリが開いている場合は、ライブラリ・ノードを開きます。

- 現在ライブラリが開いていない場合は、「PL/SQLライブラリ」ノードをクリックし、「ファイル」→「開く」を選択してライブラリを開きます。

2. 「レポート」ノードで、「プログラム・ユニット」ノードを開きます。

3. 追加するプログラム・ユニットを、ライブラリの「プログラム・ユニット」ノードの下にあるライブラリにドラッグします。

4. マウス・ボタンを放すと、ライブラリ内にプログラム・ユニットのコピーが挿入されます。

4.13.5.3 PL/SQLライブラリでのプログラム・ユニットの編集

PL/SQLライブラリでプログラム・ユニットを編集するには:

1. オブジェクト・ナビゲータで、「PL/SQLライブラリ」ノードを開き、プログラム・ユニットのライブラリ・ノードを開きます。

2. ライブラリの「プログラム・ユニット」ノードで、編集するプログラム・ユニットの「PL/SQLエディタ」ビュー・アイコンをダブルクリックします。

3. PL/SQLエディタで、プログラム・ユニットのPL/SQLを編集します。

4.13.5.4 PL/SQLライブラリからのプログラム・ユニットの削除

PL/SQLライブラリからプログラム・ユニットを削除するには:

1. オブジェクト・ナビゲータで、「PL/SQLライブラリ」ノードを開き、プログラム・ユニットのライブラリ・ノードを開きます。

2. 開いているライブラリの「プログラム・ユニット」ノードで、削除するライブラリ・プログラム・ユニットをクリックします。

3. ツールバーの「削除」ボタンをクリックします。

4. メッセージ・ボックスで、「はい」をクリックします。

4.13.5.5 PL/SQLライブラリの連結

PL/SQLライブラリを連結するには:

1. オブジェクト・ナビゲータで、連結ライブラリ・ノードをクリックします。

2. ツールバーの「作成」ボタンをクリックします。

3. 連結ライブラリ・ダイアログ・ボックスで、「library」テキスト・ボックスに外部PL/SQLライブラリの名前を入力するか、「参照」をクリックして参照する外部PL/SQLライブラリを検索します。

4. 連結をクリックします。

制限

- 指定したライブラリが見つからない場合は、ダイアログ・ボックスを受け入れたとき、レポートを保存したとき、またはレポートを開いたときに、警告が表示されます。レポートを実行するか、レポートのPL/SQLをコンパイルしようとすると、エラーが表示されます。

- 「連結ライブラリ」リストは保存されます。次回レポートまたはライブラリを開くと、このリストにはレポートを最後に保存したときと同じ内容が含まれています。

- 外部ライブラリが別のライブラリを参照する場合、最初のライブラリに2つ目のライブラリがすでに連結されていても、レポートに両方のライブラリを連結する必要があります。

4.13.5.6 外部PL/SQLライブラリの変換

Windowsで1つ以上のPL/SQLライブラリを別の記録フォーマットに変換するには:

- コマンドラインに%ORACLE_HOME%\BIN\rwconverterと入力し、続けてレポート名と必要な引数を指定します。rwconverterの詳細は、Oracle Reportsオンライン・ヘルプのリファレンスに関する項を参照してください。

4.13.6 プログラム・ユニットのコンパイルおよび実行

この項では、プログラム・ユニットをコンパイルおよび実行する際に実行する可能性がある次のタスクの手順について説明します。

- 単一プログラム・ユニットのコンパイル

- すべてのプログラム・ユニットのコンパイル

- すべてのコンパイルされていないプログラム・ユニットのコンパイル

関連項目

第2.6.4項「プログラム・ユニットについて」

4.13.6.1 単一プログラム・ユニットのコンパイル

単一プログラム・ユニットをコンパイルするには:

1. オブジェクト・ナビゲータの「プログラム・ユニット」ノードで、コンパイルするプログラム・ユニット(PL/SQLサブプログラム、レポート・トリガー、式、グループ・フィルタ、フォーマット・トリガーまたは検証トリガー)をクリックします。

2. 「プログラム」→「コンパイル」→「選択」を選択し、現行のコンパイル状態にかかわらず、選択したプログラム・ユニットをコンパイルします。

注意:

コンパイルされていないプログラム・ユニットには、オブジェクト・ナビゲータの「プログラム・ユニット」ノードで、名前の後にアスタリスク(*)が表示されます。プログラム・ユニットを変更すると、依存するプログラム・ユニットのコンパイル状態が失われます。

3. 「コンパイル」ダイアログ・ボックスで、任意のエラーをクリックし、プログラム・ユニット内のエラーがある位置までナビゲートします。

ヒント:

文末のセミコロンが欠落していないか、または構文のスペルが誤っていないかなどを確認します。

4.13.6.2 すべてのプログラム・ユニットのコンパイル

すべてのプログラム・ユニットをコンパイルするには:

1. オブジェクト・ナビゲータで、すべてのプログラム・ユニット(PL/SQLサブプログラム、レポート・トリガー、式、グループ・フィルタ、フォーマット・トリガーおよび検証トリガーなど)をコンパイルするレポートまたはライブラリをクリックします。

2. 「プログラム」→「コンパイル」→「すべて」を選択し、現行のコンパイル状態にかかわらず、すべてのプログラム・ユニットをコンパイルします。

注意:

コンパイルされていないプログラム・ユニットには、オブジェクト・ナビゲータの「プログラム・ユニット」ノードで、名前の後にアスタリスク(*)が表示されます。プログラム・ユニットを変更すると、依存するプログラム・ユニットのコンパイル状態が失われます。

3. 「コンパイル」ダイアログ・ボックスで、任意のエラーをクリックし、プログラム・ユニット内のエラーがある位置までナビゲートします。

ヒント:

文末のセミコロンが欠落していないか、または構文のスペルが誤っていないかなどを確認します。

4.13.6.3 すべてのコンパイルされていないプログラム・ユニットのコンパイル

すべてのコンパイルされていないプログラム・ユニットをコンパイルするには:

1. オブジェクト・ナビゲータで、すべてのコンパイルされていないプログラム・ユニット(PL/SQLサブプログラム、レポート・トリガー、式、グループ・フィルタ、フォーマット・トリガーおよび検証トリガーなど)をコンパイルするレポートまたはライブラリをクリックします。

2. 「プログラム」→「コンパイル」→「変更分」を選択しすべての未コンパイル・プログラム・ユニットをコンパイルします。

注意:

コンパイルされていないプログラム・ユニットには、オブジェクト・ナビゲータの「プログラム・ユニット」ノードで、名前の後にアスタリスク(*)が表示されます。プログラム・ユニットを変更すると、依存するプログラム・ユニットのコンパイル状態が失われます。

3. 「コンパイル」ダイアログ・ボックスで、任意のエラーをクリックし、プログラム・ユニット内のエラーがある位置までナビゲートします。

ヒント:

文末のセミコロンが欠落していないか、または構文のスペルが誤っていないかなどを確認します。

4.14 レポートのデバッグ

この項では、レポートをデバッグする際に実行する可能性がある次のタスクの手順について説明します。

- レポートのデバッグ

- デバッグ・モードでのレポートの実行

- ブレークポイントの設定

- デバッグ・トリガーの設定

- デバッグ・アクションの参照

- デバッグ・アクションの編集

- デバッグ・アクションの無効化と有効化

- デバッグ・アクションの削除

- PL/SQLインタプリタでのプログラム・ユニットの実行

- PL/SQLインタプリタへの「ナビゲータ」ペインの挿入

- プログラム・ユニットの実行の制御

- コードのステップ・スルー

- 実行時におけるコードの変更

- 現行のスコープ位置の表示

- ローカル変数のチェックまたは変更

- アプリケーション変数の変更

- サブプログラム参照の表示

- レポートの実行のトレース

- レポートの配布のトレース

- SQL TRACEファンクションを使用したトレース

これらのタスクをサポートする概念的な情報は、第2.10項「デバッグ・ツール」を参照してください。

4.14.1 レポートのデバッグ

レポートをデバッグするには:

1. レポートをデバッグ・モードで実行(次に説明)してレポート内の論理エラーをチェックし、レポート出力を表示する前に、実行時にこれらの論理エラーを警告として表示します。デバッグ・モードでのレポートの実行は、PL/SQLインタプリタを使用したレポートのデバッグと同じではありません。

2. 問題の領域を特定したら、「ツール」→「PL/SQLインタプリタ」を選択してPL/SQLインタプリタを表示し、問題があるコードを特定の文番号の領域まで絞り込むために必要なデバッグ・アクションを作成します(第4.14.3項「ブレークポイントの設定」および第4.14.4項「デバッグ・トリガーの設定」を参照)。

3. PL/SQLインタプリタを閉じてレポートを実行します。

4. デバッグ・アクションを参照し、アプリケーション情報を評価します。

5. 問題があるコードを特定の領域まで狭めたら、PL/SQLインタプリタを使用して可能なコード修正を実装およびテストします。

使用に関する注意

Oracle JDeveloperでJSPベースのWebレポートをデバッグするときは、指定したsourceタイプ以外のブレークポイントをすべて無効にする必要があります。ブレークポイントを無効にしないと、デッドロックが発生します。ソース・タイプ以外のブレークポイントは、「ブレークポイント」ウィンドウで無効にすることができます。

4.14.2 デバッグ・モードでのレポートの実行

デバッグ・モードでレポートをコンパイルおよび実行するには:

1. 「編集」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログ・ボックスの「ランタイム設定」ページで、「デバッグ実行」を選択します。「OK」をクリックします。

3. ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックして、レポートを実行します。

コマンドラインからデバッグ・モードでレポートをコンパイルおよび実行するには:

- rwbuilderまたはrwrunコマンドラインで、RUNDEBUG=YESと指定します。RUNDEBUGの詳細は、Oracle Reportsオンライン・ヘルプのリファレンスのコマンドラインに関する項を参照してください。

使用に関する注意

デバッグ・モードでのレポートの実行は、レポートの論理エラーを調べる追加のランタイム・チェックを実行する場合に指定します。エラーではないが望ましくない出力となる可能性がある事項がチェックされ、レポート出力を表示する前に、実行時にそれらが警告として表示されます。デバッグ・モードでのレポートの実行は、PL/SQLインタプリタを使用したレポートのデバッグと同じではありません。

4.14.3 ブレークポイントの設定

レポートの実行にブレークポイントを設定するには:

1. PL/SQLインタプリタが表示されていない場合は、「ツール」→「PL/SQLインタプリタ」を選択します。

2. オブジェクト・ナビゲータで、コンパイル済のプログラム・ユニットのノードをクリックして、インタプリタの「ソース」ペインにプログラム・ユニットを表示します。

注意:

コンパイルされていないプログラム・ユニットには、名前の後にアスタリスク(*)が表示されます。

3. ブレークポイントを作成する場所で実行可能文をダブルクリックします。実行可能文とは、条件制御、反復制御、順次制御およびエラー処理に使用されるPL/SQL構成体で、各PL/SQL文の最後には、必ずセミコロン(;)を付ける必要があります。

ヒント:

BEGIN、END、NULL文またはコメントにブレークポイントを置くことはできません。

これにより、ブレークポイントが挿入され、B00nとして示されます。nはブレークポイントの番号です。プログラム・ユニットを実行すると、ブレークポイントの直前の行で実行が中断されます。

4.14.4 デバッグ・トリガーの設定

デバッグ・トリガーを設定するには:

1. PL/SQLインタプリタが表示されていない場合は、「ツール」→「PL/SQLインタプリタ」を選択します。

2. オブジェクト・ナビゲータで、コンパイル済のプログラム・ユニットのノードをクリックして、インタプリタの「ソース」ペインにプログラム・ユニットを表示します。

注意:

コンパイルされていないプログラム・ユニットには、名前の後にアスタリスク(*)が表示されます。

3. ソース・ペインで、デバッグ・トリガーを作成する行を選択して、「プログラム」→「デバッグ・トリガー」を選択します(または、ソース・ペイン内を右クリックし、「トリガー」を選択します)。

ヒント:

BEGIN、END、NULL文またはコメントにブレークポイントを置くことはできません。

4. 「PL/SQLトリガー」ダイアログ・ボックスで、トリガーを定義します。

- 現行のプログラム・ユニットとは異なる位置でトリガーを起動する場合は、「位置」リストから位置を選択します。

- 「トリガー本体」テキスト・ボックスに、デバッグ・トリガーを入力します。
たとえば、ローカルNUMBER変数my_salが5000を超える場合にプログラムの実行を中断するデバッグ・トリガーを作成するには、トリガー本体として次のように入力します。

IF Debug.Getn('my_sal') > 5000 THEN
raise Debug.Suspend;
END IF;

注意:

複数行のテキストを含むデバッグ・トリガーを作成するには、コードをBEGIN文とEND文で囲みます。

この行の実行時にPL/SQLインタプリタを表示する場合は、DEBUGパッケージからDEBUG.SUSPEND例外を呼び出す必要があります。これを行わないと、Oracle Reports Builderによってコードが暗黙に実行され、PL/SQLインタプリタは表示されません。

5. 「OK」をクリックして、選択した行に対するデバッグ・トリガーを作成します。

ヒント:

「PL/SQLインタプリタ」ペインでコマンドを入力して、デバッグ・トリガーを作成することもできます。

4.14.5 デバッグ・アクションの参照

デバッグ・アクションを参照するには:

- オブジェクト・ナビゲータで、デバッグ・アクション・ノードを開きます。オブジェクト・ナビゲータに、現行のレポートに関連付けられたデバッグ・アクションのリストが表示されます。
または

- PL/SQLインタプリタで、DESCRIBEコマンドを使用して特定のデバッグ・アクションに関する情報を表示します。
たとえば、インタプリタ・ペインにDESCRIBE BREAK 1と入力すると、ブレークポイント1に関する次の情報が表示されます。

Breakpoint: 1
Program Unit: Procedure Body <programunit_name>
Line: 3
Enabled: YES

4.14.6 デバッグ・アクションの編集

デバッグ・アクションを編集するには:

1. オブジェクト・ナビゲータで、デバッグ・アクション・ノードを開き、デバッグ・アクション・アイコンをダブルクリックして適切なダイアログ・ボックスを表示します。

2. ダイアログ・ボックスで、デバッグ・アクションの内容またはプロパティを編集します。

3. 「OK」をクリックします。

4.14.7 デバッグ・アクションの無効化と有効化

デバッグ・アクションを無効または有効にするには:

- オブジェクト・ナビゲータのデバッグ・アクション・ノードで、目的のデバッグ・アクションを右クリックして、「有効化」または「無効化」を選択します。
または

- PL/SQLインタプリタで、ENABLEまたはDISABLEコマンドを使用して、特定のデバッグ・アクションを有効または無効にします。
たとえば、インタプリタ・ペインに.DISABLE ACTION 1と入力すると、最初のデバッグ・アクションが無効になり、次のステータスが表示されます。

Disabling debug action 1...

4.14.8 デバッグ・アクションの削除

デバッグ・アクションを削除するには:

1. オブジェクト・ナビゲータで、デバッグ・アクション・ノードを開き、削除するアクションをクリックします。

2. ツールバーの「削除」ボタンをクリックします。

4.14.9 PL/SQLインタプリタでのプログラム・ユニットの実行

PL/SQLインタプリタでプログラム・ユニットを実行するには:

1. PL/SQLインタプリタが表示されていない場合は、「ツール」→「PL/SQLインタプリタ」を選択して表示します。

2. インタプリタの「PL/SQL>」プロンプトで、プログラム・ユニットの名前を入力し、続けて文の終了を示すセミコロン(;)を入力します。プログラム・ユニットで引数が必要な場合は、引数をカッコで囲んで指定します。たとえば、getdata(SCOTT);です。

3. [Enter]キーまたは[Return]キーを押すと、次のいずれかの結果になります。

- プログラム・ユニットによって生成される出力は、すべてコマンドラインに表示されます。「PL/SQL>」プロンプトが再度表示されて、実行に成功したことを示します。

- 2番目のプロンプトが表示されて(「+>」)、実行可能な文の入力が終了していないことを示します。文の終了を示すセミコロンを忘れた場合はここで入力し、[Enter]キーまたは[Return]キーを押します。それ以外の場合は、右クリックして新規プロンプトを選択します。

- コマンドラインに実行時エラーが表示され、次に「PL/SQL>」プロンプトが表示されます。プログラム・ユニットを編集またはデバッグする必要があります。

- プログラム・ユニットにブレークポイントまたはデバッグ・トリガーを設定した場合、実行が一時停止されて「(debug n)PL/SQL>」のような新しいプロンプトが表示されます。

使用に関する注意

前述のプログラム・ユニットの実行は、プロシージャ(またはパッケージ・プロシージャ)専用です。戻り値用の変数がないため、ファンクションには該当しません。

4.14.10 PL/SQLインタプリタへの「ナビゲータ」ペインの挿入

PL/SQLインタプリタに「オブジェクト・ナビゲータ」ペインを挿入するには:

1. PL/SQLインタプリタが表示されていない場合は、「プログラム」→「PL/SQLインタプリタ」を選択します。

2. PL/SQLインタプリタで、「表示」→「ナビゲータ・ペイン」を選択して、PL/SQLインタプリタの中央にオブジェクト・ナビゲータ・ペインを挿入します。
ボタン・バーは、新しいオブジェクト・ナビゲータのボタンで更新されます。

3. 必要に応じて、分割バーを使用して3つのペインのサイズを変更します。

4.14.11 プログラム・ユニットの実行の制御

プログラムの状態を検査して変更したら、次の機能を使用して実行を再開または終了できます。

表4-10 プログラム・ユニットの実行

実行機能

説明

STEP

STEPコマンドを使用して、中断されたプログラムの実行を一時的に再開できます。指定された一連の文が実行された後、制御はPL/SQLインタプリタに戻ります。STEP IntoまたはSTEP Overで、次の操作を実行できます。

次の文を実行します(必要に応じてサブプログラム・コールを実行します)。

現行のサブプログラムが戻るまで実行を再開します。

指定されたソースの位置に到達するまで実行を継続します。

GO

GOコマンドを使用して、プログラムの実行を無制限に再開します。つまり、現在実行している実行のスレッドが終了するか、デバッグ・アクションによって再度中断されるまで実行します。

RESET

RESETコマンドを使用して、現行のデバッグ・レベルで実行を継続せずに、デバッグ・レベルの外に制御を戻します。したがって、RESETは現行(またはより上位)での実行を効果的に中断します。

任意の以前のデバッグ・レベルに実行を明示的にリセットするか、デフォルトのトップ・レベルにリセットすることができます。

PL/SQLインタプリタのツールバーからか、「PL/SQLインタプリタ」ペインでコマンドを入力して、これらのコマンドを実行します。

4.14.12 コードのステップ・スルー

コードをステップ・スルーするには:

作業を始める前に、ブレークポイントなどのデバッグ・アクションを設定し、PL/SQLインタプリタの「PL/SQL>」プロンプトでプログラム・ユニットを実行して、実行を一時停止しておく必要があります。

一時停止されたプログラム・ユニットの次の行にステップ実行するには:

- PL/SQLインタプリタのツールバーの「ステップ・イン」ボタンをクリックして、現行のプログラム・ユニットの実行可能コードの次の行を実行します。
次の実行可能な行がネストされたサブプログラム(別のプログラム・ユニット内からコールされるプログラム・ユニット)へのコールである場合、ステップ・インではネストされたサブプログラムの最初の行で実行を停止します。

一時停止されたプログラム・ユニットでネストされたサブプログラムをステップ・オーバーするには:

- PL/SQLインタプリタのツールバーの「ステップ・オーバー」ボタンをクリックします。
ステップ・オーバーではネストされたサブプログラムへのあらゆるコールを実行し、現行のプログラム・ユニットの次の実行可能な行で実行を停止します。

ネストされたサブプログラムをステップ・アウトしてプログラム・ユニットの外に戻るには:

- PL/SQLインタプリタのツールバーの「ステップ・アウト」ボタンをクリックします。
ステップ・インを使用してネストされたサブプログラムを実行している場合、ステップ・アウトではネストされたサブプログラムの実行を完了し、元のプログラム・ユニットの次の行に戻ります。

プログラム・ユニットの実行を再開するには:

- PL/SQLインタプリタのツールバーの「実行」ボタンをクリックします。
プログラム・ユニットの実行は、プログラム・ユニットの実行が終了するまで、または別のデバッグ・アクションによって再度中断されるまで継続します。

注意:

デバッグ・アクションがPL/SQL LOOPに置かれている場合、「実行」を使用するとループを循環します。

現行のデバッグ・レベルで中断された実行を終了するには:

- PL/SQLインタプリタのツールバーの「リセット」ボタンをクリックします。
インタプリタまたはデバッグ・レベルの外(存在する場合)に制御が戻されます。

4.14.13 実行時におけるコードの変更

実行時にコードを変更するには:

1. オブジェクト・ナビゲータで、目的のプログラム・ユニット、メニュー項目コマンドまたはトリガーをダブルクリックして、PL/SQLエディタを表示します。

2. PL/SQLエディタで、必要な変更を加えます。

3. 「コンパイル」、「閉じる」の順にクリックして、PL/SQLエディタを取り消します。

4. PL/SQLインタプリタのツールバーで、「実行」またはステップ・イン、ステップ・オーバーあるいはステップ・アウトを選択し、プログラムの実行を再開します。

関連項目

第2.10.9項「実行時のコード変更について」

4.14.14 現行のスコープ位置の表示

現行のスコープ位置を表示するには:

- オブジェクト・ナビゲータで、スタック・ノードを開き、スタック内の目的の枠を開いて、ローカルの変数とパラメータに関する情報を表示します。
または

- PL/SQLインタプリタで、「ソース」ペインを表示して現行のスコープ位置を表示します。

関連項目

第2.10.7項「現在のスコープ位置について」

4.14.15 ローカル変数のチェックまたは変更

ローカル変数の値をチェックまたは変更できるのは、PL/SQLインタプリタでプログラム・ユニットが一時停止されているときです。

ローカル変数の値をチェックするには:

1. オブジェクト・ナビゲータで、スタック・ノードを開いてコール・スタックの枠を表示します。

2. スタック・ノードで、チェックまたは変更する変数を含むプログラム・ユニットのノードをダブルクリックします。
各ローカル変数は、現行の値で表示されます。

ローカル変数の値を編集するには:

1. オブジェクト・ナビゲータで、スタック・ノードを開いてコール・スタックの枠を表示します。

2. スタック・ノードで、チェックまたは変更する変数を含むプログラム・ユニットのノードをダブルクリックします。
各ローカル変数は、現行の値で表示されます。

3. オブジェクト・ナビゲータで、変数の値をクリックします。

4. 変数の値を再度クリックして、編集モードに入ります。

5. 変数の値を変更します。

6. オブジェクト・ナビゲータの空白領域をクリックして編集モードを終了し、変更した値を受け入れます。

7. PL/SQLインタプリタでプログラム・ユニットの実行を再開して、新しい値の効果をテストします。

4.14.16 アプリケーション変数の変更

変数を変更するには:

1. オブジェクト・ナビゲータで、グローバル変数ノードまたはローカル変数のスタック・ノードを開きます。

2. 目的のエントリを選択して開きます。オブジェクト・ナビゲータには、エントリに関連付けられている変数がすべて表示されます。

3. 「=」の後にある既存の値をクリックし、必要な値を入力して値を編集します。

4.14.17 サブプログラム参照の表示

サブプログラム参照を表示するには:

1. オブジェクト・ナビゲータで、目的のサブプログラムを選択して開きます。

2. 「参照」ノードまたは「参照元」ノードを選択して開きます。
オブジェクト・ナビゲータに、すべてのサブプログラム参照が表示されます。

注意:

「参照元」には、現行のプログラム・ユニットをコールするプログラム・ユニットが表示されます。「参照」には、現行のプログラム・ユニットによってコールされるプログラム・ユニットが表示されます。

4.14.18 レポートの実行のトレース

トレース・オプションを設定するには、次のいずれかの操作を行います。

- 「プログラム」→「トレース」を選択し、「ランタイム・トレース設定」ダイアログ・ボックスに必要に応じて入力します。

- ReportsToolsロギング構成ファイル(logging.xml)内の logger要素のlevel属性でトレース・レベルを設定します(oracle.reports.runtime)。

rwserverおよびrwservletのトレースなどの詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「OracleAS Reports Servicesの構成」および「Oracle Reportsのチューニング」を参照してください。

4.14.19 レポートの配布のトレース

レポートの配布をトレースするには:

1. 「プログラム」→「トレース」を選択します。

2. 「ランタイム・トレース設定」ダイアログ・ボックスで、トレース・ファイルの名前を「トレース・ファイル」フィールドに指定します。

3. 「配布」チェック・ボックスを選択します。

4. 「OK」をクリックします。

5. レポートを実行します。

6. テキスト・エディタを使用して、トレース・ファイルを開いて表示します。トレース・ファイルが空の場合、配布は正常に行われています。失敗した場合は、トレース・ファイルで配布エラーが識別されます。

関連項目

第2.8.3項「レポートの配布について」

第4.7.12項「複数の宛先へのレポートの配布」

4.14.20 SQL TRACEファンクションを使用したトレース

TRACEファンクションによって、解析されている正確な文が提供されます。文を解析した後は、SQL*Plusでその文の時間を計ることができ、データベースから取り出される見積り行数によって、時間を計算できます(常に同じ条件で比較します。つまり出力は画面ではなくファイルに送信します。SQL文をSQL*Plusに移す場合に、SQL文内の要素を変えないでください。WHERE句を少しでも変更すると、パフォーマンスに大きな差異が生じることがあります)。

レポートをトレースするには、次の2つの方法があります。

- ユーザーレベル

- システムレベル

必要な情報をより簡単に見つけることができるため、ユーザーレベルをお薦めします。SQL TRACEの詳細は、Oracle SQLリファレンスを参照してください。

4.14.20.1 ユーザーレベル・トレースの実行

1. パフォーマンス・データが必要なレポートを開きます。

2. 次の式を含むSQL-TRACEという名前のレポートレベルの式列を作成します。

SRW.DO_SQL ('ALTER SESSION SET SQL_TRACE=TRUE');
return(1); --Formulas must return a value.

注意:

Before FormトリガーからSQL TRACEをコールすることもできます。

3. レポートを実行します。ORACLE_HOME/rdbms/log、またはinit.oraのパラメータUSER_DUMP_DESTで指定された宛先に、新規ファイルsome_number.trcが作成されます。(ファイルの日付スタンプは、どの.trcファイルが自分のものかの判別に役立ちます)。

4. TKPROFコマンドを使用して、トレース出力ファイルをフォーマットします。

rwbuilderセッション中に2つ以上のトレースを発行する場合、トレース出力は1つのファイルに連結されます。

4.14.20.2 システムレベル・トレースの実行

1. SQL_TRACE=TRUEおよびTIMED_STATISTICS=TRUEという文をinit.oraファイルに挿入します。

2. データベースをシャットダウンしてから再起動します。

注意:

データベースとの相互作用がすべてトレースされるので、ORACLE_HOME/rdbms/logは非常に大きくなる可能性があります。

4.15 他の製品との統合

この項では、レポートを他の製品と統合する際に実行する可能性がある次のタスクの手順について説明します。

- Oracle Portalでのレポートの公開

- Oracle以外のデータ・ソースへのアクセス

4.15.1 Oracle Portalでのレポートの公開

Oracle Portalは、Oracle Reportsと統合されています。この統合により、レポートをポートレット(小さな動的領域)またはページ上のアイテムとしてすばやく公開することが可能になったため、エンド・ユーザーは動的なレポートに簡単にアクセスできます。

詳細は、Oracle Technology Network (OTN)を参照してください。Oracle Reportsのページ(http://www.oracle.com/technology/products/reports/index.html)で、「Getting Started」をクリックし、「Getting Started with Oracle Reports」ホームページを表示します。左側にあるトピック・セクションのリストで、「任意のフォーマット」をクリックして「Oracle Portaltとの統合」を選択します。

Oracle Portalでレポートをポートレットとして公開するための詳細およびタスクは、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「Oracle Portalにおけるレポートの配布」を参照してください。

4.15.1.1 Oracle Portalでのアイテム・リンクとしてのレポートの実行

デフォルト以外の言語を設定してOracle Portalをインストールした場合は、レポートをポータル・ページのアイテム・リンクとして公開するために必要なエントリの一部が、自動的にはインストールされません。選択した言語は、rwlang.sqlスクリプトを使用してインストールする必要があります。

したがって、次のような場合は、rwlang.sql(ORACLE_HOME/portal/admin/plsql/wwd/)を実行してください。

- Oracle Portalのインストール時に、デフォルトの言語(US)以外に1つ以上の言語を選択した場合
および

- Oracle Portalで、レポートをアイテム・リンクとして公開する場合

注意:

デフォルトでは、レポートはメイン・セクションに定義されます。

このスクリプトを実行する手順は次のとおりです。

1. ORACLE_HOME/portal/admin/plsql/wwd/ディレクトリに移動します。

2. sqlplusを実行します。

3. ポータルのスキーマを使用してOracle Portalにログインします。

4. rwlang.sqlスクリプトを、次のパラメータを使用して実行します。
@rwlang.sql language_list

意味は次のとおりです。

language_listは、カンマで区切られた言語のリストです。

たとえば、フランス語と日本語をインストールする場合は、次のように入力します。

@rwlang.sql f,ja

使用に関する注意

- sqlplusは、この言語リストをカンマ(,)で区切られた1つのパラメータとしてではなく、2つのパラメータとして処理するため、カンマ(,)の前後には空白を入れないでください。

- rwlang.sqlスクリプトのヘッダーには、すべての言語の省略形の完全なリストを指定します。テキスト・エディタでスクリプト・ファイルを編集して、様々な省略形を検索してください。

4.15.2 Oracle以外のデータ・ソースへのアクセス

Oracle Reportsでは、様々なデータ・ソースにアクセスできます。Oracle Open Client Adapter (OCA)およびOpen Database Connectivity (ODBC)ドライバは、プラガブル・データ・ソース(PDS)アーキテクチャに置き換えられ、Oracle Reportsでサポートされなくなりました。ただし、Java Database Connectivity (JDBC)は、JDBC-ODBCブリッジを使用できるプラガブル・データ・ソースの1つであり、これを利用することにより他のデータ・ソースへのアクセスが可能になります。

次の手順に従って、データ・ソースにアクセスする最も簡単な方法を判別します。

1. データ・ソースにJava Database Connectivity (JDBC)がある場合
プラガブル・データ・ソース(PDS)がすでに設定されています。必要な手順は、JDBCをデータ型として選択することのみです。

2. データ・ソースにODBCがある場合
Sun社からJDBC-ODBCブリッジをダウンロードしてあることを確認します。これで、手順1で説明したJDBC接続を使用できます。データ・ソース用のODBCドライバがあるかどうかがわからない場合は、その会社のWebサイトを確認してください。たとえば、Microsoft社にはExcel用のダウンロード可能なODBCドライバがあります。

3. ファイルがXML形式である場合
Oracle Reportsには、XML PDSが含まれています。DTDファイルが使用可能である場合、必要な手順はXMLをデータ型として選択することのみです。DTDファイルが使用可能ではない場合、このファイルを作成する必要があります。

4. ファイルがカンマ区切りである場合
Oracle Reportsに含まれるテキストPDSをデータ・ソースの問合せに使用できます。

5. 会社内でデータ型に対するPDSがすでに作成されている場合
PDSが存在する場合は、Reports Server上にあるはずです。このようなファイルが存在するかどうかを管理者に問い合せてください。PDSが存在する場合は、そのPDSをOracle Reports Builderのクラスパスに追加します。PDSが存在しない場合は、API参照を使用して作成します。

例

Oracle Reportsには、XMLデータ・ソースのサンプル・ファイルが付属しています。

関連項目

Oracle Reportsオンライン・ヘルプのプラガブル・データ・ソースに関する項にある次のトピック:

- プラガブル・データ・ソースについて

- プラガブル・データ・ソースの追加

- プラガブル・データ・ソースへの接続

- オンライン・ヘルプのプラガブル・データ・ソースへの追加

- プラガブル・データ・ソースのインタフェース定義

- プラガブル・データ・ソースの問題のトラブルシューティング

4.16 Oracle Reports Builderの管理

この項では、Oracle Reports Builderを管理する際に実行する可能性がある次のタスクの手順について説明します。

- データベース・ロールの設定

- 別のフォーマットへの変換

- SQL文を使用したパフォーマンスの改善

- WHERE句を使用したパフォーマンスの改善

4.16.1 データベース・ロールの設定

この手順を開始する前に、データベース管理者によってロールが作成されて権限がそのロールに付与されていることと、承認されたエンド・ユーザーにそのロールが付与されていることを確認します。詳細は、『Oracle Databaseアプリケーション開発者ガイド』を参照してください。

レポートにデータベース・ロールを設定するには:

1. オブジェクト・ナビゲータで、レポートのプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。

2. 「レポート」ノードで、「ロール名」プロパティをデータベース管理者がデータベースで定義したとおりに設定します。

3. 必要に応じて、ロールのパスワードを設定するには、「ロール名」値フィールド内のボタンをダブルクリックして、「ロール設定」ダイアログ・ボックスを表示します。

使用に関する注意

- コマンドラインでReports Runtime (rwrun)を使用してロールを指定すると、レポートでのロール設定は無視されます。

- 1つのレポートに設定できるロールは1つのみです。複数のロールを設定するには、他のロールが付与されているロールを設定する必要があります。

注意:

PL/SQLトリガーでロールを設定しないでください。PL/SQLがコンパイルできなくなります。

関連項目

第2.9.1項「データベース・ロールについて」

4.16.2 別のフォーマットへの変換

1つ以上のレポート定義またはPL/SQLライブラリを別のファイル・フォーマットに変換するには:

- Oracle Reports Builderで、「ツール」→「ファイル変換」を選択し、「変換」ダイアログ・ボックスを表示します。

- Windowsのコマンドラインで、%ORACLE_HOME%\bin\rwconverterと入力し、続けてレポート名と必要な引数を指定します。

4.16.3 SQL文を使用したパフォーマンスの改善

Oracle Reports Builderの機能やPL/SQLより、SQLのほうがすばやく操作を実行できる場合があります。SQLを使用してパフォーマンスが改善される最も一般的な例は、次のとおりです。

- グループ・フィルタまたはフォーマット・トリガーのかわりに、WHERE句を使用してレコードを除外します。

- Oracle Reports Builderで文字列を切り捨てるかわりに、SUBSTRファンクションを使用して文字列を切り捨てます。

- 式やサマリーではなく、問合せで直接計算を実行します。
理論的説明: SQLでは、サマリーや式よりもすばやく計算を実行できます。WHEREおよびSUBSTRを使用すると、データの取得後ではなく取得中にデータを操作するため、不必要なフェッチが削減されます。少数のレコードを取得する場合と比較して、大量のレコードを取得する場合、パフォーマンスの改善がより顕著になります。

4.16.4 WHERE句を使用したパフォーマンスの改善

複数の問合せを含むデータ・モデルのマトリックス・セル問合せに、WHERE句を追加するとします。複数の問合せを含むデータ・モデルを使用しており、ディメンション問合せがWHERE句によって制限されている場合、WHERE句をマトリックス・セル問合せに追加すると、必要以上のレコードが取得されないようにできます。たとえば、ディメンションに次の問合せがあるとします。

Q_Dept

SELECT DEPTNO FROM DEPT
WHERE DEPTNO < 100

Q_Job

SELECT DISTINCT JOB FROM EMP
WHERE DEPTNO < 100

Q_Filler

セル問合せで必要なレコードのみが取得されるように、次のSELECT文を記述します。

SELECT DEPTNO, JOB, SUM(SAL) FROM EMP
WHERE DEPTNO IN (SELECT DEPTNO FROM DEPT
WHERE DEPTNO < 100) AND JOB IN (SELECT
DISTINCT JOB FROM EMP WHERE DEPTNO < 100)
GROUP BY DEPTNO, JOB

この問合せにWHERE句を追加しない場合、Q_DeptとQ_Jobでの選択にかかわらず、すべての行がデータベースから取得されます。

注意:

副問合せを使用しないWHERE句(WHERE EMP.DEPTNO = DEPT.DEPTNOなど)を追加した場合、問合せはクロス積の値の組合せごとに1度実行されます。この結果、クロス積に多数の組合せがある場合は、Q-Fillerでの問合せが過度に実行されることになります。

第I部

基本的なレポートの作成

この部の各章では、簡単なレポートを作成する手順を示します。

この部は、次の章で構成されています。

- 第5章「表形式レポートの作成」

表形式レポートは、最も基本的なタイプのレポートです。このレポート出力は、複数列および複数行の書式で構成されており、それぞれの行と列はデータベース表の行と列に対応します。

- 第6章「メール・ラベル・レポートの作成」

メール・ラベル・レポートは、封筒に貼り付ける住所ラベルに適した書式で表示されます。独自のテキストを記入したり、データベース値やファイル内のテキストを埋め込んで、ラベルを作成します。ラベルは、任意の位置から、1つまたは複数の列で印刷できます。

- 第7章「フォーム・レター・レポートの作成」

フォーム・レター・レポートは、印刷されるフォームまたはレターに適した書式で表示されます。メール・ラベル・レポートと同様に、独自のテキストを記入したり、データベース値やファイル内のテキストを埋め込んだりできます。

- 第8章「マスター/マスター・レポートの作成」

マスター/マスター・レポート(親/親レポートとも呼ばれます)は、直接的な関係のない2つ以上のデータ・セットで構成されます。このレポートには、リンクされていない(親子リレーションシップのない)複数の問合せが含まれています。

- 第9章「サマリー・レポートの作成」

サマリー・レポートには、レポートの1つ以上の列を集計するフィールドが含まれます。この集計は、売上合計であったり、手数料リストの平均値であったり、一連の発注書の最高額であったりします。

5 表形式レポートの作成

この章では、最も基本的なレポート・スタイルである表形式レポートについて学習します。この章の手順に従うと、図5-1に示すレポート出力を生成できます。

図5-1 表形式レポートの出力

概要

表形式レポートは、作成できるレポートのうちで最も基本的なタイプです。レポート出力は、複数列および複数行の書式で構成されていて、それぞれの列はデータベース表の列に対応します。この例では、列ラベル「Department Id」、「Department Name」、「Manager Id」および「Location Id」はSQLのSELECT文から取得された列です。列ラベルは必要に応じて変更できます。

データ・リレーションシップ

- 通常、最初の手順として、SELECT文を含む問合せを作成して、Oracle Reportsでデータベースからフェッチするデータを定義します。このサンプル・レポートで使用する問合せは1つのみですが、レポートには問合せをいくつでも組み込めます。

- 作成する問合せには、デフォルト・グループが1つずつ自動的に作成されます。デフォルトの問合せ名は、Q_1、Q_2というようになります。デフォルトのグループ名は、G_fieldname,です。fieldnameは、問合せで指定する表の最初のフィールドです。たとえば、表EMPLOYEEの最初のフィールドがFIRSTNAMEの場合、デフォルトのグループ名はG_FIRSTNAMEになります。

- 問合せのSELECT文で指定するデータベース列ごとに、1つのレポート列が作成され、グループに割り当てられます。デフォルトでは、列はSELECT文に入力した順に表示されます。デフォルトの列名は、データベースの列名から生成されます。または、SELECT文で指定されている別名によって置換されます。

- 同名の列を複数選択すると、最初の列にはデフォルト名が指定され、2番目の列にはデフォルト名に"1"を追加した名前が指定されます(Deptno、Deptno1など)。

レイアウト

- レポートを実行するには、レポート出力のレイアウト(書式)を指定する必要があります。レイアウトを指定しないと、Oracle Reportsでフェッチしたデータは表示されません。ペーパー・レイアウトとWebレイアウトのどちらを選択したかによって、エラー・メッセージが表示される場合もあります。

- このレポートでは、Oracle Reportsで提供される8種類のスタイルの1つである、表形式のレイアウト・スタイルを使用します。表形式のレイアウトでは、縦方向の一連の列によってデータが表示され、列ヘッダーは列の真上に表示されます。

使用例

このサンプル・レポートの作成過程では、次を行います。

- レポート・ウィザードを使用したレポートの作成。このレポートには表示されるすべての列を選択する問合せが1つ含まれます。Oracle Reportsでは、グループや列など、その他の必要なオブジェクトがデフォルトですべて作成されます。

表形式レポートのサンプルを表示するには、サンプル・フォルダtabularを開き、Oracle Reportsのサンプルtabular.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

5.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のHuman Resourcesサンプル・スキーマ(HR)に対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

5.2 レポート・ウィザードを使用したレポートの作成

レポートは、レポート・ウィザードを使用して作成するか、または独自に作成できます。この例の単純なレポートを作成する場合は、レポート・ウィザードを使用できます。このウィザードを使用すると、レポートのレイアウトの定義やデータ定義の設定を行うことができます。

簡単なレポートを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページでレポートの「タイトル」を入力し、「表形式」を選択して「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT ALL DEPARTMENTS.DEPARTMENT_ID, DEPARTMENTS.DEPARTMENT_NAME,
DEPARTMENTS.MANAGER_ID, DEPARTMENTS.LOCATION_ID
FROM DEPARTMENTS
ORDER BY DEPARTMENTS.DEPARTMENT_ID

ヒント:

この問合せでは、すべての部門ID、部門名、マネージャIDおよび位置IDが選択され、部門IDによってデータがソートされます。

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルtabular_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

8. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第5.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

9. 「フィールド」ページで「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動し、「次へ」をクリックします。

10. 「合計」ページで「次へ」をクリックします。

11. 「ラベル」ページで「次へ」をクリックします。

12. 「テンプレート」ページで、「事前定義テンプレート」を選択し、「Beige」をクリックします。次に「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次の例のようになります。

図5-2 表形式レポートのペーパー・デザイン・ビュー

注意:

ペーパー・デザイン・ビューでは、部門ID番号順になった表など、表形式レポートのデータ表示を見ることができます。

13. レポートをtabularreport_your_initials.rdfという名前で保存します。

5.3 サマリー

おめでとうございます。表形式のペーパー・レポートは正常に作成されました。この章で学習した内容は次のとおりです。

- レポート・ウィザードを使用して、表形式レポートのレイアウトを定義する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

6 メール・ラベル・レポートの作成

この章では、標準のレポート・スタイルの1つであるメール・ラベル・レポートについて学習します。この章の手順に従うと、図6-1に示すレポート出力を生成できます。

図6-1 メール・ラベル・レポートの出力

概要

- メール・ラベル・レポートは、封筒の住所ラベルとしての使用に適したフォーマットで表示されるデータで構成されています。ラベルは1つ以上の列に印刷が可能で、任意の位置から開始できます。

- メール・ラベル・レポートでは、データベースのデータを静的テキストと組み合せて住所を作成し、封筒のメール・ラベルとして印刷できます。

- メール・ラベルを作成するには、メール・ラベルのレイアウト・スタイルを備えた簡単な単一問合せレポートを使用します。

データ・リレーションシップ

メール・ラベル・レポート用のデータは、問合せを作成してデータを選択するだけでフェッチできます。

レイアウト

- Oracle Reportsで提供されるデフォルトのメール・ラベル・レイアウトは、各フィールドが前のフィールドの真下にくるように配置されています。フィールド・ラベルは印刷されません。

- レポート・ウィザードを使用して単純なメール・ラベル・レポートを作成します。レポート・ウィザードには書式設定ページが用意されており、各メール・ラベルのレイアウトをそこで選択できます。

- メール・ラベル間の空白の量を制御するには、繰返し枠のプロパティ・インスペクタにある垂直間隔フィールドを使用します。繰返し枠の間隔はデフォルト値では不十分な場合があります。その場合は、レイアウトのメール・ラベル間に空白を挿入して、ラベルへの印刷時に正しく配置されるように指定することもできます。

使用例

このサンプル・レポートの作成過程では、次を行います。

- レポート・ウィザードを使用したメール・ラベル・レポートの作成と、レポート用のすべての列を選択するクエリー・ビルダーでの単一の問合せの記述。その他のデータ・オブジェクトを作成する必要はありません。Oracle Reportsでは、その他の必要なデータ・オブジェクトがデフォルトですべて作成されます。

- メール・ラベル・レポートの各レコード間に空白を追加するための垂直間隔プロパティを使用しての垂直間隔の追加。

メール・ラベル・レポートのサンプルを表示するには、サンプル・フォルダmailinglabelを開き、Oracle Reportsのサンプル・レポートmailinglabel.rdfを開きます。サンプルを開く方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

6.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のHuman Resourcesサンプル・スキーマ(HR)に対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

6.2 レポート・ウィザードを使用したメール・ラベル・レポートの作成

レポートは、レポート・ウィザードを使用して作成するか、または独自に作成できます。この例の単純なレポートを作成する場合は、レポート・ウィザードを使用できます。このウィザードを使用すると、レポートのレイアウトの定義やデータ定義の設定を行うことができます。

簡単なメール・ラベル・レポートを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページでレポートのタイトルを入力し、「メール・ラベル」を選択して「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページで「クエリー・ビルダー」をクリックします。

8. データ表選択ダイアログ・ボックスで、「EMPLOYEES」表をクリックして「インクルード」をクリックします。

9. 「DEPARTMENTS」表をクリックして「インクルード」をクリックします。

注意:

この場合、EMPLOYEES表とLOCATIONS表はスキーマに直接関連していないので、DEPARTMENTS表を組み込む必要があります。

10. 「LOCATIONS」表をクリックして「インクルード」をクリックします。

11. 「閉じる」をクリックします。
クエリー・ビルダーに3つの表が表示されます。

12. EMPLOYEES表で、次の列名の横にあるチェック・ボックスを選択します。

- FIRST NAME

- LAST NAME

- EMPLOYEE ID

13. LOCATIONS表で、次の列名の横にあるチェック・ボックスを選択します。

- STREET ADDRESS

- POSTAL CODE

- CITY

- STATE PROVINCE

- LOCATION ID

14. 「OK」をクリックします。

15. 「データ・ソース定義」フィールドに、問合せが次のように表示されます。

SELECT ALL EMPLOYEES.EMPLOYEE_ID, EMPLOYEES.FIRST_NAME,
EMPLOYEES.LAST_NAME, LOCATIONS.STREET_ADDRESS, LOCATIONS.POSTAL_CODE,
LOCATIONS.CITY, LOCATIONS.STATE_PROVINCE, LOCATIONS.LOCATION_ID
FROM EMPLOYEES, DEPARTMENTS, LOCATIONS
WHERE ((EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID)
AND (DEPARTMENTS.MANAGER_ID = EMPLOYEES.EMPLOYEE_ID)
AND (DEPARTMENTS.LOCATION_ID = LOCATIONS.LOCATION_ID))

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルmailinglabel_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 前述の手順で説明されているように、「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

16. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第6.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

17. 「テキスト」ページで、メール・ラベルの表示書式を設定します。手順21から30で、次の書式でラベルを表示する方法について説明します。

John Smith
55 Main Street
Springfield, ME 00000

18. 「使用可能フィールド」リストの「FIRST_NAME」をクリックし、「>」ボタンをクリックして、このフィールドを「メール・ラベル」リストに移動します。

19. 「使用可能フィールド」リストの「LAST_NAME」をクリックし、「>」ボタンをクリックします。

20. 「新規行」をクリックします。

21. 「使用可能フィールド」リストの「STREET_ADDRESS」をクリックし、「>」ボタンをクリックします。

22. 「新規行」をクリックします。

23. 「使用可能フィールド」リストの「CITY」をクリックし、「>」ボタンをクリックします。

24. キーボードで[Back Space]キーを押して余分な空白を削除します。

25. 「カンマ」をクリックします。

26. 「使用可能フィールド」リストの「STATE_PROVINCE」をクリックし、「>」ボタンをクリックします。

27. 「使用可能フィールド」リストの「POSTAL_CODE」をクリックし、「>」ボタンをクリックします。
「メール・ラベル・テキスト」ボックスに、コードが次のように表示されます(必要に応じて、次のように空白を追加します)。

&<FIRST_NAME> &<LAST_NAME> &<STREET_ADDRESS> &<CITY>, &<STATE_PROVINCE> &<POSTAL_CODE>

ヒント:

メール・ラベルの書式設定の詳細は、レポート・ウィザードのこのページで「ヘルプ」をクリックして参照してください。

28. 「次へ」をクリックします。

29. 「テンプレート」ページで、「テンプレートなし」を選択し、「終了」をクリックしてペーパー・デザイン・ビューにレポート出力を表示します。次の例のようになります。

図6-2 メール・ラベル・レポートのペーパー・デザイン・ビュー

30. レポートをmailinglabel_your_initials.rdfという名前で保存します。

6.3 垂直間隔の追加

この項では、「垂直間隔」プロパティを使用して、メール・ラベル・レポートのレコード間に空白を追加します。この間隔は、レコードを印刷するメール・ラベルのサイズに応じて調整できます。

垂直間隔を追加するには:

1. オブジェクト・ナビゲータで、レポート名の下の「ペーパー・レイアウト」ノードを開きます。

2. 「ペーパー・レイアウト」の下の「メイン・セクション」ノードを開きます。

3. 「ボディ」の下で、繰返し枠R_G_FIRST_NAMEを検索します。

4. 「R_G_FIRST_NAME」ノードの横の繰返し枠のアイコンをダブルクリックして、プロパティ・インスペクタを表示します。

5. 「繰返し枠」の下で、「枠間の垂直間隔」の横に0.25と入力します。

6. [Enter]キーを押して変更内容を追加します。

7. ツールバーで「ペーパー・レイアウトを実行」をクリックし、ペーパー・デザイン・ビューにレポートを表示します。

レポートの表示は次のようになります。

図6-3 垂直間隔を追加した最終的なメール・ラベル・レポート

6.4 サマリー

おめでとうございます。メール・ラベル・ペーパー・レポートは正常に作成されました。この章で学習した内容は次のとおりです。

- レポート・ウィザードを使用して、メール・ラベル・レポートを定義する。

- ラベル間の垂直間隔を調整する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

7 フォーム・レター・レポートの作成

この章では、標準のレポート・スタイルの1つであるフォーム・レター・レポートについて学習します。この章の手順に従うと、図7-1に示すレポート出力を生成できます。

図7-1 フォーム・レター・レポートの出力

概要

- フォーム・レター・レポートには、ボイラープレート・テキストに埋め込まれているデータベース値が含まれてます(ボイラープレート・テキストは、レポートが実行されるたびに、表示される任意のテキストとして定義できます)。このテキストは、Oracle Reportsで生成することも、手動で作成することも、ファイルからインポートすることもできます。

- フォーム・レター・レポートは、異なる宛先に同じレターのコピーを複数印刷する場合に便利です。

- フォーム・レター・レポートは、メール・ラベル・レポートと同様に、フォーム・レターのレイアウト・スタイルを備えた単純なレポートです。

データ・リレーションシップ

フォーム・レター・レポートでは、データ・リレーションシップに特別な制限はありません。

レイアウト

- Oracle Reportsでは、デフォルトのフォーム・レター・レイアウト・スタイルが用意されています。このレイアウト・スタイルは、選択した列のフィールド名の先頭に、アンパサンド(&)が付いたもので構成されます。アンパサンドは、それらのフィールドが非表示フィールドであり、ボイラープレート・オブジェクトと繰返し枠オブジェクトに組み込まれていることを示します。次に、レイアウトにレターのテキストを追加します。Oracle Reportsでは、1ページにつき1つのレコード(つまり1つのレター)が印刷されます。

- フォーム・レター・レイアウトのデフォルトは非表示フィールドで、レイアウトには表示されますが、参照されるまで出力には表示されません。これを行うには、ペーパー・レイアウト・ビューで、アンパサンド(&)を前に付けて名前を入力します。Oracle Reportsでは、参照は通常のフィールドとして扱われます。

- 一般に、フォーム・レターなどでボイラープレート・テキスト内にフィールドを埋め込む場合は、そのフィールドを非表示にし、必要に応じて参照するのが最良の方法です。これにより、フィールドの値としてテキストが流し込まれます。フィールドはレポート・レイアウトのデフォルトの場所と参照される場所の両方に表示できます。フィールドは、同じボイラープレート・テキストで何度でも参照できます。

使用例

このサンプル・レポートの作成過程では、次を行います。

- レポート・ウィザードを使用したペーパー・レイアウトでのフォーム・レター・レポートの作成。このレポートには表示されるすべての列を選択する問合せが1つ含まれます。Oracle Reportsでは、グループや列など、その他の必要なオブジェクトがデフォルトですべて作成されます。

フォーム・レター・レポートのサンプルを表示するには、サンプル・フォルダformletterを開き、Oracle Reportsのサンプル・レポートformletter.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

7.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のHuman Resourcesサンプル・スキーマ(HR)に対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

7.2 レポート・ウィザードを使用したフォーム・レター・レポートの作成

レポートは、レポート・ウィザードを使用して作成するか、または独自に作成できます。この例では、フォーム・レター・レポートの作成にレポート・ウィザードを使用します。このウィザードを使用すると、レポートのレイアウトの定義やデータ定義の設定を行うことができます。

レポート・ウィザードの「テキスト」ページでフォーム・レター・レポートを設定して、希望どおりのレイアウトで表示できます。ウィザードのこのページでは、ボイラープレート・テキスト(レターの本文など)を設定し、データ表のフィールドを使用して変数データ(宛名など)を入力できます。

フォーム・レター・レポートを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページでレポートのタイトルを入力し、「フォーム・レター」を選択して「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT ALL EMPLOYEES.LAST_NAME, EMPLOYEES.FIRST_NAME, JOBS.JOB_ID, EMPLOYEES.EMPLOYEE_ID, JOBS.JOB_TITLE
FROM EMPLOYEES, JOBS
WHERE (EMPLOYEES.JOB_ID = JOBS.JOB_ID)
ORDER BY EMPLOYEES.EMPLOYEE_ID

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルformletter_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

8. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第7.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

9. 「テキスト」ページで、レターの表示書式を設定します。以降の手順では、フォーム・レター・レポートを次のように表示する方法が示されます。
Employee: &<FIRST_NAME> &<LAST_NAME>

Emp. #: &<EMPLOYEE_ID>

Dear &<FIRST_NAME> &<LAST_NAME>:

The Human Resources department is updating its records of the company's employees. Currently, our records show your employee number as &<EMPLOYEE_ID>, and that you hold the position of &<JOB_TITLE>. If any of this information is incorrect, please contact the Human Resources department.

Thank you,

Human Resources

10. 「フォーム・レター・テキスト」ボックスにEmployee:と入力します。

11. 「スペース」を4回クリックしてスペースを4つ入力します。

12. 「使用可能フィールド」リストで「FIRST_NAME」をクリックし、「>」ボタンをクリックして、このフィールドを「フォーム・レター・テキスト」フィールドに移動します。

13. 「使用可能フィールド」リストの「LAST_NAME」をクリックし、「>」ボタンをクリックします。

14. 「新規行」をクリックします。

15. 「フォーム・レター・テキスト」フィールドにEmp. #:と入力します。

16. 「スペース」を4回クリックしてスペースを4つ入力します。

17. 「使用可能フィールド」リストの「EMPLOYEE_ID」をクリックし、「>」ボタンをクリックします。

18. 「新規行」を2回クリックします。

19. 「フォーム・レター・テキスト」フィールドにDearと入力します。

20. 「スペース」をクリックします。

21. 「使用可能フィールド」リストの「FIRST_NAME」をクリックし、「>」ボタンをクリックします。

22. 「使用可能フィールド」リストの「LAST_NAME」をクリックし、「>」ボタンをクリックします。

23. 「フォーム・レター・テキスト」フィールドで、LAST_NAMEの横にコロン(:)を入力し、「新規行」を2回クリックします。

24. レターの本文を入力します。フィールド名には、「使用可能フィールド」リストを使用して適切な名前を選択し、「>」ボタンをクリックして「フォーム・レター・テキスト」フィールドに挿入します。結果は次のようになります。
The Human Resources department is updating its records of the company's employees. Currently, our records show your employee number as &<EMPLOYEE_ID>, and that you hold the position of &<JOB_TITLE>. If any of this information is incorrect, please contact the Human Resources department.

Thank you,

Human Resources

25. 「次へ」をクリックします。

26. 「テンプレート」ページで、「事前定義テンプレート」を選択し、「Beige」をクリックします。次に「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次の例のようになります。

図7-2 フォーム・レター・レポートのペーパー・デザイン・ビュー

27. レポートをformletterreport_your_initials.rdfという名前で保存します。

7.3 サマリー

おめでとうございます。フォーム・レター・ペーパー・レポートは正常に作成されました。この章で学習した内容は次のとおりです。

- レポート・ウィザードを使用して、フォーム・レター・レポートのレイアウトを定義する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

8 マスター/マスター・レポートの作成

この章では、マスター/マスター・レポートについて学習します。この章の手順に従うと、図8-1に示すレポート出力を生成できます。

図8-1 マスター/マスター・レポートの出力

図8-2 マスター/マスター・レポートの出力

概要

マスター/マスター・レポートでは、直接関連していないデータが2セット以上表示されます。つまり、データを構成しているレコードが2つ以上の個別の問合せを使用してフェッチされます。マスター/マスター・レポート(親/親レポートとも呼ばれます)には、複数の問合せがリンク(親子リレーションシップ)なしで含まれています。

データ・リレーションシップ

データが概念的に関連している場合でも、問合せではフェッチによるデータの関連付けを試行しません。マスター/マスター・レポートのデータを選択するには、関連のない複数の問合せを作成します。Reports Builderでは、その他の必要なデータ・オブジェクトがデフォルトですべて作成されます。

レイアウト

このレポートでは、表形式のレイアウト・スタイルをデフォルトで使用します。2番目の問合せに関連付けられているレイアウト・オブジェクトを移動し、2つの問合せによってフェッチされた情報の間にさらにスペースを空けて、レポートを読みやすくします。

使用例

この例では、部門の名称、番号および位置を一覧表示するマスター・レイアウトを作成し、その後、全従業員をその職種、肩書き、給与とともにすべて一覧表示する別のマスター・レイアウトを作成します。

このサンプル・レポートの作成過程では、次を行います。

- 手動での新規レポートの作成

- データ・ウィザードを使用した2つの問合せの作成

- レポート・ウィザードを使用したデータのレイアウト

- ペーパー・レイアウト・ビューを使用した空白の追加

- 金額を書式設定するためのフィールドの書式設定

マスター/マスター・レポートのサンプルを表示するには、サンプル・フォルダmasterbを開き、Oracle Reportsのサンプルmasterb.rdfを開きます。アクセス方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

8.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のHuman Resourcesサンプル・スキーマ(HR)に対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

8.2 手動での新規レポートの作成

この場合、データ・モデルとレイアウトを別々に作成した方が簡単です。したがって、まず空のレポートを作成してから、問合せを追加し、レイアウトを作成します。

空のレポートを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「新規レポートを手動で作成」を選択して「OK」をクリックします。

8.3 データ・ウィザードを使用した2つの問合せの作成

複数の問合せを使用するレポートを作成する場合、最初にすべての問合せをデータ・ウィザードで作成して、次にレポート・ウィザードを使用してレイアウトを作成する方が簡単です。

問合せを作成するには:

1. データ・モデル・ビューで、「挿入」→「問合せ」を選択してデータ・ウィザードを表示します。

2. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

3. 「問合せ」ページで、「問合せ名」にQ_Deptと入力し、「次へ」をクリックします。

4. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

5. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT DEPARTMENT_ID, DEPARTMENT_NAME, LOCATION_ID
FROM DEPARTMENTS

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルmasterb_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

6. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第8.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

7. 「グループ」ページで「次へ」をクリックします。

8. 「終了」をクリックして、レポートのデータ・モデルをデータ・モデル・ビューに表示します。

9. 前述の手順を2番目の問合せにも繰り返しますが、この場合問合せ名はQ_Empとし、次のSELECT文を使用します。

SELECT LAST_NAME, FIRST_NAME, JOB_ID, SALARY
FROM EMPLOYEES
ORDER BY LAST_NAME, FIRST_NAME

図8-3 関連のない2つの問合せを持つデータ・モデル

8.4 レポート・ウィザードを使用したデータのレイアウト

データ・モデルが完成したら、レポート出力で表示するデータ・オブジェクトのレイアウトを作成する必要があります。レポート・ウィザードを使用すると、データ・モデルのレイアウトを作成できます。

ヒント:

データ・モデルに複数の問合せがあるときは、レポート・ウィザードに入力する前に、各問合せに関連付けられているグループの名前を確認してください。レポート・ウィザードでは、レイアウトのデータをグループ名ごとに選択するよう要求されます。

レイアウトを作成するには:

1. データ・モデル・ビューで、キャンバスを右クリックして「レポート・ウィザード」を選択します。

2. レポート・ウィザードの「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択します。

3. 「スタイル」ページで、「表形式」を選択します。

4. 「グループ」ページで、データ・モデルのグループが両方とも「表示グループ」リストに表示されていることを確認します。

5. 「フィールド」ページで、「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動します。

6. 「テンプレート」ページで、「事前定義テンプレート」を選択し、「Beige」をクリックします。次に「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。部門レポートの出力は次のようになります。

図8-4 マスター/マスター・レポートのペーパー・デザイン・ビュー

8.5 ペーパー・レイアウト・ビューを使用した空白の追加

ペーパー・デザイン・ビューを下方向にスクロールすると、2番目の問合せQ_Empのフィールド・ラベルが、1番目の問合せQ_Deptフィールドの真下に位置しているのがわかります。真下どころか、2つの問合せのフィールドは互いに接触しそうなほど接近した位置にあります。このレポートでは、Q_Empに属するすべてのレイアウト・オブジェクトを下方向へ移動して、2つのレイアウト間に空白を設けます。

レイアウト間に空白を作成するには:

1. 「レポート・エディタ」ウィンドウを移動してサイズを変更し、オブジェクト・ナビゲータとの同時操作が容易になるようにします。

2. 「レポート・エディタ」ウィンドウのツールバーで「ペーパー・レイアウト」ボタンをクリックして、ペーパー・レイアウト・ビューを表示します。

3. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノード、「メイン・セクション」ノード、「ボディ」ノードの順に開きます。

4. 枠「M_G_LAST_NAME_GRPFR」をクリックします。この枠が、ペーパー・レイアウト・ビューでも選択されていることがわかります。

5. レポート・エディタのタイトル・バーをクリックして、アクティブなウィンドウにします。

6. [↓]キーを何回か押して、枠とその全オブジェクトを下方向へ約0.25インチ(0.5センチメートル)移動します。
M_G_LAST_NAME_GRPFRのみでなく、そこに含まれているすべてのレイアウト・オブジェクトも移動したのがわかります。ここで、ペーパー・レイアウト・ビューのデフォルト・モードである制限モードを利用します。制限モードをオンにすると、オブジェクトを親オブジェクトの外部に移動することも、親オブジェクトの後方に配置することもできなくなります。こうした状況下では、レイアウトは無効になり、出力は生成されなくなります。

オブジェクトを親の外に移動する操作自体が無効になる場合もあります。この操作が必要なときは、ツールバーの「制限オフ」ボタンをクリックして、制限モードをオフにします。

図8-5 2つのレイアウトに空白が追加された状態のペーパー・レイアウト・ビュー

7. レポートをmasterb_your_initials.rdfという名前で保存します。

8. ツールバーの「ペーパー・デザイン」ボタンをクリックし、出力をもう一度プレビューします。2つのレイアウト間にスペースが加わったことがわかります。

8.6 フィールドの書式設定

ペーパー・デザイン・ビューの「Salary」フィールドを見てください。値は、位置合せも金額表示もされていません。これらの点は、ペーパー・デザイン・ビューですぐに調整できます。

書式マスクを金額に割り当てるには:

1. ペーパー・デザイン・ビューで、「Salary」ラベルの下に表示されている最初の数値を選択します。すべての値が選択されるので、それらのプロパティを同時に変更できます。

ヒント:

書式マスクの構文に精通している場合は、フィールドの値を右クリックして「プロパティ・インスペクタ」を選択し、「書式マスク」プロパティの値を選択するか、手動で入力してもかまいません。

2. ツールバーの「通貨」ボタンをクリックします。すべての値の横に通貨記号が表示されます。

3. 「10進桁を追加」ボタンを2回クリックします。小数点の右側に小数点以下2桁が追加されます。

4. 「右に整列」ボタンをクリックします。すべての値が右詰めになります。

5. レポートを保存します。

図8-6 金額が書式設定されたペーパー・デザイン・ビュー

8.7 サマリー

おめでとうございます。マスター/マスター・レポートは正常に作成されました。この章で学習した内容は次のとおりです。

- データ・ウィザードを使用して問合せを作成する。

- レポート・ウィザードを使用してデータをレイアウトする。

- ペーパー・レイアウト・ビューで空白を作成する。

- ペーパー・デザイン・ビューでフィールドの書式を設定する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

9 サマリー・レポートの作成

この章では、サマリー・レポートについて学習します。この章の手順に従うと、図9-1に示すレポート出力を生成できます。

図9-1 サマリー・レポートの出力

概要

サマリー・レポートには、他のデータのサマリーで構成される列が少なくとも1つ含まれます。サマリー列には、売上の合計値を計算する列、手数料のリストの平均値を計算する列、一連の発注書内での最大金額を示す列などがあります。

データ・リレーションシップ

- サマリー列の値は、別の列から取得されたデータを集計することによって計算されます。Reports Builderでは、パッケージ化されたサマリー・ファンクションを使用してサマリー列の値を計算できます。

- この例に示すように、デフォルトでは、レコード単位でデータを集計した列の値がレポートのデフォルト列に表示されます。ここでは、「全体に対する割合(%)」がデフォルトの表形式の列で示されます。

- 情報のセットごとにデータを集計した列の値(ブレーク・グループごとに1つのサマリー)が、集計される値の列の下に表示されます。

- 1つの最終結果を計算した列の結果が、レポートの一番下に1箇所表示されます。

- これまでの入門用レポートの列とサマリー列が異なるのは、サマリー列はデータベースから選択しないという点です。サマリー列は、作成してレポートのグループに追加します。

- サマリー列を作成するには、少なくとも次の3つのプロパティを定義する必要があります。

- 「ソース」は、サマリー列で計算されるデータを含む列の名前です。ソース列は変更されません。

- 「ファンクション」は、実行されるサマリーのタイプです。ファンクションによって、サマリー列の値の計算方法がReports Builderに伝えられます。Reports Builderに組み込まれているファンクションは、平均、カウント、最初、最後、最大値、最小値、割合(%)、標準偏差、合計および分散です。レポートに必要な計算を実行するサマリー・ファンクションがReports Builderに組み込まれていない場合は、PL/SQLを使用して独自のファンクションを作成できます。

- 「リセット位置」は、サマリー列の値がゼロに戻るレベルまたは頻度です。リセット・レベル(別名リセット・グループ)によって、サマリー列の値をいつゼロにリセットするか、つまりソース列をいくつ集計するかが決まります。レポート全体のソース列のすべての値をサマリー列で集計するように指定できます。また、ブレーク・グループの列の値を集計することも、レコード単位で列の値を集計することもできます。

レイアウト

このレポートでは、マスター/ディテールのレイアウト・スタイルを使用します。

使用例

この例では、売上データを販売員別に表示および集計するレポートを作成します。このレポートには次のサマリーを入れます。

- すべての顧客による全発注の販売員別合計額

- 各販売員の注文合計額に対して、各顧客の発注額が占めるパーセント値

- 注文合計額に対して、各販売員の受注額が占めるパーセント値

- このレポートにおける全注文の総計

このサンプル・レポートの作成過程では、次を行います。

- サマリーが組み込まれたデータ・モデルとグループ上レイアウトの作成。

- 金額のフィールドの書式設定。

- レポート・ウィザードによって作成されるサマリー列のプロパティのチェック(オプション)。

サマリー・レポートのサンプルを表示するには、サンプル・フォルダsummaryを開き、Oracle Reportsのサンプルsummary.rdfを開きます。アクセス方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

9.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のOrder Entryサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

9.2 データ・モデルとグループ上レイアウトの作成

この例のように、単一問合せレポートを作成する場合、レポート・ウィザードを使用して、データ・モデルとレイアウトを同時に作成できます。

データ・モデルとレイアウトを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページでレポートの「タイトル」を入力し、「グループ上」を選択して「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT SALES_REP_ID, CUSTOMER_ID, SUM(ORDER_TOTAL) TOTAL
FROM ORDERS
GROUP BY SALES_REP_ID, CUSTOMER_ID

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルsummary_code.txtからコードをコピーして、「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

8. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第9.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

9. 「グループ」ページで、「SALES_REP_ID」をクリックし、「>」ボタンをクリックして、このフィールドを「グループ・フィールド」リストに移動し、「次へ」をクリックします。

図9-2 レポート・ウィザードの「グループ」ページ

10. 「フィールド」ページで「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動し、「次へ」をクリックします。

11. 「合計」ページで、「使用可能フィールド」リストの「TOTAL」をクリックし、「合計」をクリックします。ここで使用しているデータ・モデルでは、この手順で次の2つのサマリー列が作成されます。

- SumTOTALPerSALES_REP_IDでは、SALES_REP_IDの値ごとに(つまり販売員別に)TOTALの値が合計されます。

- SumTOTALPerReportでは、レポート全体(つまり全販売員)のTOTALの値が合計されます。

12. さらに「合計」ページで「割合(%)」をクリックします。ここで使用しているデータ・モデルでは、この手順で次の2つの列が作成されます。

- TotalTOTALPerCUSTOMER_IDでは、各顧客(CUSTOMER_ID)の金額が、各販売員(SALES_REP_ID)の合計金額に占めるパーセント値として計算されます。

- TotalTOTALPerSALES_REP_IDでは、各販売員(SALES_REP_ID)の金額が、レポート全体の合計金額に占めるパーセント値として計算されます。

図9-3 レポート・ウィザードの「合計」ページ

13. 「次へ」をクリックします。

14. 「ラベル」ページで、ラベルを次のように変更し、「次へ」をクリックします。

フィールド

ラベル

SALES_REP_ID

Sales Rep

CUSTOMER_ID

Customer

TOTAL

Dollars

15. 「テンプレート」ページの「事前定義テンプレート」で「Beige」が選択されていることを確認します。

16. 「終了」をクリックして、レポート出力をペーパー・デザイン・ビューに表示します。

9.3 フィールドの書式設定

ペーパー・デザイン・ビューの「合計」フィールドを見てください。値は、位置合せも金額表示もされていません。これらの点は、ペーパー・デザイン・ビューですぐに調整できます。

書式マスクを金額に割り当てるには:

1. ペーパー・デザイン・ビューで、「Dollars」ラベルの下に表示されている最初の数値を選択します。すべての値が選択されるので、それらのプロパティを同時に変更できます。

ヒント:

書式マスクの構文に精通している場合は、フィールドの値を右クリックして「プロパティ・インスペクタ」を選択し、「書式マスク」プロパティの値を選択するか、手動で入力してもかまいません。

2. ツールバーの「通貨」ボタンをクリックします。すべての値の横に通貨記号が表示されます。

3. 「10進桁を追加」ボタンを2回クリックします。小数点の右側に小数点以下2桁が追加されます。

4. フィールドの一番右側にあるハンドルをクリックし、そのまま左へ約0.5インチ(1.5センチメートル)ドラッグして、フィールドのサイズを変更します。

5. 「右に整列」ボタンをクリックします。すべての値が右詰めになります。

6. 「Dollars」ラベルを選択します。

7. 「右に整列」ボタンをクリックします。

8. 「合計」ラベルの右側にある数値を選択します。

9. 「通貨」ボタンをクリックします。すべての値の横に通貨記号が表示されます。

10. 「10進桁を追加」ボタンを2回クリックします。小数点の右側に小数点以下2桁が追加されます。

11. 「右に整列」ボタンをクリックします。すべての値が右詰めになります。

図9-4 金額が書式設定されたサマリー・レポートの出力

12. レポートの最後に進んでください。最終ページの最後の値は、「合計」というラベルの付いたサマリーとなります。この値は、レポート全体のTOTALの合計値です。

13. 「合計」ラベルの右側にある、書式設定されていない数値を選択します。

14. このフィールドをクリックし、その右端が「合計」列の値の右端と揃うまでドラッグします。

15. ツールバーの「通貨」ボタンをクリックします。「合計」の値の横に通貨記号が表示されます。

16. 「10進桁を追加」ボタンを2回クリックします。小数点の右側に小数点以下2桁が追加されます。

17. 「右に整列」ボタンをクリックします。すべての値が右詰めになります。

18. レポートをsummaryb_your_initials.rdfという名前で保存します。

図9-5 レポートの合計が書式設定されたサマリー・レポート

9.4 サマリー列のプロパティのチェック(オプション)

この例では、プロジェクトの要件に従って、レポート・ウィザードによりサマリーが作成されました。ただし、場合によっては、希望どおりの計算を行うためにサマリーの設定を手動で調整する必要があります。レポート・ウィザードで作成されたサマリーを入念に確認すれば、サマリーの機能がさらに理解しやすくなります。

この項では、レポートの変更は行いません。サマリーの理解を深めるために、サマリーの設定を確認するにとどめます。

サマリーの設定の確認

1. ペーパー・デザイン・ビューで、「割合(%)」ラベルの右に表示されているパーセント値を選択します。

2. 値をダブルクリックして、プロパティ・インスペクタを表示します。

3. プロパティ・インスペクタの「ソース」プロパティを見てください。ここには、このフィールドのソースとなる列が示されています。

4. レポート内のすべてのサマリーについて手順1から3を繰り返します。これらのサマリー・フィールドそれぞれについて、ソースとなる列の名前を書き留めます。

5. オブジェクト・ナビゲータで、「データ・モデル」ノードの横のビュー・アイコンをダブルクリックして、データ・モデル・ビューを表示します。

6. データ・モデル・ビューで、G_SALES_REP_IDグループの「TotalTOTALPerSALES_REP_ID」をダブルクリックして、プロパティ・インスペクタを表示します。

7. プロパティ・インスペクタでは、「サマリー」の下のプロパティの値は次のように設定されています。

- 「ファンクション」の値は「割合(%)」です。「割合(%)」を「合計」に変更します。「計算位置」プロパティは、「合計」の計算には不要なので非表示になります。「ファンクション」の値を「割合(%)」に戻すと、「計算位置」プロパティが再表示されます。

- 「ソース」の値は「TOTAL」列です。したがって、サマリーの計算にはTOTAL列が使用されます。

- 「リセット位置」の値は「G_SALES_REP_ID」です。TotalTOTALPerREPIDの値は、G_SALES_REP_IDの各レコード(つまり各販売員)の後でゼロにリセットされます。

- 「計算位置」の値は「Report」です。計算レベルが「Report」というのは、TotalTOTALPerSALES_REP_ID列のパーセント値が、レポート全体のTOTALの合計に基づいていることを意味します。

8. データ・モデル内の各サマリーについて手順6から7を繰り返します。サマリーごとのプロパティ値に相違があることがわかります。

9. ペーパー・デザイン・ビューに戻り、サマリーに対応するフィールドがレイアウトのどこに配置されているかを確認することも有益です。たとえば、TotalTOTALPerSALES_REP_IDに対応するフィールドは、マスター繰返し枠R_G_SALES_REP_IDの内側、そしてディテール繰返し枠R_G_CUSTOMER_IDの外側に配置されています。

9.5 サマリー

おめでとうございます。サマリー・レポートは正常に作成されました。この章で学習した内容は次のとおりです。

- レポート・ウィザードを使用して、サマリーを含むデータ・モデルを作成し、データをレイアウトする。

- ペーパー・デザイン・ビューでフィールドの書式を設定する。

- サマリーとそのプロパティをチェックする。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

第II部

グループ・レポートの作成

この部の各章では、グループ・レポートを作成する手順を示します。これらのレポートでは、単一の問合せまたは複数の問合せに基づくグループとして出力行が表示されます。グループ・レポートには式列を組み組むことができ、レポートの値はページの縦方向または横方向に印刷できます。

- 第10章「1つの問合せを使用したグループ・レポートの作成」

単一問合せグループ・レポートには問合せが1つ含まれ、1つ以上の列で共通する値に基づくグループにレポート行が分割されます。たとえば、従業員を部門番号に基づいてグループ化できます。この場合、各部門番号はグループごとに1回のみ出力されます。このグループ化を行わないと、部門の従業員ごとに部門番号が出力されることになります。このレポートには、グループ左レポートやグループ上レポートがあります。これらのレポートは、以前はブレーク・レポートまたはマスター/ディテール・レポートと呼ばれていました。

- 第11章「2つの問合せを使用したグループ・レポートの作成」

2つの問合せを使用したグループ・レポートは、単一問合せグループ・レポートと外観はほぼ同じです。違いは、前者が複数の問合せを使用しているという点のみです。複数の問合せを使用することで保守作業が簡易化され、データ・モデルを理解しやすくなります。

- 第12章「横グループ・レポートの作成」

横グループ・レポートでは、データベースの値がページの縦方向ではなく横方向に出力されます。このタイプのレポートでは、マスター・グループの値がページの縦方向に出力され、ディテール・グループの値がページの横方向(左から右)に出力されます。

- 第13章「グループ左サマリー・レポートの作成」

グループ左サマリー・レポートは、マスター・レコード値、ディテール・レコードおよびサマリーで構成されます。サマリーでは、各マスター・レコードのディテールの合計が計算されます。

- 第14章「グループ左の式レポートの作成」

グループ左の式レポートには式列が含まれます。この列の値はPL/SQL式に基づいて計算されます。サマリー列と同様に、式列はユーザーが作成する計算列です。この列は、プレースホルダ列など、他の列にあるデータに対してユーザー定義の計算を実行する際に使用します。

10 1つの問合せを使用したグループ・レポートの作成

この章では、1つの問合せを使用するグループ・レポートについて学習します。この章の手順に従うと、図10-1に示すレポート出力を生成できます。

図10-1 グループ・レポートの出力

概要

グループ左レポートおよびグループ上レポートでは、1つ以上の列で共通の値(前述の例での部門番号など)に基づいて、レポートの行がセットに分割されます。各部門番号が1度のみ出力されます。前述のレポートがグループ・レポートではない場合、部門番号が部門全体ではなく、部門の従業員ごとに1回出力されます。

注意:

このタイプのレポートは、ブレーク・レポートまたはマスター/ディテール・レポートと呼ばれることもあります。

使用例

この例では、グループ左レポートを作成して、従業員と従業員の職種と給与を部門別に一覧表示します。このサンプル・レポートの作成過程では、次を行います。

- ブレーク・グループを含むデータ・モデル、およびグループ左レイアウトの作成

- フィールドの書式設定

- プロパティ・インスペクタを使用した行間への空白の追加

次に、ブレーク・グループに別の列を追加します。

- データ・モデルの変更

- レイアウトのデフォルトの再設定

次に、2番目のブレーク・グループを追加します。

- データ・モデルの変更

- レイアウトのデフォルトの再設定

コントロール・ブレークのある横レポートのサンプルを表示するには、サンプル・フォルダbreakを開き、Oracle Reportsのサンプル・レポートgrp_lft2.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

10.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のHuman Resourcesサンプル・スキーマ(HR)に対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

10.2 ブレーク列が1つあるグループ・レポート

グループ左レポートまたはグループ上レポートでは、1つのブレーク列を持つ1つのブレーク・グループというのが最も基本的な形です。したがって、多数のディテール・フィールド値に対して、1つのマスター・フィールドの値が1回出力されます。

1つのブレーク列を持つグループ左レポートのサンプルを表示するには、サンプル・フォルダbreakを開き、Oracle Reportsのサンプルgrp1col_lft1.rdfを開きます。アクセス方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

概要

- 複数行で、他の列の値は変化しているのに1つの列だけ値が同じ場合、その同じ値を繰り返し表示しないようにするために、グループ左(または上)レポートを作成します。

- 1つまたは複数の問合せを使用したグループ左レポートまたはグループ上レポートを作成できます。通常、単一問合せレポートは、複数の問合せレポートよりも速く実行されます。

- ブレーク列と呼ばれる列をSELECT文に組み込んで、複数のレコードで繰り返し使用される1つ以上の値(前述のサンプル・レポートの部門番号など)を指定する必要があります。ブレーク列を使用すると、ブレーク・グループと呼ばれる2番目のグループを作成して、データにブレークを作成できます。

- このレポートでは、表形式の書式をデフォルトで使用します。繰返し枠の垂直間隔を変更して、部門情報の間にそれぞれ空白を挿入すると、レポートの可読性を改善できます(たとえば、前述のサンプル・レポートでは、部門10の最後のレコードと部門20の最初のレコードの間に空白を入れます)。また、書式マスクも追加します。

10.2.1 ブレーク・グループを含むデータ・モデル、およびグループ左レイアウトの作成

この例のように、単一問合せレポートを作成する場合、レポート・ウィザードを使用して、データ・モデルとレイアウトを同時に作成できます。

データ・モデルとレイアウトを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページでレポートの「タイトル」を入力し、「グループ左」を選択して「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME,
JOB_ID, SALARY, DEPARTMENT_ID
FROM EMPLOYEES

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルacross_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

8. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第10.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

9. 「グループ」ページで、「DEPARTMENT_ID」をクリックし、「>」ボタンをクリックして、このフィールドを「グループ・フィールド」リストに移動し、「次へ」をクリックします。

図10-2 レポート・ウィザードの「グループ」ページ

10. 「フィールド」ページで、「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動します。

図10-3 レポート・ウィザードの「フィールド」ページ

11. レポート・ウィザードの「グループ」ページが表示されるまで、「次へ」をクリックします。

12. 「テンプレート」ページで、「事前定義テンプレート」を選択し、「Beige」をクリックします。次に「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次の例のようになります。

図10-4 1つの問合せを使用したグループ左レポートのペーパー・デザイン・ビュー

10.2.2 フィールドの書式設定

ペーパー・デザイン・ビューの「Salary」フィールドを見てください。値は、位置合せも金額表示もされていません。これらの点は、ペーパー・デザイン・ビューですぐに調整できます。

書式マスクを金額に割り当てるには:

1. ペーパー・デザイン・ビューで、「Salary」ラベルの下に表示されている最初の数値をクリックします。すべての値が選択されるので、それらのプロパティを同時に変更できます。

2. ツールバーの「通貨」ボタンをクリックします。すべての値の横に通貨記号が表示されます。

3. 「10進桁を追加」ボタンを2回クリックします。小数点の右側に小数点以下2桁が追加されます。

4. フィールドのサイズを変更します。「Salary」ラベルの下でセルの値の一番右側にあるハンドルをクリックし、そのまま左へ約0.5インチ(1.5センチメートル)ドラッグします。

5. [Shift]を押しながら「Salary」ラベルをクリックします。

6. ツールバーの「右に整列」ボタンをクリックします。

7. ペーパー・デザイン・ビューの空き領域をクリックして、すべてのオブジェクトの選択を解除します。

8. レポートをgrp_lft2_your_initials.rdfという名前で保存します。

図10-5 書式設定された給与

10.2.3 プロパティ・インスペクタを使用した空白の追加

ペーパー・デザイン・ビューでレポート出力を確認すると、ある部門データの終了部分と次の部門データの開始部分が区別しにくいことがわかります。レポートをさらに読みやすくするには、部門間に空白を追加します。ただし、従業員の行間隔は同一にします。このレポートでは、マスター繰返し枠の「繰返し枠」プロパティを変更して、部門レコード間に空白を作成します。

部門間に空白を作成するには:

1. ペーパー・デザイン・ビューで、「Department Id」ラベルの下に表示されている最初の数値をクリックします。すべての部門番号が選択されるのがわかります。

2. ツールバーの「親枠を選択」ボタンをクリックします。「Department Id」フィールドを含む繰返し枠の境界線が、どのようにハイライト表示されているかわかります。

3. 「ツール」→「プロパティ・インスペクタ」を選択してプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「繰返し枠」で、「枠間の垂直間隔」プロパティを「0.25」に設定します。

図10-6 マスター繰返し枠のプロパティ・インスペクタ

4. レポート・エディタのタイトル・バーをクリックして、再度アクティブなウィンドウにします。

5. レポートを保存します。

図10-7 空白を追加したペーパー・デザイン・ビュー

10.3 ブレーク列が2つあるグループ・レポート

図10-8 ブレーク列が2つあるグループ左レポートの出力

このレポートは、第10.2項「ブレーク列が1つあるグループ・レポート」で作成したグループ左レポートと似ています。ただし、前のレポートと比べると、DEPARTMENT_IDの値がより多く表示されているのがわかります。DEPARTMENT_IDの値は、部門内の一意のJOB_IDの値ごとに繰り返されています。この動作が発生するのは、DEPARTMENT_IDがJOB_IDとグループ化されており、JOB_IDとともに出力する必要があるからです。DEPARTMENT_IDの値は何度か繰り返されることがありますが、職種は部門30のPU_CLERKの位置まで繰り返されていません。また、ブレーク・グループも、実際にはこの位置までブレークできません。

概要

- ブレーク・グループに組み込む列を変更することにより、特定の情報の組合せでレポートのブレークが生じるように指定できます。

- 前のレポートを変更するには、ブレーク・グループにJOB_IDを移動します。その結果、1つではなく2つのブレーク列がレポートに設定されます。

- データ・モデルの変更後は、レイアウトのデフォルトを再設定して変更内容を取り込み、書式マスクを再度指定します。

2つのブレーク列を持つグループ左レポートのサンプルを表示するには、サンプル・フォルダbreakを開き、Oracle Reportsのサンプルgrp2col_lft1.rdfを開きます。アクセス方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

10.3.1 データ・モデルの変更

前のレポートを変更する際の最初の作業は、ブレーク・グループに追加列を配置してデータ・モデルを変更することです。

ブレーク・グループに列を追加するには:

1. 前項で作成したレポートを開きます。

2. オブジェクト・ナビゲータで、「データ・モデル」ノードの横のビュー・アイコンをダブルクリックして、データ・モデル・ビューを表示します。

3. データ・モデル・ビューで、ブレーク・グループ「G_DEPARTMENT_ID」をクリックします。次に「G_DEPARTMENT_ID」グループ・ボックスの下中央にあるハンドルをクリックし、約0.25インチ(0.5センチメートル)ほど下方向にドラッグしてサイズを変更します。

4. G_EMPLOYEE_IDグループの「JOB_ID」列をクリックし、G_DEPARTMENT_IDグループの「DEPARTMENT_ID」列の下へドラッグして移動します。

図10-9 ブレーク列が2つあるデータ・モデル

10.3.2 レイアウトのデフォルトの再設定

データ・モデルの変更を出力に反映させるには、レポート・ウィザードを使用して、レポート・レイアウトのデフォルトを再設定する必要があります。

レポート・ウィザードでレイアウトのデフォルトを再設定するには:

1. レポート・エディタのタイトル・バーをクリックして、アクティブなウィンドウにします。レポート・ウィザードにアクセスするには、レポート・エディタをアクティブなウィンドウにする必要があります。

2. 「ツール」→「レポート・ウィザード」を選択します。

3. 「ペーパー・レイアウトのみ作成」を選択します。

4. 「終了」をクリックします。ペーパー・デザイン・ビューで、出力が変更されたのがわかります。「Salary」フィールドの書式設定とレコード間に追加された間隔が保持されていることにも注意してください。可能な場合、Reports Builderでは、レポート・ウィザードを使用していないときに手動で行った変更が保持されます。

5. レポートを保存します。

10.4 ブレーク・グループが2つあるグループ・レポート

図10-10 ブレーク・グループが2つあるグループ左レポートの出力

上の図は、グループ左レポートをさらに変更したものを示しています。今回のバージョンでは、DEPARTMENT_IDは部門ごとに1度のみ出力されます。1つの部門で複数の従業員が同じ職種に属する場合は、JOB_IDも1度のみ出力されます。ここでは、2つの列は別々のブレーク・グループに属し、DEPARTMENT_IDは上位レベルのグループに属しています。したがって、部門内の一意のJOB_IDの値ごとにそれが繰り返されることはありません。

概要

- 複数のブレーク・グループを含むレポートを作成し、各ブレーク・グループに1つ以上の列を割り当てることもできます。

- 2つのブレーク・グループG_DEPARTMENT_IDとG_JOB_IDを組み込むために、データ・モデルをさらに変更します。

- データ・モデルの変更後は、レイアウトのデフォルトを再設定して変更内容を取り込み、書式マスクを再度指定します。

2つのブレーク・グループを持つグループ左レポートのサンプルを表示するには、サンプル・フォルダbreakを開き、Oracle Reportsのサンプルgrp_lft2.rdfを開きます。アクセス方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

10.4.1 データ・モデルの変更

前のレポートを変更する際の最初の作業は、別のブレーク・グループを作成してデータ・モデルを変更することです。

別のブレーク・グループを追加するには:

1. 前項で作成したレポートを開きます。

2. オブジェクト・ナビゲータで、「データ・モデル」ノードの横のビュー・アイコンをダブルクリックして、データ・モデル・ビューを表示します。

3. データ・モデル・ビューで、グループ「G_EMPLOYEE_ID」をクリックし、0.25インチ(0.5センチメートル)ほど下方向にドラッグします。

4. G_DEPARTMENT_IDの「JOB_ID」列をクリックし、G_DEPARTMENT_IDとG_EMPLOYEE_IDの間までドラッグします。別のブレークG_JOB_IDが作成されます。

10.4.2 レイアウトのデフォルトの再設定

データ・モデルの変更を出力に反映させるには、レポート・ウィザードを使用して、レポート・レイアウトのデフォルトを再設定する必要があります。

レポート・ウィザードでレイアウトのデフォルトを再設定するには:

1. レポート・エディタのタイトル・バーをクリックして、アクティブなウィンドウにします。レポート・ウィザードにアクセスするには、レポート・エディタをアクティブなウィンドウにする必要があります。

2. 「ツール」→「レポート・ウィザード」を選択します。

3. 「ペーパー・レイアウトのみ作成」を選択します。

4. 「終了」をクリックします。ペーパー・デザイン・ビューで、出力が変更されたのがわかります。

5. レポートを保存します。

10.5 サマリー

おめでとうございます。1つの問合せを使用したグループ・レポートは正常に作成されました。この章で学習した内容は次のとおりです。

- レポート・ウィザードを使用して、データ・モデルとレイアウトを作成する。

- ペーパー・デザイン・ビューでフィールドの書式を設定する。

- プロパティ・インスペクタを使用して、レコード間に空白を追加する。

- ブレーク・グループに別の列を追加し、レイアウトのデフォルトを再設定する。

- 別のブレーク・グループを追加し、レイアウトのデフォルトを再設定する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

11 2つの問合せを使用したグループ・レポートの作成

この章では、複数の問合せを使用するグループ・レポートについて学習します。この章の手順に従うと、図11-1に示すレポート出力を生成できます。

図11-1 2つの問合せを使用したグループ上レポート

概要

上の図でわかるように、2つの問合せを使用したグループ・レポートの外観は、1つの問合せを使用したグループ・レポートとほぼ同じです。1つまたは複数の問合せを使用する各レポートを対比する場合、パフォーマンスが重要な意味を持ちます。ほとんどの場合、単一問合せレポートは複数の問合せレポートよりも速く実行されます。ただし、複数の問合せレポートのほうが概念を理解しやすく保守も容易です。たとえば、レポートを実行するユーザー数が少なく、実行されたレポートによって比較的少数のレコードが返される場合、複数の問合せを使用して保守を簡素化し、データ・モデルを理解しやすいものにすることができます。ユーザー数が多く、レポートが大規模な場合は、単一問合せレポートの使用をお薦めします。

注意:

レポートのパフォーマンス向上の詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「Oracle Reportsのチューニング」を参照してください。

データ・リレーションシップ

- 単一問合せグループ・レポートと複数問合せグループ・レポートは、見た目は同じですがデータ・モデルが異なります。単一問合せレポートでは、1つの問合せの下に複数のグループがあります。これに対して複数問合せレポートでは、複数の問合せそれぞれの下で1つのグループが使用されます。単一問合せの場合、問合せの下のグループの階層によってリレーションシップが確立します。複数問合せの場合、異なる問合せグループ間のデータ・リンクによってリレーションシップが確立します。

- データ・リンクは、複数の問合せを関連付けるデータ・モデル・オブジェクトです。単純なグループ・レポートでは、データを選択する表の主キーと外部キーを使用して、2つの問合せを関連付けることができます。

- 主キーは、それぞれの値が、値の入っているレコードを一意に識別するための列です。外部キーは、主キーと同じ値を含む別の表の列であり、その表のレコードを参照するために使用されます。

- 主キーと外部キーを使って2つの表にリンクを作成する作業は、結合条件の指定と似ています。実際に、データ・リンクを行うと、リンク作成時に指定された情報に基づいて、結合を定義するSQL句がReports Builderによって作成されます。この句は、実行時に子問合せのSELECT文に追加されます。

- デフォルトのデータ・リンクで定義される結合は外部結合です。外部結合は、リンクの条件を満たす行をすべて返すほか、1つの表から、2番目の表の行と一致しない行をすべて返します。

レイアウト

- このレポートでは、デフォルトのグループ上レイアウト・スタイルが使用されます。このレイアウト・スタイルでは、マスター・レコードはページの横方向に表示されます。フィールドの左側にラベルが表示され、標準の表形式でマスター・レコードの下にディテール・レコードが表示されます。

- 1つのデフォルト列を選択解除してレポートで非表示にし、一部のフィールド幅を変更して、フィールドがそのページに収まるようにし、フィールドの1つを書式設定します。

- さらに、1ページ当たり1つのマスター・レコードのみに指定して、レポート出力の各ページには、1つのマスター・レコードとその関連ディテール・レコードのみが表示されるようにします。

使用例

この例では、グループ上レポートを作成して、従業員と従業員の職種と給与を部門別に一覧表示します。

このサンプル・レポートの作成過程では、次を行います。

- 空のレポートを新規作成するための手動での新規レポートの作成

- 2つの問合せ間のデータ・リンクを含むデータ・モデルの作成

- レポート・ウィザードを使用したデータのレイアウト

- 金額を書式設定するためのフィールドの書式設定

2つの問合せを持つグループ上レポートのサンプルを表示するには、サンプル・フォルダmasterdetailを開き、Oracle Reportsのサンプルgrp_above.rdfを開きます。アクセス方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

11.1 この例の前提条件

この章の例を作成するには、Summit Sporting Goods (SUMMIT)スキーマに対するアクセス権が必要です。このスキーマをインストールするSQLスクリプトをダウンロードするには、「はじめに」の「データ・ソースへのアクセス」を参照してください。

11.2 手動での新規レポートの作成

この場合、データ・モデルとレイアウトを別々に作成した方が簡単です。したがって、まず空のレポートを作成してから、問合せを追加し、レイアウトを作成します。

空のレポートを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「新規レポートを手動で作成」を選択して「OK」をクリックします。

11.3 データ・リンクを含むデータ・モデルの作成

複数の問合せを使用するレポートを作成する場合、最初にすべての問合せをデータ・ウィザードで作成して、次にレポート・ウィザードを使用してレイアウトを作成する方が簡単です。

問合せを作成するには:

1. データ・モデル・ビューで、「挿入」→「問合せ」を選択してデータ・ウィザードを表示します。

2. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

3. 「問合せ」ページで、「問合せ名」にQ_Salesrepと入力し、「次へ」をクリックします。

4. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

5. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT ENAME, EMPNO
FROM EMP
WHERE JOB = 'SALESMAN'

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルrp_above_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

6. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第11.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

7. 「グループ」ページで「次へ」をクリックします。

8. 「終了」をクリックして、レポートのデータ・モデルをデータ・モデル・ビューに表示します。

9. 前述の手順を2番目の問合せにも繰り返しますが、この場合、問合せ名は
Q_Productとし、次のSELECT文を使用します。

SELECT REPID, PRODNAME, AMOUNT, CUSTNAME
FROM SALES
ORDER BY REPID, CUSTNAME

図11-2 2つの問合せを使用するデータ・モデル(データ・リンクなし)

データ・リンクを追加するには:

1. データ・モデル・ビューで、ツール・パレットの「データ・リンク」ツールをクリックします。

2. G_ENAMEグループの「EMPNO」列をクリックし、G_REPIDグループの「REPID」列までドラッグします。G_ENAMEグループの下からQ_Product問合せに線が描かれるのがわかります。EMPNOとREPIDのラベルがこの線の両端に作成され、これらが、Q_ProductにG_ENAMEをリンクさせる列であることが示されます。

図11-3 2つの問合せを使用するデータ・モデル(データ・リンクあり)

3. 新しいデータ・リンクの線をダブルクリックしてプロパティ・インスペクタを表示し、プロパティの設定を調べます。

- G_ENAMEは親として識別され、Q_Productは子として示されます。データに関しては、販売員名と従業員番号でマスター・レコードが構成され、Q_Product問合せで取得された関連製品情報に対して1度出力されます。

- 「SQL句」プロパティにWHEREがすでに表示されています。WHEREは、マスター/ディテール・リレーションシップで使用されるデフォルトの句です。WHEREは、HAVINGやSTART WITHなど、他のSQL句に置換できますが、このレポートではWHEREが正しいデフォルトです。

- また、等号(=)が「条件」プロパティに表示されていることにも注意してください。等式(つまりtable1.columnname = table2.columnname)は、データ・リンクによって定義されたマスター/ディテール・リレーションシップのデフォルトの条件です。等号はサポートされている他の条件演算子に置換できます。サポートされている条件演算子を確認するには、このフィールドをクリックしてください。ただし、このレポートではデフォルトの条件が適切です。

EMPNO列およびREPID列によって、グループG_ENAMEと問合せQ_Productにリンクを作成する作業は、次に示すように、両方の問合せを1つの問合せとして作成する作業に類似しています。

SELECT ENAME, EMPNO, REPID,
PRODNAME, AMOUNT, CUSTNAME
FROM EMP, SALES
WHERE JOB = 'SALESMAN'
AND EMPNO = REPID (+)
ORDER BY REPID, CUSTNAME

11.4 レポート・ウィザードを使用したデータのレイアウト

データ・モデルが完成したら、レポート出力で表示するデータ・オブジェクトのレイアウトを作成する必要があります。レポート・ウィザードを使用すると、データ・モデルのレイアウトを作成できます。

ヒント:

データ・モデルに複数の問合せがあるときは、レポート・ウィザードに入力する前に、各問合せに関連付けられているグループの名前を確認してください。レポート・ウィザードでは、レイアウトのデータをグループ名ごとに選択するよう要求されます。

レイアウトを作成するには:

1. データ・モデル・ビューで、キャンバスを右クリックして「レポート・ウィザード」を選択します。

2. レポート・ウィザードの「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択します。

3. 「スタイル」ページで「グループ上」を選択します。

4. 「グループ」ページで、データ・モデルのグループが両方とも「表示グループ」リストに表示されていることを確認します。

5. 「フィールド」ページで次の操作を行います。

- 「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動します。

- 「表示フィールド」リストの「REPID」をクリックし、「<」ボタンをクリックして、このフィールドを「使用可能フィールド」リストに戻します。REPIDとEMPNOは値が同じなので、どちらか1つを表示するだけで済みます。EMPNOはマスター・グループの一部であり、レポートにマスター・グループの値を表示するレベルです。REPIDは、ディテール・グループの一部です。したがって、「表示フィールド」リストからREPIDを削除して、出力に表示されないようにします。

図11-4 レポート・ウィザードの「フィールド」ページ

6. 「ラベル」ページで、ラベルとフィールド幅を次のように変更します。

表11-1 「ラベル」ページのフィールドの説明

フィールド

ラベル

幅

PRODNAME

Product

22

AMOUNT

(変更なし)

10

CUSTNAME

Customer

15

ENAME

Name

(変更なし)

EMPNO

Emp. No.

(変更なし)

7. 「テンプレート」ページの「事前定義テンプレート」で「Beige」を選択し、「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次のようになります。

図11-5 2つの問合せを使用したグループ・レポートのペーパー・デザイン・ビュー

11.5 フィールドの書式設定

ペーパー・デザイン・ビューの「Amount」フィールドを見てください。値は、位置合せも金額表示もされていません。これらの点は、ペーパー・デザイン・ビューですぐに調整できます。

書式マスクを金額に割り当てるには:

1. ペーパー・デザイン・ビューで、「Amount」ラベルの下に表示されている最初の数値を選択します。すべての値が選択されるので、それらのプロパティを同時に変更できます。

ヒント:

書式マスクの構文に精通している場合は、フィールドの値を右クリックして「プロパティ・インスペクタ」を選択し、「書式マスク」プロパティの値を選択するか、手動で入力してもかまいません。

2. ツールバーの「通貨」ボタンをクリックします。すべての値の横に通貨記号が表示されます。

3. 「10進桁を追加」ボタンを2回クリックします。小数点の右側に小数点以下2桁が追加されます。

4. フィールドの一番右側にあるハンドルをクリックし、そのまま左へ約0.5インチ(1.5センチメートル)ドラッグして、フィールドのサイズを変更します。

5. 「右に整列」ボタンをクリックします。すべての値が右詰めになります。

6. 「Amount」ラベルを選択します。

7. 「右に整列」ボタンをクリックします。

8. レポートをgrp_above_your_initials.rdfという名前で保存します。

最終的なレポート出力は次のようになります。

図11-6 金額が書式設定されたグループ上レポートの出力

11.6 サマリー

おめでとうございます。2つの問合せを使用したグループ・レポートは正常に作成されました。この章で学習した内容は次のとおりです。

- データ・モデル・ビューでデータ・リンクが設定された2つの問合せを作成する。

- レポート・ウィザードを使用してデータをレイアウトする。

- ペーパー・デザイン・ビューでフィールドの書式を設定する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

12 横グループ・レポートの作成

この章では、横グループ・レポートについて学習します。この章の手順に従うと、図12-1に示すレポート出力を生成できます。

図12-1 横グループ・レポートの出力

概要

- Reports Builderでは、レポートの外観を複数の方法で変更できます。この例では、横グループ・レポートを作成します。横グループ・レポートでは、データベース列の値がページの縦方向ではなく横方向に出力されます。

- ブレークのある横レポートでは、マスター(またはブレーク)グループは上から下に出力されます。これは、他のマスター/ディテール・レポートでの動作と同じです。ただし、ディテール・グループの値はページの横方向(左から右)に出力されます。値が1行に収まらない場合、Oracle Reportsは行を折り返し、残りの値を次の行でページの横方向に表示します。なお、ENHANCEDSPREADSHEET出力の場合、横グループは繰返しを維持します(75,000行の制限に到達するまで)。Excelには固定のページ幅がないため、これはExcelの通常の動作です。Oracle Reportsでは、ENHANCEDSPREADSHEET出力で、このExcelの動作に対応しています。

- ブレーク・レポートの詳細は、Oracle Reportsのオンライン・ヘルプを参照してください。

データ・リレーションシップ

このレポートのブレークは、マスター・グループとディテール問合せ間のデータ・リンクによって作成されます。

レイアウト

このレポートで使用するレイアウトを作成するには、マスター/ディテールのスタイルを選択し、いずれかのグループの「印刷方向」設定を変更して、レポートを縦ではなく横に印刷するようにします。

使用例

このサンプル・レポートの作成過程では、次を行います。

- 表示されている列をすべて選択する2つの問合せの作成。次いでこれらの問合せにリンクを作成してマスター/ディテール・リレーションシップを確立します。

- レポート・ブロック・ウィザードを使用したデフォルト・レイアウトの作成。

- ペーパーを対象としたレポートの実行。

コントロール・ブレークのある横レポートのサンプルを表示するには、サンプル・フォルダacrossbreakを開き、Oracle Reportsのサンプル・レポートacrossbreak.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

12.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のHuman Resourcesサンプル・スキーマ(HR)に対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

12.2 2つの問合せの作成

レポートは、レポート・ウィザードを使用して作成するか、または独自に作成できます。この例では、データ・モデル・ビューを使用して2つの問合せを作成し、次にツール・パレットを使用して2つの問合せ間にデータ・リンクを作成して、データ表を関連付けます。

2つの問合せを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「新規レポートを手動で作成」を選択して「OK」をクリックします。

3. 表示されたデータ・モデル・ビューで、ツール・パレットの「SQL問合せ」ツールをクリックし、データ・モデル・ビューの空き領域をクリックして、「SQL問合せ文」ダイアログ・ボックスを表示します。

4. 「SQL問合せ文」フィールドに、次のSELECT文を入力します。

SELECT ALL DEPARTMENTS.DEPARTMENT_ID, DEPARTMENTS.DEPARTMENT_NAME,
DEPARTMENTS.MANAGER_ID, DEPARTMENTS.LOCATION_ID
FROM DEPARTMENTS

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルacrossbreak_code.txtからコードをコピーして「SQL問合せ文」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「SQL問合せ文」フィールドにコードを入力します。

5. 「OK」をクリックします。
新しい問合せのデータ・モデルが表示されます。

図12-2 問合せ1のデータ・モデル

6. 別の問合せを作成します。今回は次のコードを使用します。

SELECT ALL EMPLOYEES.LAST_NAME, EMPLOYEES.FIRST_NAME, EMPLOYEES.DEPARTMENT_ID
FROM EMPLOYEES
ORDER BY EMPLOYEES.LAST_NAME

注意:

acrossbreakフォルダに提供されているacrossbreak_code.txtという名前のテキスト・ファイルからコードをコピーおよび貼り付けることができます。

7. 「OK」をクリックします。

8. データ・モデル・ビューで、ツール・パレットの「データ・リンク」ツールをクリックします。

9. Q_1の「DEPARTMENT_ID」列でマウスをクリックし、Q_2の「DEPARTMENT_ID1」にドラッグして、2つの問合せ間にデータ・リンクを作成します。
作成したデータ・モデルは次のようになります。

図12-3 リンクされた2つの問合せのデータ・モデル

注意:

データ・リンクを右クリックして、ポップアップ・メニューから「プロパティ・インスペクタ」を選択し、データ・リンクが正しく作成されたか確認します。

12.3 デフォルト・レイアウトの作成

この項の手順では、レポート・ブロック・ウィザードを使用してレイアウトを作成し、レポートにおけるデータ表示形式を選択する方法を説明します。ここでは、作成するレポートのスタイルを選択し、レポートでデータを横に表示することにします(したがって、横グループ・レポートの作成)。

デフォルト・レイアウトを作成するには:

1. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードをダブルクリックして、ペーパー・レイアウト・ビューを表示します。

2. ペーパー・レイアウト・ビューで、「挿入」→「レポート・ブロック」を選択し、レポート・ブロック・ウィザードを表示します。

3. レポート・ブロック・ウィザードの「スタイル」ページで、「グループ上」を選択して「次へ」をクリックします。

4. 「グループ」ページで次の操作を行います。

- 「使用可能グループ」リストで「G_LAST_NAME」をクリックし、「横」をクリックして印刷方向を指定します。このフィールドを「表示グループ」リストに移動します。

- 「G_DEPARTMENT_ID」をクリックし、「縦」をクリックします。

- 「次へ」をクリックします。

5. 「フィールド」ページで、「>」ボタンをクリックし、次のフィールドを「使用可能フィールド」リストから「表示フィールド」リストに移動して、「次へ」をクリックします。

- DEPARTMENT_ID

- DEPARTMENT_NAME

- LAST_NAME

- FIRST_NAME

6. 「ラベル」ページで「次へ」をクリックします。

7. 「テンプレート」ページの「事前定義テンプレート」で「Beige」を選択し、「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次のようになります。

図12-4 横グループ・レポートのペーパー・レイアウト・ビュー

12.4 ペーパーを対象としたレポートの実行

この項では、ペーパー・デザイン・ビューに対してレポートを実行し、レポートの表示状態を確認します。

1. ツールバーの「ペーパー・デザイン」ボタンをクリックします。レポートが実行され、ペーパー・デザイン・ビューで表示されます。次のようになります。

図12-5 横グループ・レポートのペーパー・デザイン・ビュー

2. レポートをacrossbreak_your_initials.rdfの形式で保存します。

12.5 サマリー

おめでとうございます。横グループのペーパー・レポートは正常に作成されました。この章で学習した内容は次のとおりです。

- 2つの問合せを持つデータ・モデルを手動で作成する。

- レポート・ブロック・ウィザードを使用して、マスター/ディテール・レポートを作成する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

13 グループ左サマリー・レポートの作成

この章では、グループ左サマリー・レポートについて学習します。この章の手順に従うと、図13-1に示すレポート出力を生成できます。

図13-1 グループ左サマリー・レポートの出力

概要

- このレポートは、マスター・レコード(上の図の左上にあるName)、ディテール・レコード(右上にあるProduct、Itemtot、Orderdate)およびサマリー・レコード(Product、Sum Total)で構成されます。サマリーでは、各マスター・レコードのディテールの合計が計算されます。列Productは2度表示されます。Reports Builderを使用すると、何度でも列を表示できます。

- マスター/ディテール・サマリー・レポートは、1つ以上のサマリーを含むマスター/ディテール・レポートです。

データ・リレーションシップ

- このレポートでは、2つの問合せを使用して、4つの表からデータを選択します。マスター問合せでは顧客名が選択されるのに対し、ディテール問合せでは各顧客が注文した製品の関連情報が選択されます。

- ディテール問合せでは複数の表のデータが選択されるので、結合を指定して、各表の情報をまとめてリンクする必要があります。

- ディテール・グループから列をドラッグして、データをさらにグループ化します。品目合計の計算用にサマリー列を作成します。

レイアウト

- このレポートのレイアウトは2つの部分で構成されています。一番上の部分にはマスターとディテールの情報が含まれます。この部分はレポート・ウィザードを使用して作成します。2番目の部分はペーパー・レイアウト・ビューで手動で構成され、サマリーの書式を設定します。

- レイアウトで2つのグループのサイズも変更して、ユーザーが新規作成した、レイアウトの一番下の部分を一番上の部分に統合し、表を結合するためだけに照会された一部の列をレイアウトから除外します。さらに、繰り返し枠のインスタンス間に追加スペースを挿入します。

使用例

この例では、売上データを顧客別に表示および集計するレポートを作成します。このレポートには、顧客ごとに次のサマリーを入れます。

- 顧客が購入した製品を発注日別に記載したリスト。これには製品ごとの購入額も記載します。

- ある期間における、製品ごとの購入額合計を示す顧客ごとのサマリー。

このサンプル・レポートの作成過程では、次を行います。

- 空のレポートを新規作成するための手動での新規レポートの作成

- 2つの問合せ間のデータ・リンクを含むデータ・モデルの作成

- ペーパー・レイアウト・ビューによる2つのレイアウトの作成

- 別のレイアウトを1つに結合するための2つのレイアウトのマージ

- 金額を書式設定するためのフィールドの書式設定

マスター/ディテール・サマリー・レポートのサンプルを表示するには、サンプル・フォルダmasterdetailsummaryを開き、Oracle Reportsのサンプルgrp_above_summ.rdfを開きます。アクセス方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

13.1 この例の前提条件

この章の例を作成するには、Summit Sporting Goods (SUMMIT)スキーマに対するアクセス権が必要です。このスキーマをインストールするSQLスクリプトをダウンロードするには、「はじめに」の「データ・ソースへのアクセス」を参照してください。

13.2 手動での新規レポートの作成

この場合、データ・モデルとレイアウトを別々に作成した方が簡単です。したがって、まず空のレポートを作成してから、問合せを追加し、レイアウトを作成します。

空のレポートを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「新規レポートを手動で作成」を選択して「OK」をクリックします。

13.3 データ・リンクを含むデータ・モデルの作成

複数の問合せを使用するレポートを作成する場合、最初にすべての問合せをデータ・ウィザードで作成して、次にレポート・ウィザードを使用してレイアウトを作成する方が簡単です。

問合せを作成するには:

1. データ・モデル・ビューで、「挿入」→「問合せ」を選択してデータ・ウィザードを表示します。

2. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

3. 「問合せ」ページで、「問合せ名」にQ_Customerと入力し、「次へ」をクリックします。

4. 「データ・ソース」ページで、「SQL問合せ」を選択し、「次へ」をクリックします。

5. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT CUSTID, NAME
FROM CUSTOMER
ORDER BY NAME

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルgrp_above_summ_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

6. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第13.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

7. 「グループ」ページで「次へ」をクリックします。

8. 「終了」をクリックして、データ・モデル・ビューに最初の問合せを表示します。

9. 前述の手順を2番目の問合せにも繰り返しますが、この場合、問合せ名はQ_Itemとし、次のSELECT文を使用します。

SELECT CUSTID, DESCRIP, ITEMTOT, ORDERDATE,
ITEM.ORDID
FROM ORD, PRODUCT, ITEM
WHERE ITEM.ORDID = ORD.ORDID
AND ITEM.PRODID = PRODUCT.PRODID
ORDER BY CUSTID, DESCRIP, ORDERDATE

10. データ・ウィザードの「グループ」ページで次の操作を行います。

- 「CUSTID1」をクリックし、「>」ボタンをクリックして、このフィールドを「グループ・フィールド」リストに移動します。

- 「DESCRIP」フィールドにも同じ手順を繰り返します。

図13-2 データ・ウィザードの「グループ」ページ

11. 「次へ」をクリックします。

12. 「合計」ページで「ITEMTOT」をクリックし、「合計」をクリックします。

13. 「終了」をクリックして、レポートのデータ・モデルをデータ・モデル・ビューに表示します。次の例のようになります。

図13-3 2つの問合せを使用するデータ・モデル(サマリーあり)

データ・リンクを追加するには:

1. データ・モデル・ビューで、ツール・パレットの「データ・リンク」ツールをクリックします。

2. G_CUSTIDグループの「CUSTID」列をクリックし、G_CUSTID1グループの「CUSTID1」列までドラッグします。G_CUSTIDグループの下からQ_Item問合せに線が描かれるのがわかります。CUSTIDとCUSTID1のラベルがこの線の両端に作成され、これらが、G_CUSTIDにQ_Itemをリンクさせる列であることが示されます。

図13-4 2つの問合せを使用するデータ・モデル(データ・リンクあり)

3. 新しいデータ・リンクの線をダブルクリックしてプロパティ・インスペクタを表示し、プロパティの設定を調べます。

- G_CUSTIDは親として識別され、Q_Itemは子として示されます。データに関しては、顧客の識別子と名前でマスター・レコードが構成され、Q_Item問合せで取得された関連品目注文情報に対して1度出力されます。

- 「SQL句」プロパティにWHEREがすでに表示されています。WHEREは、マスター/ディテール・リレーションシップで使用されるデフォルトの句です。WHEREは、HAVINGやSTART WITHなど、他のSQL句に置換できますが、このレポートではWHEREが正しいデフォルトです。

- また、等号(=)が「条件」プロパティに表示されていることにも注意してください。等式(つまりtable1.columnname = table2.columnname)は、データ・リンクによって定義されたマスター/ディテール・リレーションシップのデフォルトの条件です。等号はサポートされている他の条件演算子に置換できます。サポートされている条件演算子を確認するには、このフィールドをクリックしてください。ただし、このレポートではデフォルトの条件が適切です。

13.4 ペーパー・レイアウト・ビューによる2つのレイアウトの作成

データ・モデルが完成したら、レポート出力で表示するデータ・オブジェクトのレイアウトを作成する必要があります。このレポートは、次の2つの別個のレイアウトで構成されます。

- 顧客の購入品を個別に列挙するグループ左レイアウト

- 顧客の購入品の製品別サマリーを示す表形式のレイアウト

2つのレイアウトが必要な場合、最初のレイアウトはレポート・ウィザードで作成し、2番目のレイアウトはレポート・ブロックを挿入して作成する必要があります。このアプローチをとるのは、レポート・ウィザードではレイアウトの内容がすべて上書きされるためです。したがって、レポート・ウィザードで作成できるのは最初のレイアウトのみです。追加のレイアウトは、レポート・ブロックを挿入して作成する必要があります。

最初のレイアウトを作成するには:

1. 「ツール」→「レポート・ウィザード」を選択します。

2. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択します。

3. 「スタイル」ページで「グループ左」を選択します。

4. 「グループ」ページで、データ・モデルのグループがすべて「表示グループ」リストに表示されていることを確認します。

5. 「フィールド」ページで、列名と「>」または「<」ボタンをクリックして列を移動し、次の列が「表示フィールド」リストに表示されるようにします。

- NAME

- DESCRIP

- ITEMTOT

- ORDERDATE

図13-5 レポート・ウィザードの「フィールド」ページ

6. 「ラベル」ページで、ラベルとフィールド幅を次のように変更します。

表13-1 「ラベル」ページのフィールドの説明

フィールド

ラベル

幅

NAME

(変更なし)

15

DESCRIP

Product

20

Itemtot

(変更なし)

(変更なし)

Orderdate

(変更なし)

(変更なし)

7. 「テンプレート」ページの「事前定義テンプレート」で「Beige」を選択し、「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次のようになります。

図13-6 2つのグループ列を使用したグループ左レイアウトのペーパー・デザイン・ビュー

2番目のレイアウトを作成するには:

1. ツールバーの「ペーパー・レイアウト」ボタンをクリックして、ペーパー・レイアウト・ビューを表示します。

2. ペーパー・レイアウト・ビューで、ツール・パレットの「レポート・ブロック」ツールをクリックします。

3. 既存のレイアウトの約0.5インチ(1.5センチメートル)ほど下を起点にクリックし、ドラッグして縦約2インチ(5センチメートル)、横4インチ(19センチメートル)ほどのボックスを描きます。マウス・ボタンを放すと、レポート・ブロック・ウィザードが表示されます。

4. レポート・ブロック・ウィザードの「スタイル」ページで、「表」を選択して「次へ」をクリックします。

5. 「グループ」ページで「G_CUSTID1」をクリックし、「縦」をクリックして印刷方向を指定します。このグループを「表示グループ」リストに移動し「次へ」をクリックします。(ここまで終了すると、「表示グループ」リストに表示されるグループはG_CUSTID1のみとなります。)

6. 「フィールド」ページで、次のフィールドをクリックしてから「>」ボタンをクリックし、それらのフィールドを「表示フィールド」リストに移動して「次へ」をクリックします。

- DESCRIP

- SumITEMTOTPerCUSTID1

ここまで終了すると、「表示フィールド」リストに表示されるフィールドは、DESCRIPおよびSumITEMTOTPerCUSTID1のみとなります。

7. 「ラベル」ページで、ラベルを次のように変更し、「次へ」をクリックします。

表13-2 フィールドの説明

フィールド

ラベル

DESCRIP

Product

SumITEMTOTPerCUSTID1

Sum Total

8. 「テンプレート」ページの「事前定義テンプレート」で「Beige」を選択し、「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次のようになります。

図13-7 2つのレイアウトがあるペーパー・レイアウト・ビュー

13.5 2つのレイアウトのマージ

2つのレイアウトを作成しただけでは、求める結果の一部しか実現していません。購入品の製品別サマリーは、マスター/ディテール・レイアウトの外側にあります。したがって、このサマリーでは、顧客ごとの製品の購入品ではなく、レポート全体における製品の購入品が集計されます。顧客ごとのサマリーを表示するには、最初のレイアウトの内側に2番目のレイアウトを移動する必要があります。

2番目のレイアウトと最初のレイアウトをマージするには:

1. オブジェクト・ナビゲータで、「M_G_CUSTID1_GRPFR1」を選択します。

ヒント:

オブジェクト・ナビゲータの上部にある「検索」フィールドに枠の名前を入力するだけで、この枠は見つけやすくなります。

2. レポート・エディタのタイトル・バーをクリックして、ペーパー・レイアウト・ビューに戻ります。2番目のレイアウト周囲の枠が選択されているのがわかります。

3. 矢印キーを使用して、最初のレイアウトの「F_DESCRIP」フィールドと揃うように2番目のレイアウトの「F_DESCRIP1」フィールドの位置を変更します。

4. ツールバーの「制限オフ」ボタンをクリックします。フレックス・モードがオンになっているのを確認します(デフォルトはオン)。

5. オブジェクト・ナビゲータで、「R_G_CUSTID」を選択します。

6. レポート・エディタのタイトル・バーをクリックして、ペーパー・レイアウト・ビューに戻ります。今度は、最初のレイアウトのマスター繰返し枠が選択されているのがわかります。

7. R_G_CUSTIDの下中央のハンドルをクリックし、約0.5インチ(1.5センチメートル)ほど下にドラッグします。フレックス・モードがオンになっているので、ドラッグするにつれてそれを囲む枠が大きくなります。同様に、上書きされないように2番目のレイアウトが下へ移動します。

8. R_G_CUSTIDを選択したまま、「ツール」→「プロパティ・インスペクタ」を選択します。

9. 「枠間の垂直間隔」プロパティを「0.25」に設定します。

10. オブジェクト・ナビゲータで、「M_G_CUSTID1_GRPFR1」を選択します。

11. レポート・エディタのタイトル・バーをクリックして、ペーパー・レイアウト・ビューに戻ります。

12. ペーパー・レイアウト・ビューの上部にあるツールバーを使用して、フレックス・モードをオフにします。

13. 矢印キーを使用して、M_G_CUSTID1_GRPFR1とその内容を、最初のレイアウトの内側に移動します。

図13-8 2つのレイアウトが1つにマージされたペーパー・レイアウト・ビュー

14. レポート・エディタのツールバーで「ペーパー・デザイン」ボタンをクリックして、ペーパー・レイアウト・ビューを表示します。今度は、顧客ごとに集計表が繰り返し表示されているのがわかります。

図13-9 2つのレイアウトがマージされたペーパー・デザイン・ビュー

13.6 フィールドの書式設定

ペーパー・デザイン・ビューで、金額の値が位置合せも金額表示もされていないのがわかります。これらの点は、ペーパー・デザイン・ビューですぐに調整できます。

書式マスクを金額に割り当てるには:

1. ペーパー・デザイン・ビューで、[Shift]を押しながら「Itemtot」と「Sum Total」の下に表示されている値をクリックします。すべての値が選択されるので、それらのプロパティを同時に変更できます。

2. ツールバーの「通貨」ボタンをクリックします。すべての値の横に通貨記号が表示されます。

3. 「10進桁を追加」ボタンを2回クリックします。小数点の右側に小数点以下2桁が追加されます。

4. フィールドのサイズを変更します。「Itemtot」フィールドの一番右側にあるハンドルをクリックし、左へ約0.5インチ(1.5センチメートル)ドラッグします。「Sum Total」フィールドに対しても同じ操作を行います。2つのフィールドの右の境界を揃えます。

5. 「右に整列」ボタンをクリックします。すべての値が右詰めになります。

6. [Shift]を押しながら「Itemtot」ラベルおよび「Sum Total」ラベルをクリックします。

7. 「右に整列」ボタンをクリックします。

8. レポートをgrp_above_summ_your initials.rdfという名前で保存します。

図13-10 グループ左と表形式を結合したレポートの出力

13.7 サマリー

おめでとうございます。グループ左サマリー・レポートは正常に作成されました。この章で学習した内容は次のとおりです。

- データ・リンクが設定された2つの問合せを作成する。

- 2つの別個のレイアウトを作成する。

- 別個のレイアウトを1つに結合する。

- 金額の書式を設定する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

14 グループ左の式レポートの作成

この章では、式列が組み込まれたグループ左の式レポートについて学習します。この章の手順に従うと、図14-1に示すレポート出力を生成できます。

図14-1 式レポートの出力

概要

- サマリー列と同様に、式列はユーザーが作成する計算列です。サマリー列と違って、式列の値は指定したPL/SQL式に基づいて計算されます。式にはレポート内の別の列のデータを使用できますが、これは必須ではありません。

- 式列は、プレースホルダ列など、別の列にあるデータに対してユーザー定義の計算を実行するときに使用します。パラメータの値を設定するために、式列を使用しないでください。

- 式列には、PL/SQL式を使用して計算された列が少なくとも1つ含まれます。式列は、使用方法がサマリー列と似ています。

- 式列の詳細は、Oracle Reportsオンライン・ヘルプを参照してください。

データ・リレーションシップ

- 式レポートを作成するには、問合せを作成してデータを選択します。次に、列を新たに作成してレポートのグループに追加します。列のプロパティ・シートで列の式を指定します。

- サマリーと同様に、データベースから式を選択しません。ただし、サマリーではOracle Reportsに付属するパッケージ化された計算を使用しますが、式列ではPL/SQLファンクションの参照によって提供される式を使用します。これらの式には、正規のPL/SQL構文をすべて使用できます。PL/SQL構文によって、使用する式の柔軟性が大幅に向上します。

- 式では、単一レコードのデータを使用して計算を行います。この単一レコードは、複数の列にまたがることがあります。この点が、単一列で複数レコードのデータを集計するサマリーとの大きな違いです。

レイアウト

このレポートでは、デフォルトのグループ左書式をそのまま使用します。

使用例

このサンプル・レポートの作成過程では、次を行います。

- レポート・ウィザードを使用したグループ左スタイルでの単純なレポートの作成。このレポートには必要なデータベース列をすべて選択する問合せが1つ含まれます。

- 各顧客の税金と発注の合計を計算する2つの式列の手動作成と、その式列のレポートへの追加。

式レポートのサンプルを表示するには、サンプル・フォルダformulaを開き、Oracle Reportsのサンプル・レポートformula.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

14.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のOrder Entryサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

14.2 レポート・ウィザードを使用した単純なレポートの作成

レポートは、レポート・ウィザードを使用して作成するか、または独自に作成できます。この例の単純なレポートを作成する場合は、レポート・ウィザードを使用できます。このウィザードを使用すると、レポートのレイアウトの定義やデータ定義の設定を行うことができます。

簡単なレポートを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

5. 「タイトル」ページで、「グループ左」を選択し、「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT ALL CUSTOMERS_A1.CUSTOMER_ID, ORDERS.ORDER_ID, ORDERS.ORDER_TOTAL
FROM CUSTOMERS CUSTOMERS_A1, ORDERS
WHERE (ORDERS.CUSTOMER_ID = CUSTOMERS_A1.CUSTOMER_ID)
ORDER BY CUSTOMERS_A1.CUSTOMER_ID

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルformula_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

8. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第14.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

9. 「グループ」ページで、「CUSTOMER_ID」を選択し、「>」ボタンをクリックして、このフィールドを「グループ・フィールド」リストに移動し、「次へ」をクリックします。

10. 「フィールド」ページで「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動し、「次へ」をクリックします。

11. 「合計」ページで「ORDER_TOTAL」、「合計」の順にクリックし、「次へ」をクリックします。

12. 「テンプレート」ページで、「事前定義テンプレート」を選択し、「Beige」をクリックします。次に「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次の例のようになります。

図14-2 式レポートのペーパー・デザイン・ビュー

13. レポートをformulareport_your_initials.rdfという名前で保存します。

14.3 2つの式列の作成

データ・ソースの値に基づく計算が頻繁に行われます。この計算方法の1つとして、式列を使用します。この項の手順では、次の値を計算する2つの式列を作成する方法について説明します。

- 各注文にかかる税金

- 顧客ごとの税込み総計

14.3.1 税金を計算するための式列の作成

税金を計算する式列を作成するには:

1. Reports Builderで、ツールバーの「データ・モデル」ボタンをクリックして、レポートのデータ・モデル・ビューを表示します。
作成したデータ・モデルは次のようになります。

図14-3 式レポートのデータ・モデル

2. ツール・パレットの「式列」ツールをクリックし、次にORDER_TOTALの下にある「G_ORDER_ID」グループ内でクリックして式列を作成します。

ヒント:

ツール・パレットとツールバーのツール名を表示するには、マウスをドラッグして各アイコンの上に置きます。そうすると、そのアイコンを説明するヒント・テキストが表示されます。

3. 新しい式列オブジェクト(CF_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」を「Tax」に設定します。

- 「プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。

4. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function TAXFormula return Number is
tax number;
begin
tax := :ORDER_TOTAL * .07;
return (tax);
end;

5. 「コンパイル」をクリックします。

6. エラー・メッセージが表示されない場合は、「閉じる」をクリックします。エラー・メッセージが表示された場合は、入力したコードが前述のコードと外見が同じかどうか、列名に注意して確認します。

7. プロパティ・インスペクタを閉じます。

各注文の税金(税率7%)を計算する式列が作成されました。

14.3.2 顧客の発注合計額を計算する式列の作成

顧客の発注合計額を計算する式列を作成するには:

1. 第14.3.1項「税金を計算するための式列の作成」の手順2と3を繰り返します。ツール・パレットの「式列」ツールをクリックし、TAXの下にある「G_ORDER_ID」グループをクリックします。次に、「CF_1」をダブルクリックしてプロパティ・インスペクタを表示します。

2. 列名をSALES_TOTALに変更します。

3. PL/SQLエディタを開き、次のように式を変更します。

function SALES_TOTALFormula return Number is
sales_total number;
begin
sales_total := :ORDER_TOTAL + :TAX;
return (sales_total);
end;

4. 「コンパイル」をクリックします。

5. エラー・メッセージが表示されない場合は、「閉じる」をクリックします。エラー・メッセージが表示された場合は、入力したコードが前述のコードと外見が同じかどうか、列名に注意して確認します。

6. プロパティ・インスペクタを閉じます。

各顧客の発注合計額を計算する式列が作成されました。その結果、データ・モデルは次のようになります。

図14-4 式列を持つデータ・モデル

14.3.3 レポート・レイアウトへの式列の追加

式列の作成が終了したら、レポート・レイアウトに式列を追加する必要があります。それには、レポート・ウィザードに戻る方法が最も簡単です。

レポート・レイアウトに式列を追加するには:

1. データ・モデル・ビューで、キャンバスを右クリックして「レポート・ウィザード」を選択します。

2. レポート・ウィザードで、「フィールド」タブをクリックします。「使用可能フィールド」リストに、新しい式列が2つ表示されます。式列をそれぞれクリックし、「>」ボタンをクリックして、各式列を「表示フィールド」リストに移動します。

3. 「終了」をクリックして、レポート出力をペーパー・デザイン・ビューに表示します。次の例のようになります。

図14-5 式レポートの最終出力

14.4 サマリー

おめでとうございます。式ペーパー・レポートは正常に作成されました。この章で学習した内容は次のとおりです。

- レポート・ウィザードを使用して、レポートのレイアウトを定義する。

- 2つの式列を作成してレポートに追加する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

第III部

特別な書式設定を含むレポートの作成

この部の各章では、特別な書式設定を含むレポートの作成手順を示します。これらのサンプル・レポートでは、テキスト・データの折返し、ヘッダーとフッターの追加、実行時に変更されるデータベース値を使用したヘッダーの書式設定、ページ番号のリセット、混合フィールドの挿入、ラベルの非表示設定、条件付きテキストの使用、およびレポートへのテキスト、カラーおよびグラフィックの追加の各処理を行う方法について示します。

この部は、次の章で構成されています。

- 第15章「ラップ・フィールド・レポートの作成」

ラップ・フィールド・レポートでは、データが1行に収まらない場合に単語の境目で次の行にデータが折り返されます。このレポートのフィールドは、横方向の幅は固定されていますが、ブレーク・フィールドの内容が指定された幅よりも長い場合は、縦方向に拡大できます。フィールドの内容は切り捨てられません。

- 第16章「ヘッダー/フッター付レポートの作成」

ヘッダー/フッター付レポートには、ヘッダーまたはフッター・セクションにボイラープレートまたはフィールドが含まれます。このレポートでは、レポートの各ページの上のマージン領域にページ・ヘッダーが出力され、最後にフッターが出力されます。

- 第17章「データベース値を使用したヘッダー付レポートの作成」

データベース値を使用したヘッダー付レポートでは、レポートのページ・ヘッダーに値を動的に取り込むことができます。たとえば、各ページの最初と最後の部門番号を両方とも出力できます。

- 第18章「グラフィック、テキストおよびカラーを使用したレポートの作成」

グラフィック、テキストおよびカラーを使用したレポートでは、レポートの外観を変更できます。マージンへのイメージの追加、タイトルまたは境界線の追加、あるいは異なるフォントおよびテキスト・スタイルの適用によって、レポートを拡張できます。

- 第19章「繰返し枠ごとにページ番号をリセットするレポートの作成」

繰返し枠ごとにページ番号をリセットするレポートでは、"Page X of Y Pages"の書式でページ番号が付けられます。最初の番号(X)は各親レコードの現行ページを表します。2番目の番号(Y)は各親レコードの合計ページ数を表します。

- 第20章「混合フィールド・レポートの作成」

混合フィールド・レポートでは、グループ・フィールドが関連するフィールドの間に表示されます。この表示位置がグループ・レポートとは異なります。グループ・レポートでは、通常、ブレーク・フィールドは、関連するフィールドの左(グループ左レポートの場合)または上(グループ上レポートの場合)に表示されます。

- 第21章「ラベルを非表示にするレポートの作成」

ラベルを非表示にするレポートは、関連するディテールを持たないマスター・レコードをフェッチするマスター/ディテール・レポートです。そのため、このレポートでは、単一レコードの詳細情報は表示されず、その他のマスター/ディテール・レコードは表示されます。

- 第23章「条件付きフォーム・レター・レポートの作成」

条件付きフォーム・レター・レポートでは、1つのレポートから異なる2つのフォーム・レターが生成されます。この2つのレターは共通の機能を持つため、あらかじめ基本のフォーム・レターを作成しておき、その後特定の部分に条件を適用したほうが便利です。条件によって、現行のレコードに特定の部分を表示するかどうか決定されます。

- 第22章「条件付きハイライトを使用したレポートの作成」

条件付きハイライトでは、視覚的な書式設定を適用することで、レポート内の特定のデータが強調表示されます。Oracle Reports BuilderまたはPL/SQLエディタを使用し、取得したデータの外観を定義した要因に応じて変更するフォーマット・トリガーを作成できます。たとえば、1000を超える額は赤で表示するなどの設定が可能です。

- 第24章「動的グラフィックを使用したレポートの作成」

動的グラフィックを使用したレポートには、動的な描画やイメージが含まれています。グラフィックを変更した場合は、その変更が実行時にレポート出力に反映されます。

15 ラップ・フィールド・レポートの作成

この章では、テキストの折り返しがあるフィールドを含むレポートについて学習します。この章の手順に従うと、図15-1に示すレポート出力を生成できます。

図15-1 ラップ・フィールド・レポートの出力

概要

- Reports Builderでは、レポートの外観を複数の方法で変更できます。この例では、行が1行に収まらない場合に単語の境目で行が折り返されるブレーク・レポートを作成します。

- このレポートにあるフィールドは、横方向の幅は固定されていますが、ブレーク・フィールドの内容が指定された幅よりも長い場合は、縦方向に拡大できます。フィールドの内容は指定されたフィールド幅の中で折り返され、フィールドは縦方向に拡大されるので、フィールドの内容が切り捨てられることがありません。

- ブレーク・レポートの詳細は、Oracle Reportsのオンライン・ヘルプを参照してください。

データ・リレーションシップ

これは、1つの問合せを使用した単純なブレーク・レポートです。さらに、サマリー列を3つ追加します。

レイアウト

- このレポートの書式は、マスター/ディテール・レポートとして設定されています。レイアウトを変更して、情報の間に空白を追加し、ブレーク・フィールドが折り返されるようにフィールドの幅を変更します。

- オプション: 3つのフィールドの書式マスクを変更します。また、このレポートにページ保護を使用します。ページ保護を使用すると、枠または繰返し枠内のすべてのオブジェクトは、いっしょに表示されます。マスター繰返し枠に「ページ保護」を指定すると、顧客名とそれに関連するすべてのレコードは、常に同じページに表示されるようになります。

使用例

このサンプル・レポートの作成過程では、次を行います。

- 1つの問合せと2つのグループを含めるための手動によるデータ・モデル・ビューでの問合せの作成

- レポートの各種合計とパーセントを計算するための3つのサマリー列の作成

- レポート・ウィザードを使用したデフォルト・レイアウトの作成

- レポートのレイアウトの変更

- ペーパーを対象としたレポートの実行。

ラップ・フィールド・レポートのサンプルを表示するには、サンプル・フォルダwrappedbreakを開き、Oracle Reportsのサンプル・レポートwrappedbreak.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

15.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のOrder Entryサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

15.2 データ・モデル・ビューでの問合せの作成

レポートは、レポート・ウィザードを使用して作成するか、または独自に作成できます。この例では、データ・モデル・ビューを使用して2つの問合せを作成し、次にツール・パレットを使用して2つの問合せ間にデータ・リンクを作成して、データ表を関連付けます。

問合せを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「新規レポートを手動で作成」を選択して「OK」をクリックします。

3. 表示されたデータ・モデル・ビューで、ツール・パレットの「SQL問合せ」ツールをクリックし、データ・モデル・ビューの空き領域をクリックして、「SQL問合せ文」ダイアログ・ボックスを表示します。

4. 「SQL問合せ文」フィールドに、次のSELECT文を入力します。

SELECT ALL CUSTOMERS_A1.CUST_FIRST_NAME,
CUSTOMERS_A1.CUST_LAST_NAME, ORDERS.ORDER_ID, ORDERS.ORDER_TOTAL
FROM CUSTOMERS CUSTOMERS_A1, ORDERS
WHERE (ORDERS.CUSTOMER_ID = CUSTOMERS_A1.CUSTOMER_ID)
ORDER BY CUSTOMERS_A1.CUST_LAST_NAME

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルwrappedbreak_code.txtからコードをコピーして「SQL問合せ文」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「SQL問合せ文」フィールドにコードを入力します。

5. 「OK」をクリックして、新しい問合せのデータ・モデルをデータ・モデル・ビューに表示します。次のようになります。

図15-2 問合せのデータ・モデル

6. G_CUST_FIRST_NAMEグループの「CUST_FIRST_NAME」をクリックし、それをこのグループの上にドラッグして別のグループを作成します。

7. 「CUST_LAST_NAME」をクリックし、それを新しいグループにドラッグします。これで、データ・モデルは次のようになります。

図15-3 グループを持つデータ・モデル

8. 新しいグループ(G_1)をダブルクリックして、プロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「G_Name」に設定します。

作成したデータ・モデルは次のようになります。

図15-4 新しいG_Nameグループを持つデータ・モデル

9. レポートをwrappedbreak_your_initials.rdfという名前で保存します。

15.3 3つのサマリー列の作成

この項の手順では、データ・モデル・ビューで「サマリー列」ツールを使用して、3つのサマリー列を作成する方法を説明します。これらの列では、顧客が購入した各発注合計額のパーセント、顧客の合計購入金額、および全顧客の売上合計のパーセントを計算します。

サマリー列を作成するには:

1. データ・モデル・ビューで、ツール・パレットの「サマリー列」ツールをクリックし、「G_CUST_FIRST_NAME」グループ内をクリックしてサマリー列を作成します。

2. 新しいサマリー列オブジェクト(CS_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「PCT」に設定します。

- 「サマリー」で、「ファンクション」プロパティを「割合(%)」、「ソース」プロパティを「ORDER_TOTAL」、「リセット位置」プロパティを「G_CUST_FIRST_NAME」、「計算位置」プロパティを「Report」に設定します。

3. グループG_NAMEに、次のプロパティを持つ2番目のサマリー列を作成します。

- 「一般情報」で、「名前」プロパティを「CUST_TOTAL」に設定します。

- 「サマリー」で、「ファンクション」プロパティを「合計」、「ソース」プロパティを「ORDER_TOTAL」、「リセット位置」プロパティを「G_NAME」に設定します。

4. グループG_NAMEに、次のプロパティを持つ3番目のサマリー列を作成します。

- 「一般情報」で、「名前」プロパティを「PCT_TOTAL_SALES」に設定します。

- 「サマリー」で、「ファンクション」プロパティを「合計」、「ソース」プロパティを「PCT」、「リセット位置」プロパティを「G_NAME」に設定します。

その結果、データ・モデルは次のようになります。

図15-5 3つのサマリー列を持つデータ・モデル

5. レポートをwrappedbreak_your_initials.rdfという名前で保存します。

15.4 レポート・ウィザードを使用したデフォルト・レイアウトの作成

この項の手順では、レポート・ウィザードを使用してレイアウトを作成し、レポートにおけるデータ表示形式を選択する方法を説明します。ここでは、作成するレポートのスタイルを選択し、レポートでデータを横に表示することにします(したがって、横グループ・レポートの作成)。

レポート・ウィザードを使用してデフォルトのレイアウトを作成できます。この場合、レポートにレイアウトが存在していれば削除され、新しいレイアウトに置き換えられます。

デフォルト・レイアウトを作成するには:

1. データ・モデル・ビューで、キャンバスを右クリックして「レポート・ウィザード」を選択します。

2. レポート・ウィザードの「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択します。

3. 「スタイル」ページで「グループ上」を選択します。

4. 「フィールド」ページで、「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動します。

5. 「ラベル」ページで、フィールド幅を次のように変更します。

フィールド

幅

CUST_FIRST_NAME

2

CUST_LAST_NAME

2

6. 「終了」をクリックして、レポート出力をペーパー・デザイン・ビューに表示します。次の例のようになります。

図15-6 ラップ・フィールド・レポートのペーパー・デザイン・ビュー

名前が完全に表示されないのがわかります。次の項の手順では、この問題を速く解決する方法を説明します。

15.5 レポートのレイアウトの変更

この項では、ブレーク・フィールドの内容が指定された幅よりも長い場合に、フィールドを変更して縦方向に拡大します。図15-6に示すように、フィールド幅を固定すると、名前の表示が不完全になります。また、レポートの各レコード間に表示する空間を追加することもできます。

レイアウトを変更するには:

1. オブジェクト・ナビゲータで、「ペーパー・レイアウト」→「メイン・セクション」→「ボディ」→「M_G_Name_GRPFR」の下の「R_G_NAME」ノードの横の繰返し枠アイコンをダブルクリックしてプロパティ・インスペクタを表示します。

2. 「繰返し枠」で、「枠間の垂直間隔」プロパティを0.25に変更して[Enter]を押します。

3. プロパティ・インスペクタを閉じます。

4. オブジェクト・ナビゲータの「ペーパー・レイアウト」ノードで、「メイン・セクション」→「ボディ」→「M_G_NAME_GRPFR」→「R_G_NAME」にナビゲートします。

5. 「F_CUST_LAST_NAME」フィールドの横のアイコンをダブルクリックして、プロパティ・インスペクタを表示します。

6. 「標準レイアウト」で、「垂直拡張度」プロパティが「拡張」に設定されていることを確認し、プロパティ・インスペクタを閉じて変更を受け入れます。

7. 「F_CUST_FIRST_NAME」フィールドに対して手順5と6を実行します。

これで、すべてのテキストが折返しフィールドに表示されるようにレポートのレイアウトが変更され、レコード間に空白が追加されました。

15.6 ペーパーを対象としたレポートの実行

この項では、ペーパー・デザイン・ビューに対してレポートを実行し、レポートの表示状態を確認します。

ツールバーの「ペーパー・デザイン」ボタンをクリックし、ペーパー・デザイン・ビューを表示します。レポートが実行され、ペーパー・デザイン・ビューで表示されます。次のようになります。

図15-7 ラップ・フィールド・レポートのペーパー・デザイン・ビュー

レポートをwrappedbreak_your_initials.rdfという名前で保存します。

15.7 サマリー

おめでとうございます。ラップ・フィールドのペーパー・レポートは正常に作成されました。この章で学習した内容は次のとおりです。

- データ・モデルを手動で作成する。

- レポート・ウィザードを使用して、マスター/ディテール(またはグループ上)レポートを作成する。

- フィールド内でテキストを折り返すため、レポートのレイアウトを変更する。

- レコードの間に空白を追加する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

16 ヘッダー/フッター付レポートの作成

この章では、ヘッダーとフッターを含むレポートについて学習します。この章の手順に従うと、図16-1に示すレポート出力を生成できます。

図16-1 ヘッダー/フッター付グループ左レポートの出力

このレポートでは、各ページの上マージンにEmployee Summary Reportというページ・ヘッダーが出力され、各部門の従業員情報リストの最後にTotal Salary for Department <number>: <sum_sal>というフッターが出力されています。

概要

- ヘッダー/フッター付レポートでは、ヘッダーやフッターにボイラープレートまたはフィールドが含まれます。レポートにヘッダーとフッターを作成するには、レポート・エディタのペーパー・レイアウト・ビューにボイラープレートまたはフィールドを追加します。フィールドを作成する場合、フィールドの値は1つのみにしてください。値が複数あると、Reports Builderでは、どの値を出力するのか判断できません。

- ボイラープレートとフィールドの表示頻度、またそれがヘッダーかフッターかは、レイアウトのどこに配置するかによって異なります。繰返し枠の中に配置されたボイラープレートは、繰返し枠を印刷するたびに印刷されます。すべての繰返し枠の外に配置されたボイラープレートは、レポート全体で1回のみ印刷されます。

データ・リレーションシップ

このレポートでは、1つの問合せを使用して、必要な列をすべて選択します。2番目のグループに列を割り当てて、ブレークを追加します。

レイアウト

このレポートでは、グループ左のレイアウト・スタイルを修正したものを使用します。繰返し枠とそれを囲む枠のサイズを拡大し、その中にフッターが入る大きさにしてからフッターを追加します。さらに、繰返し枠の垂直間隔を変更して、枠の各インスタンスの間に空白を追加します。

使用例

この例では、従業員データを部門別に表示および集計するレポートを作成します。レポートをより見やすくするために、各ページにヘッダーを、各マスター・レコードにフッターを追加することにします。

このサンプル・レポートの作成過程では、次を行います。

- データ・モデルとグループ左レイアウトの作成

- 部門サマリーをラベルの近くに移動するためのサマリーの移動

- すべてのページで繰り返されるページ・ヘッダーの追加

- 金額を書式設定するための空白の追加とフィールドの書式設定

ヘッダーとフッターが付いたレポートのサンプルを表示するには、サンプル・フォルダheaderfooterを開き、Oracle Reportsのサンプルheadfoot.rdfを開きます。アクセス方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

16.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のHuman Resourcesサンプル・スキーマ(HR)に対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

16.2 データ・モデルとグループ左レイアウトの作成

この例のように、単一問合せレポートを作成する場合、レポート・ウィザードを使用して、データ・モデルとレイアウトを同時に作成できます。

データ・モデルとレイアウトを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページでレポートの「タイトル」を入力し、「グループ左」を選択して「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT FIRST_NAME, LAST_NAME, EMPLOYEE_ID, SALARY, DEPARTMENT_ID
FROM EMPLOYEES
ORDER BY DEPARTMENT_ID, EMPLOYEE_ID

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルheadfoot_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

8. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第16.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

9. 「グループ」ページで、「DEPARTMENT_ID」をクリックし、「>」ボタンをクリックして、このフィールドを「グループ・フィールド」リストに移動し、「次へ」をクリックします。

10. 「フィールド」ページで「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動し、「次へ」をクリックします。

11. 「合計」ページで「SALARY」をクリックして、「合計」をクリックします。

12. 「次へ」をクリックします。

13. 「ラベル」ページで、ラベルを次のように変更し、「次へ」をクリックします。

フィールド

ラベル

DEPARTMENT_ID

Department

SumSALARYPerDEPARTMENT_ID

Total Salary for Department &DEPARTMENT_ID:

この手順では、マスター繰返し枠(部門)の各インスタンスにフッターを追加します。

注意:

DEPARTMENT_ID列はデータ・モデルの一部なので、&DEPARTMENT_IDを使用して、フッター・ラベルのDEPARTMENT_IDを参照する必要があります。

14. 「テンプレート」ページで「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次の例のようになります。

図16-2 マスター繰返し枠にフッターが付いたグループ左レポートの出力

16.3 サマリーの移動

ペーパー・デザイン・ビューを見ると、給与の部門サマリーが、フッター・ラベル(Total Salary for Department &DEPARTMENT_ID)の右側へ、ずいぶん離れて配置されているのがわかります。このレポートでは、給与サマリーをそのラベルの近くへ移動します。

サマリーをラベルの近くへ移動するには:

1. ペーパー・デザイン・ビューで、ツールバーの「フレックス・オフ」ボタンをクリックして、フレックス・モードをオフにします。

2. ラベル「Total Salary for Department &DEPARTMENT_ID」を選択します。

3. ラベルの一番右側にあるハンドルをクリックし、そのまま左へ約0.75インチ(2センチメートル)ドラッグして、オブジェクトのサイズを変更します。

4. ラベル「Total Salary for Department &DEPARTMENT_ID」の右側にある最初のサマリー値を選択します。

5. サマリー値をクリックし、そのまま左へドラッグしてラベルに十分近づけます。

6. フィールドの一番右側にあるハンドルをクリックし、そのまま左へ約1インチ(2センチメートル)ドラッグします。

7. ツールバーの「フレックス・オン」ボタンをクリックして、フレックス・モードをオンに戻します。

図16-3 サマリーをラベルに近づけたグループ左レポートの出力

16.4 ページ・ヘッダーの追加

繰返し枠フッターが追加されたので、今度はページ・ヘッダーを追加します。この作業はペーパー・レイアウト・ビューで実行します。

1. ペーパー・レイアウト・ビューで、ツールバーの「マージン編集」ボタンをクリックします。

2. ツールバーのフォント・リストから、「Arial Black」、ポイント・サイズ「16」を選択します。

3. ツール・パレットの「テキスト」ツールをクリックします。

4. ロゴ・イメージの右側の任意の位置をクリックし、次のテキストを入力します。

Employee Summary Report

5. ペーパー・レイアウト・ビューの空き領域に移動し、マウス・ボタンをクリックしてテキスト・モードを終了します。作成したテキスト・オブジェクトは、選択されたままになっています。この状態で、矢印キーを使用して位置を調整できます。2度目に空き領域をクリックすると、オブジェクトの選択は解除されます。

注意:

同様に、ページ・マージンの下にページ・フッターを追加できます。

6. ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックして、ペーパー・デザイン・ビューに表示します。次のようになります。

図16-4 ページ・ヘッダー付グループ左レポートの出力

7. レポートをheadfoot_your_initials.rdfという名前で保存します。

16.5 空白の追加とフィールドの書式設定

最後の作業では、レコードの間に空白を追加し、値の書式を適切に設定して、レポートをもう少し読みやすくします。

1. ペーパー・デザイン・ビューで、最初の部門番号値「10」を選択します。すべての部門番号が選択されるので、それらのプロパティを同時に変更できます。

2. ツールバーの「中央に整列」ボタンをクリックします。

3. ツールバーの「親枠を選択」ボタンをクリックします。

4. 「ツール」→「プロパティ・インスペクタ」を選択してプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「繰返し枠」で、「枠間の垂直間隔」プロパティを「0.25」に設定します。

5. ペーパー・デザイン・ビューのタイトル・バーをクリックします。

6. 「Salary」ラベルの下に表示されている最初の数値を選択します。

7. [Shift]を押しながら最初の部門の部門サマリー値をクリックします。

ヒント:

書式マスクの構文に精通している場合は、フィールドの値を右クリックして「プロパティ・インスペクタ」を選択し、「書式マスク」プロパティの値を選択するか、手動で入力してもかまいません。

8. ツールバーの「通貨」ボタンをクリックします。すべての値の横に通貨記号が表示されます。

9. 「10進桁を追加」ボタンを2回クリックします。小数点の右側に小数点以下2桁が追加されます。

10. 給与フィールド(F_SALARY)の一番右側にあるハンドルをクリックし、そのまま左へ約0.5インチ(1.5センチメートル)ドラッグして、そのサイズを変更します。サマリー・フィールド(F_SumSALARYPerDEPARTMENT_ID)が選択されていても、サイズを変更できるのはF_SALARYのみです。

11. [Shift]を押しながら「Salary」ラベル自体をクリックします。

12. ツールバーの「右に整列」ボタンをクリックします。すべての値が右詰めになります。

ヒント:

前述の手順で、レポートの給与と部門サマリーがすべて書式設定されました。しかし、レポート・サマリー(レポート内のすべての給与のサマリー)は、まだ書式設定されていません。レポートの最終ページにあるレポート・サマリーを確認し、前述と同じ手順で書式設定できます。

図16-5 値が書式設定されたグループ左レポートの出力

16.6 サマリー

おめでとうございます。ヘッダー/フッター付レポートは正常に作成されました。この章で学習した内容は次のとおりです。

- データ・モデルとレイアウトを作成する。

- サマリー・フィールドを移動する。

- すべてのページで繰り返されるヘッダーを追加する。

- 空白を追加して値を書式設定する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

17 データベース値を使用したヘッダー付レポートの作成

この章では、データベースに問い合せた値を使用するヘッダー付きのレポートについて学習します。この章の手順に従うと、図17-1に示すレポート出力を生成できます。

図17-1 ヘッダーにデータベース値が含まれるグループ左レポートの出力

概要

このサンプル・レポートでは、各ページの最初と最後の部門番号がページ・ヘッダーに表示されます。

レイアウト

このレポートでは、1つの問合せと2つのグループを使用します。また、ヘッダー・フィールドの値入力用に、サマリー列を2つ作成します。各ページのフィールド値を一意に設定するには、最初ファンクションと最後ファンクションを使って値を計算します。最初ファンクションは、グループ、ページまたはレポートに選択した最初のデータベース値を返し、最後ファンクションはグループ、ページまたはレポートに選択した最後のデータベース値を返します。

レイアウト

このレポートでは、デフォルトのグループ左書式をそのまま使用します。

使用例

この例では、従業員データを部門別に表示および集計するレポートを作成します。レポートを読みやすくするために、各ページにヘッダーを追加して、ページに表示される部門がどこかを示します。

このサンプル・レポートの作成過程では、次を行います。

- データ・モデルとグループ左レイアウトの作成

- ヘッダー・データ用のサマリー列の追加

- すべてのページで繰り返される、データベース値が含まれるページ・ヘッダーの追加

データベース値を使用したヘッダー付レポートのサンプルを表示するには、サンプル・フォルダheadingdbを開き、Oracle Reportsのサンプルheadingdb.rdfを開きます。アクセス方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

17.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のHuman Resourcesサンプル・スキーマ(HR)に対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

17.2 データ・モデルとグループ左レイアウトの作成

この例のように、単一問合せレポートを作成する場合、レポート・ウィザードを使用して、データ・モデルとレイアウトを同時に作成できます。

データ・モデルとレイアウトを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページでレポートの「タイトル」を入力し、「グループ左」を選択して「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT DEPARTMENT_ID, FIRST_NAME, LAST_NAME, JOB_ID, SALARY
FROM EMPLOYEES
ORDER BY DEPARTMENT_ID, EMPLOYEE_ID

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルheading_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

8. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第17.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

9. 「グループ」ページで、「DEPARTMENT_ID」をクリックし、「>」ボタンをクリックして、このフィールドを「グループ・フィールド」リストに移動し、「次へ」をクリックします。

10. 「フィールド」ページで「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動し、「次へ」をクリックします。

11. 「合計」ページで「次へ」をクリックします。

12. 「ラベル」ページで、ラベルを次のように変更し、「次へ」をクリックします。

フィールド

ラベル

DEPARTMENT_ID

Department

JOB_ID

Job

13. 「テンプレート」ページで「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。

14. ペーパー・デザイン・ビューで、「Salary」ラベルの下に表示されている最初の数値をクリックします。

ヒント:

書式マスクの構文に精通している場合は、フィールドの値を右クリックして「プロパティ・インスペクタ」を選択し、「書式マスク」プロパティの値を選択するか、手動で入力してもかまいません。

15. ツールバーの「通貨」ボタンをクリックします。すべての値の横に通貨記号が表示されます。

16. 「10進桁を追加」ボタンを2回クリックします。小数点の右側に小数点以下2桁が追加されます。

17. フィールドの一番右側にあるハンドルをクリックし、そのまま左へ約0.5インチ(1.5センチメートル)ドラッグして、フィールドのサイズを変更します。

18. [Shift]を押しながら「Salary」ラベル自体をクリックします。

19. ツールバーの「右に整列」ボタンをクリックします。すべての値と「Salary」ラベルが右詰めになります。

20. 「Department」ラベルの下に表示されている最初の部門番号値を、クリックして選択します。

21. ツールバーの「中央に整列」ボタンをクリックします。
レポートの表示は次のようになります。

図17-2 値が書式設定されたグループ左レポートの出力

22. レポートをheadingdb_your_initials.rdfという名前で保存します。

17.3 ヘッダー・データ用のサマリー列の追加

このヘッダー(つまり、このページに表示される部門)を作成するには、ヘッダーの移入に必要な値を計算するサマリー列を、2つ作成する必要があります。

1. レポート・エディタで、ツールバーの「データ・モデル」ボタンをクリックして、データ・モデル・ビューを表示します。

2. ツール・パレットの「サマリー列」ツールをクリックし、データ・モデル・ビューの空き領域をクリックしてサマリー列を作成します。

3. 新しいサマリー列オブジェクト(CS_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「FirstDeptRec」に設定します。

- 「サマリー」で、「ファンクション」プロパティを「最初」、「ソース」プロパティを「DEPARTMENT_ID」、「リセット位置」プロパティを「ページ」に設定します。

4. 2番目のサマリー列を作成し、そのプロパティを次のように設定します。

- 「一般情報」で、「名前」プロパティを「LastDeptRec」に設定します。

- 「サマリー」で、「ファンクション」プロパティを「最後」、「ソース」プロパティを「DEPARTMENT_ID」、「リセット位置」プロパティを「ページ」に設定します。

作成したデータ・モデルは次のようになります。

図17-3 ヘッダー用サマリー列作成後のデータ・モデル

17.4 ページ・ヘッダーの追加

ヘッダーのデータを設定したら、レポートのマージン領域に、対応するレイアウト・オブジェクトを追加する必要があります。

1. ペーパー・デザイン・ビューで、ツールバーのフォント・リストから、「Arial(欧文)」、ポイント・サイズ「10」を選択します。

2. ペーパー・レイアウト・ビューで、ツールバーの「マージン編集」ボタンをクリックします。

3. ツール・パレットの「テキスト」ツールをクリックします。

4. ロゴ・イメージの右側の任意の位置に領域を描き、次のテキストを入力します。

Departments found on this page: &FirstDeptRec through &LastDeptRec

5. ペーパー・レイアウト・ビューの空き領域に移動し、マウス・ボタンをクリックしてテキスト・モードを終了します。作成したテキスト・オブジェクトは、選択されたままになっています。この状態で、矢印キーを使用して位置を調整できます。2度目に空き領域をクリックすると、オブジェクトの選択は解除されます。

6. 「プログラム」→「ペーパー・レイアウトを実行」を選択し、レポートを実行します。
レポートは次のようになります。

図17-4 ヘッダーにデータベース値が含まれるグループ左レポートの出力

7. レポートを保存します。

17.5 サマリー

おめでとうございます。データベース値を使用したヘッダー付レポートは正常に作成されました。この章で学習した内容は次のとおりです。

- データ・モデルとレイアウトを作成する。

- サマリー列を追加してヘッダーを移入する。

- すべてのページで繰り返される、データベース値が含まれるヘッダーを追加する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

18 グラフィック、テキストおよびカラーを使用したレポートの作成

この章では、グラフィック、テキストおよびカラーを使用するレポートについて学習します。この章の手順に従うと、図18-1に示すレポート出力を生成できます。

図18-1 グラフィック、テキストおよびカラーを使用したレポートの出力

概要

- Reports Builderでは、レポートの外観を複数の方法で変更できます。この例では、レポートを作成して、マージンにイメージ、タイトルおよび境界線を追加して、レポートを拡張します。また、異なるフォントとテキスト・スタイルを適用して、レポートの外観も変更します。

- このレポートでは、グラフィックを使用したレポートを、次のようなやり方で拡張する方法を説明します。

- ペーパー・レイアウト・ビューの描画ツールの使用

- 出力に表示されるボイラープレート・テキストのハイライト

- ボイラープレート・テキストへの様々なカラー(利用可能な場合)およびパターンの使用

- レポートの外観の拡張の詳細は、Oracle Reportsのオンライン・ヘルプを参照してください。

データ・リレーションシップ

これは、1つの問合せを使用したグループ左レポートです。

レイアウト

このレポートでは、グループ上レイアウトを使用します。このレイアウトをペーパー・レイアウト・ビューで変更し、タイトルと会社のロゴを入れるスペースを確保します。次に、ロゴをインポートしてレポート・タイトルを作成し、前述のイメージに表示したグラフィックの残りを作成します。

使用例

このサンプル・レポートの作成過程では、次を行います。

- レポート・ウィザードを使用して、このレポートの列をすべて選択する1つの問合せを作成し、新しいブレーク・グループに列を割り当てる、簡単なレポート定義の作成

- 次のことを目的とした、ペーパー・レイアウト・ビューでのレポートの変更

- レポートの周囲への境界線の追加

- 「フォント」ダイアログ・ボックスを使用したフォントのサイズとスタイルの変更

- ツール・パレットを使用したレポートへの箇条書きのドットの追加

- 「線」ツールを使用した各レコード間の線の表示

- 「塗りつぶしカラー」ツールやその他のレイアウト・ツールを使用したレポートへのタイトルの追加

グラフィックを使用し、テキストをハイライトしたレポートのサンプルを表示するには、サンプル・フォルダgraphicsを開き、Oracle Reportsのサンプルgraphics.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

18.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のHuman Resourcesサンプル・スキーマ(HR)に対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

18.2 簡単なレポート定義の作成

レポートは、レポート・ウィザードを使用して作成するか、または独自に作成できます。この例では、レポート・ウィザードを使用して、問合せと基本的なレポート・レイアウトを作成します。

レポート定義を作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページでレポートの「タイトル」を入力し、「グループ上」を選択して「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT ALL DEPARTMENTS.DEPARTMENT_ID, EMPLOYEES.FIRST_NAME, EMPLOYEES.LAST_
NAME, EMPLOYEES.JOB_ID, EMPLOYEES.SALARY, JOBS.JOB_TITLE
FROM DEPARTMENTS, EMPLOYEES, JOBS
WHERE ((DEPARTMENTS.DEPARTMENT_ID = EMPLOYEES.DEPARTMENT_ID)
AND (EMPLOYEES.JOB_ID = JOBS.JOB_ID))
ORDER BY DEPARTMENTS.DEPARTMENT_ID

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルgraphics_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

8. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第18.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

9. 「グループ」ページで、「DEPARTMENT_ID」をクリックし、「>」ボタンをクリックして、このフィールドを「グループ・フィールド」リストに移動し、「次へ」をクリックします。

10. 「フィールド」ページで、JOB_IDを除くすべてのフィールドを「表示フィールド」リストに移動し、「次へ」をクリックします。

11. 「合計」ページで「次へ」をクリックします。

12. 「ラベル」ページで、ラベル「Department Id」をDepartmentに変更し、「次へ」をクリックします。

13. 「テンプレート」ページで、「事前定義テンプレート」を選択し、「Blue」をクリックします。次に「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次の例のようになります。

図18-2 1つの問合せを使用したグラフィック・レポートのペーパー・デザイン・ビュー

18.3 ペーパー・レイアウト・ビューでのレポートの変更

この項の手順では、ペーパー・レイアウト・ビューの各種ツールを使用して、レポートの外観を変更する方法を説明します。まず、変更にあわせて既存の枠を移動します。次に、レポートにタイトルを追加し、各レコードの周りに境界線を引き、テキスト・カラーを変更します。

レポートを変更するには:

1. ツールバーの「ペーパー・レイアウト」ボタンをクリックして、ペーパー・レイアウト・ビューを表示します。

2. ツールバーの「制限オン」ボタンをクリックして、制限モードをオンにします。これで、ペーパー・レイアウト・ビューのオブジェクトを、キャンバスの周囲に移動できるようになります。

3. オブジェクト・ナビゲータで、「ペーパー・レイアウト」→「メイン・セクション」→「ボディ」にナビゲートし、「M_G_DEPARTMENT_ID_GRPFR」の項目をクリックします。
ペーパー・レイアウト・ビューで、一番外側にある枠が選択されたことがわかります。

4. 矢印キーを使用して、枠を下に約2インチ(5センチメートル)、右に約1インチ(2.5センチメートル)移動します。
目安として、ペーパー・レイアウト・ビューの縁にある定規を使用できます。これで、ペーパー・レイアウトの表示は次のようになります。

図18-3 レポート・レイアウトを調整したペーパー・レイアウト・ビュー

5. 今度は、フレックス・モードをオンにし、ツールバーの「制限オフ」ボタンをクリックして制限モードをオフにします。

6. 各レコードの周囲に、境界線を作成するための空間を確保します。オブジェクト・ナビゲータで、「M_G_DEPARTMENT_ID_GRPFR」をもう一度選択します。

7. それぞれの隅をドラッグして、内側の繰返し枠の周囲に空間を設けます。これでレイアウトは次のイメージのようになります。グループの周囲に空白ができました。

図18-4 繰返し枠を延長したペーパー・レイアウト・ビュー

8. ここで、各レコードの間に空間を設けて、後でレコード間に水平線を入れられるようにします。オブジェクト・ナビゲータで「R_G_DEPARTMENT_ID」をクリックします。

9. ペーパー・レイアウト・ビューで、右下隅をクリックし、下に約0.5インチ(1.5センチメートル)ドラッグします。これでレイアウトは次のようになります。

図18-5 R_G_DEPARTMENT_ID繰返し枠を延長したペーパー・レイアウト・ビュー

10. レポートをgraphics_your_initials.rdfという名前で保存します。

18.3.1 レポートの周囲への境界線の追加

レイアウトの設定が終了したので、新しい項目を追加できるようになりました。この項では、レポート全体の周囲に境界線を追加します。

境界線を追加するには:

1. オブジェクト・ナビゲータで、「M_G_DEPARTMENT_ID_GRPFR」枠を選択します。

2. ペーパー・レイアウト・ビューで、M_G_DEPARTMENT_ID_GRPFR枠が選択されている状態で「線カラー」ツールをクリックします。このツールは、ツール・パレットの一番下にあります。

3. 表示されるカラー・パレットで、黒い正方形を選択して境界線を黒にします。

4. 線が選択されている状態で、「書式」→「線」→「線幅」→「2ポイント」を選択します。

5. それではレイアウトをプレビューしてみましょう。ツールバーの「ペーパー・デザイン」ボタンをクリックして、ペーパーにレポートを実行します。次の例のようになります。

図18-6 境界線を付けたレポートのプレビュー

6. レポートをgraphics_your_initials.rdfという名前で保存します。

18.3.2 フォントのサイズとスタイルの変更

ペーパー・レイアウト・ビューでは、テキストのフォントとスタイルも変更できます。この項の手順では、部門番号のテキストを変更する方法を説明します。

フォントを変更するには:

1. ペーパー・デザイン・ビューで、ツールバーの「ペーパー・レイアウト」ボタンをクリックします。

2. オブジェクト・ナビゲータで、「B_DEPARTMENT_ID」フィールドと「F_DEPARTMENT_ID」フィールドを選択し、ラベルおよびテキスト「Department ID」のフォントを変更できるようにします。

注意:

B_DEPARTMENT_IDはボイラープレート・テキスト"Department ID"を示し、これがF_DEPARTMENT_IDフィールドのラベルになります。

3. ペーパー・レイアウト・ビューのタイトル・バーをクリックして、アクティブなウィンドウにします。

4. 2つのフィールドが選択されている状態で、「書式」→「フォント」を選択します。

5. 「フォント」ダイアログ・ボックスで、異なるフォントとサイズを選択します。この例では、「Times New Roman」と「12」ポイントを選択します。

6. 変更が完了したら「OK」をクリックします。

注意:

選択するフォントやフォント・サイズに応じ、テキストにあわせてフィールドのサイズを変更する必要があります。この例では、フォントを大きくしたので、ボイラープレート・テキスト・フィールドを選択して拡大しました。

7. ペーパー・デザイン・ビューにレポートを表示して、どのように見えるかを確認します。次に例を示します。

図18-7 新しいフォントを使用したレポートのペーパー・デザイン・ビュー

8. レポートをgraphics_your_initials.rdfという名前で保存します。

18.3.3 レポートへの箇条書きのドットの追加

この項の手順では、各部門IDの横に箇条書きのドットが表示されるように、箇条書きのドットを追加する方法を説明します。

レポートに箇条書きのドットを追加するには:

1. ペーパー・レイアウト・ビューで、B_DEPARTMENT_IDフィールドの横に十分な空間を設けて、箇条書きのドットを追加できるようにしてください。箇条書きのドットはR_G_DEPARTMENT_ID繰返し枠の中に配置して、レコードごとに表示する必要があります。

2. ツール・パレットの「楕円」ツールをクリックします。

3. [Shift]キーを押して、ボイラープレート・テキスト"Department"の横に楕円を描きます。

注意:

[Shift]キーを押しながら楕円を描くと、このツールは制約モードになります。このモードで楕円を作成すると、円を作成できます。他のツールも同様で、たとえば、「四角形」ツールを制約すると正方形が作成されます。これらのツールの使用法の詳細は、Oracle Reportsオンライン・ヘルプを参照してください。

4. これで、繰返し枠に円が表示されます。円の中を塗りつぶすには、円を選択し、ツール・パレットの「塗りつぶしカラー」ツールをクリックします。

5. 表示されるカラー・パレットで、黒を選択します。

6. ペーパー・デザイン・ビューにレポートを表示して、どのように見えるかを確認します。

注意:

レイアウトをチェックするときに、楕円がR_G_DEPARTMENT_ID繰返し枠の内側に表示されていることを確認してください。

図18-8 箇条書きのドットを付けたレポートのペーパー・デザイン・ビュー

7. レポートをgraphics_your_initials.rdfという名前で保存します。

18.3.4 各レコード間の線の表示

データが多い場合、情報の関連性を明確にして各レコードを区別できるようにする必要がある場合があります。この項では、レイアウトに水平線を追加して、各部門レコードの間に表示します。

線セパレータを追加するには:

1. ペーパー・レイアウト・ビューで、ツール・パレットの「線」ツールをクリックします。

2. [Shift]キーを押し、フィールド下のR_G_DEPARTMENT_ID枠内で、次のように線を描きます。

図18-9 線セパレータを使用したペーパー・レイアウト・ビュー

3. 目的の表示になるように、線の書式を設定します。この例では、「書式」→「線」→「線幅」→「2ポイント」を選択しました。次に、カラーを黒に変更しました。

4. ペーパー・デザイン・ビューにレポートを実行します。これで、表示は次のようになります。

図18-10 線セパレータを使用したレポートのペーパー・デザイン・ビュー

5. レポートをgraphics_your_initials.rdfという名前で保存します。

18.3.5 レポートへのタイトルの追加

この項の手順では、ツール・パレットのツールを使用して、レポートのタイトルを作成する方法を説明します。塗りつぶしカラーを使用して、黒の背景と白のテキストを作成し、項目が正しく表示されるように調整します。

レポートにタイトルを追加するには:

1. ペーパー・レイアウト・ビューで、ツール・パレットの「四角形」ツールをクリックします。

2. タイトルを表示する場所に四角形を描きます。この例では、繰返し枠の上に四角形を描き、タイトルがすべてのデータの上に1度のみ表示されるようにしました。

3. ツール・パレットの「テキスト」ツールをクリックし、四角形の中をクリックしてタイトル(Employee Detailsなど)を入力します。

4. テキスト・オブジェクトが選択されている状態で、「テキスト・カラー」ツールをクリックし、白を選択します。

5. 四角形オブジェクトが選択されている状態で、ツール・パレットの「塗りつぶしカラー」ツールをクリックし、黒を選択します。

6. オブジェクト・ナビゲータで、作成したテキスト・オブジェクトが「ボディ」の下に表示されていることを確認します。名前の横にある「A」アイコンによって、どのオブジェクトがテキスト・オブジェクトであるかを判断できます。この場合、テキスト・オブジェクトはB_3です。

7. オブジェクトを選択したら、ペーパー・デザイン・ビューのタイトル・バーをクリックしてペーパー・デザイン・ビューを選択します。

8. 「レイアウト」→「最前面へ移動」を選択します。

9. ペーパー・デザイン・ビューにレポートを実行します。これで、表示は次のようになります。

図18-11 タイトルを付けたレポートのペーパー・デザイン・ビュー

10. レポートをgraphics_your_initials.rdfという名前で保存します。

18.4 サマリー

おめでとうございます。ペーパー・レポートが正常に作成され、テキスト・カラーと塗りつぶしカラーを変更し、グラフィックを追加しました。この章で学習した内容は次のとおりです。

- レポート・ウィザードで単純なレポート定義を作成する。

- レポートのオブジェクトのレイアウトを変更する。

- レポートに境界線を追加する。

- 各レコードに箇条書きのドットを追加する。

- 各レコード間に水平セパレータを追加する。

- 塗りつぶしカラーとレイアウト機能を使用して、レポートにタイトルを追加する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

19 繰返し枠ごとにページ番号をリセットするレポートの作成

この章では、データの表示どおりにページ番号をリセットするレポートについて学習します。この章の手順に従うと、図19-1に示すレポート出力を生成できます。

図19-1 繰返し枠ごとにページ番号がリセットされたレポートの出力

この例では、「Page X of Y」の書式を使用してページの番号付けを行います。最初の番号(X)は、各親レコード(各営業担当者など)の現行ページに対応します。このページ番号は、営業担当者ごとに「1」にリセットされます。したがって、各営業担当者の統計が個別に追跡されます。

2番目の数字(Y)は、各営業担当者の顧客情報を表示するために必要な合計ページ数です。このフィールドも、新しい親レコードごとにリセットされます。

重要な注意: この章の手順では、ペーパー・レイアウトに"Page X of Y Pages"を作成する方法を説明します。Webソースの場合はページ番号付けがないので、この説明は該当しません。

概要

- 「ページ番号付け」ダイアログ・ボックスでは、ページ番号を特定の繰返し枠でリセットするか、レポート全体で通し番号を付けるかを指定できます。

- ただし、サンプル・レポートの2番目の数字のように、数ページ単位で繰り返される合計ページを使用する場合、他のオブジェクトの件数を含むフィールドを書式設定するときに適用される一定のルールに注意する必要があります。ページ依存参照と呼ばれるこの値を、レポートの最初のページ、または最終ページ以外のページに表示するには、Reports Builderがその値を識別する前に、値が含まれるフィールドを書式設定する必要があります。つまり、Reports Builderがレポートを書式設定するときに、どれくらいのスペースを確保するか識別できるように、この種の値を表示するフィールドを固定しておく必要があります。このフィールドに「水平拡張度」プロパティまたは「垂直拡張度」プロパティを「拡張」、「縮小」または「可変」に設定しても、Reports Builderは固定と見なします。このようなフィールドを作成する場合は、値が十分に収まる大きさにする必要があります。

- また、フィールドを非表示にして、ボイラープレート・オブジェクトから参照することもできます。この方法を使用する場合、フィールドの長さは可変ですが、ボイラープレートの長さは固定されたままになるので、フィールドが収まる十分なサイズのボイラープレート・オブジェクトを作成する必要があります。

- このようにしてReports Builderによって処理される値には、&TOTAL LOGICAL PAGES、&TOTAL PANELS、&TOTAL PHYSICAL PAGES、およびこれらを参照するサマリーや式などがあります。「Page」に設定されている「計算位置」プロパティまたは「リセット位置」プロパティのいずれかを持つサマリーやそれを参照する式も、ページ依存参照と見なされます。このような値のすべてのリストと、Reports Builderの処理の詳細は、Oracle Reportsオンライン・ヘルプの垂直拡張度プロパティおよび水平拡張度プロパティに関するトピックを参照してください。

データ・リレーションシップ

図19-1に示しているように、このレポートにはマスター/ディテール・リレーションシップとブレークの両方が含まれます。これによって、2つのレベルでデータが区別されます。いつページ番号をリセットするかは、トップ・レベル(ブレーク)で決定されます。

レイアウト

このレポートでは、マスター/ディテールのレイアウト・スタイルを修正したものを使用します。また、ページ番号に2つの非表示フィールドを作成し、これをボイラープレート・オブジェクトで参照します。これにより、総ページ数を表示するフィールドが適切なサイズになります。次に、「ページ当りの最大レコード数」プロパティでブレーク・グループの繰返し枠の設定を確認し、ページに正しく番号が付けられるようにします。

使用例

この例では、レポートのマージンにページ番号を"Page X of Y Pages"の書式で作成します。ページ番号Xは、1度に1人の営業担当者につき、顧客への売上を計上するページ1枚ごとに1増加します。Yは、営業グループ内のある営業担当者の総ページ数を示し、次の営業担当者のページになるとリセットされます。

このサンプル・レポートの作成過程では、次を行います。

- データ・モデルとグループ上レイアウトの作成

- 各営業担当者の売上を顧客別にグループ化して出力するための2番目の問合せの追加

- 追加の問合せデータを使用するためのレイアウトのデフォルトの再設定

- プロパティの設定とフィールドの書式設定

- レポートのページ番号に使用する新しいフィールドの作成

- ページ番号を作成するためのフィールドの参照

繰返し枠ごとにページ番号をリセットするサンプル・レポートを表示するには、サンプル・フォルダpagenumを開き、Oracle Reportsのサンプルpagenum.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

19.1 この例の前提条件

- この章の例を作成するには、Summit Sporting Goods (SUMMIT)スキーマに対するアクセス権が必要です。このスキーマをインストールするSQLスクリプトをダウンロードするには、「はじめに」の「データ・ソースへのアクセス」を参照してください。EMP、CUSTOMERおよびSALESの各表が必要になります。

- この方法でページ番号を表示するレポートのHTMLビューは、JSPまたはRDF形式のレポートを使用し、HTMLを宛先フォーマットとして使用して、レポート・サーバー経由で配布する必要があります。次に例を示します。

http://computer_host:port/reports/rwservlet?report=pgnum.rdf
&userid=scott/tiger@my_database&destype=cache&desformat=html&server=rep_server

19.2 データ・モデルとグループ上レイアウトの作成

この例のように、単一問合せレポートを作成する場合、レポート・ウィザードを使用して、データ・モデルとレイアウトを同時に作成できます。

データ・モデルとグループ上レイアウトを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「Webおよびペーパー・レイアウトの両方を作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページでレポートの「タイトル」を入力し、「グループ上」を選択して「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT ENAME, REPID, CUSTID, NAME, ADDRESS, TRIM(CITY)||',
'||STATE||'  '||ZIP LOCATION,  AREA||' '||PHONE, CREDITLIMIT
FROM EMP, CUSTOMER
WHERE EMPNO = REPID
ORDER BY REPID

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルpagenum_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

8. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第19.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

9. 「グループ」ページで、「使用可能フィールド」リストの「ENAME」をクリックし、「>」ボタンをクリックしてこのフィールドを「グループ・フィールド」リストに移動します。

10. 「REPID」も「グループ・フィールド」リストに移動して、「次へ」をクリックします。

図19-2 レポート・ウィザードでのグループ・フィールドの選択

11. 「フィールド」ページで「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動します。次に「CUSTID」をクリックし、「<」ボタンをクリックして、それを「使用可能フィールド」リストに戻し、「次へ」をクリックします。

12. 「合計」ページで「次へ」をクリックします。

13. 「ラベル」ページで、ラベルとフィールド幅を次のように変更し、「次へ」をクリックします。

フィールド

ラベル

幅

ENAME

Rep Name

10

REPID

Rep ID

6

NAME

Customer Name

20

ADDRESS

Address

20

LOCATION

Location

20

AREA_PHONE

Area Phone

12

CREDITLIMIT

Credit Limit

8

図19-3 レポート・ウィザードで指定するラベルと幅

14. 「テンプレート」ページで「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。

15. レポートをpagenum_your_initials.rdfという名前で保存します。

19.3 2番目の問合せの追加

ペーパー・デザイン・ビューでは、データが営業担当者ごとにグループ化され、各営業担当者の下に顧客データがリストされます。

図19-4 ペーパー・デザイン・ビューのレポート・レイアウト

データはすべて1ページに表示され、各顧客の個別の売上トランザクションはまだ表示されていません。これを表示するには、データ・モデルにもう1つ問合せを追加する必要があります。

レポートに新しい問合せを追加するには:

1. ツールバーの「データ・モデル」ボタンをクリックします。

2. データ・モデル・ビューで、ツール・パレットの「SQL問合せ」ツールをクリックし、問合せQ_1の右にあるデータ・モデル・ビューの空いている場所をクリックして、「SQL問合せ文」ダイアログ・ボックスを表示します。

3. 「SQL問合せ文」フィールドに、次のSELECT文を入力します。

SELECT CUSTID,PRODNAME,AMOUNT
FROM SALES
ORDER BY CUSTID

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルpagenum_code.txtからコードをコピーして「SQL問合せ文」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「SQL問合せ文」フィールドにコードを入力します。

4. 「OK」をクリックして、データ・モデル・ビューに新しい問合せを表示します。

5. データ・モデル・ビューで、ツール・パレットの「データ・リンク」ツールをクリックします。

6. 十字カーソルを使用してG_NAMEグループの「CUSTID」をクリックし、カーソルをG_custid1グループの「custid1」までドラッグしてマウス・ボタンを放し、2つのグループ間で「CUSTID」フィールドと「custid1」フィールドをリンクします。

7. レポート・エディタのウィンドウをオブジェクト・ナビゲータの横に配置し、どちらも同時に表示できるようにします。

8. オブジェクト・ナビゲータの「データ・モデル」ノードで、「グループ」ノードを開きます。次に、「ペーパー・レイアウト」ノードで、「メイン・セクション」ノードを開きます。この2つの構造を比較すると、データ・モデルでは問合せQ_2を追加すれば新しいデータが使用できるのに対し、ペーパー・レイアウトでは、そうするように変更しないかぎり、この追加データを使用しません。次にこれを行います。

19.4 レイアウトのデフォルトの再設定

追加の問合せデータを使用できるようにレイアウトのデフォルトを再設定するには:

1. オブジェクト・ナビゲータでレポート名をクリックします。

2. 「ツール」→「レポート・ウィザード」を選択して、ウィザードを再表示します。

3. レポート・ウィザードの「グループ」ページで、「使用可能グループ」リストの「G_custid1」をクリックし、「下へ」をクリックして印刷方向を指定し、このグループを「表示グループ」リストに移動します。

4. 「フィールド」ページで、「使用可能フィールド」リストの「prodname」と「amount」をクリックし、「>」ボタンをクリックして、これらのフィールドを「表示フィールド」リストに移動します。

5. 「ラベル」ページで、ラベルとフィールド幅を次のように変更します。

フィールド

ラベル

幅

prodname

Product Name

30

amount

Amount

9

6. 「テンプレート」ページで「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次の例のようになります。

図19-5 変更後のレポート・レイアウトのペーパー・デザイン・ビュー

データは営業担当者ごとにグループ化され、各営業担当者の下に顧客データがリストされています。ただしここでは、各顧客の下に、販売した個別の製品がリストされています。レポートはこれで複数ページになりました。

19.5 プロパティの設定とフィールドの書式設定

プロパティを設定し、レポートのフィールドを書式設定するには:

1. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードをクリックし、ツールバーの「すべて拡張」ボタンをクリックします。

2. 「R_G_ENAME」ノードの横にある繰返し枠アイコンをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「繰返し枠」で、「ページ当たりの最大レコード数」プロパティを「1」に設定します。

3. オブジェクト・ナビゲータで、「R_G_CUSTID1」ノードの横にある繰返し枠アイコンをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「繰返し枠」で、「枠間の垂直間隔」プロパティを「0.25」に設定し、繰返し枠のインスタンス間、つまり、各顧客レコードの間の垂直間隔を0.25インチ(0.5センチメートル)に指定します。

- 「標準レイアウト」で、「ページ保護」プロパティを「はい」に設定し、繰返し枠の最初のインスタンス(つまり、最初の顧客レコード)がすべて同じ論理ページに収まるように指定します。

4. オブジェクト・ナビゲータで、「F_CREDITLIMIT」ノードをクリックし、[Ctrl]を押しながら「F_AMOUNT」をクリックして、両方のノードを選択します。

5. ツールバーの「ペーパー・デザイン」ボタンをクリックしてペーパー・デザイン・ビューをアクティブ・ウィンドウにし、「F_CREDITLIMIT」フィールドおよび「F_AMOUNT」フィールドを選択して、書式を変更します(ツールバーの対応するボタンをクリックすることもできます)。

- 「書式」→「数値」→「通貨」を選択

- 「書式」→「数値」→「10進桁を追加」を選択

- 「書式」→「数値」→「10進桁を追加」を選択(小数点以下2桁にするために再度選択)

- 「書式」→「文字の割付け」→「右詰め」を選択

6. ペーパー・デザイン・ビューで、「Amount」ラベル(列ヘッダー)をクリックして、「書式」→「文字の割付け」→「右詰め」を選択します。

19.6 新しいフィールドの作成

レポートのページ番号に新しいフィールドを作成するには:

1. ツールバーの「ペーパー・レイアウト」ボタンをクリックして、ペーパー・レイアウト・ビューを表示します。

2. ペーパー・レイアウト・ビューでツールバーの「マージン編集」ボタンをクリックして、レポートのマージン領域を表示します。次のように、上のマージンに2つのページ番号フィールドを作成します。

図19-6 レポートの上のマージンのページ番号ソース・フィールド

3. ツール・パレットの「フィールド」ツールをクリックし、マージンの中央に2文字ほどの長さのフィールドを描画します。

4. 新しいフィールド・オブジェクト(F_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「F_TOTAL_PAGENO」に設定します。

- 「フィールド」で、「ソース」プロパティを「総ページ数」に設定し、「可視」プロパティを「いいえ」に設定します。

- 「標準レイアウト」で、「水平拡張度」プロパティを「可変」に設定します。
このフィールドと次に作成するフィールドを非表示にすると、これらを参照した場所でのみ表示されるようになります。水平方向のサイズを「可変」に変更すると、ページ数の増加にあわせてフィールドを拡張できます。

- 「フィールド」で、「ページ番号付け」プロパティ・フィールドをクリックして、「ページ番号付け」ダイアログ・ボックスを表示します。
「リセット位置」リストで「R_G_ENAME」をクリックし、「開始位置」と「増分値」の値がどちらも「1」であることを確認し、「OK」をクリックします。

5. プロパティ・インスペクタを閉じます。

6. ペーパー・レイアウト・ビューで、「F_TOTAL_PAGENO」フィールドをクリックします。

7. 「編集」→「コピー」を選択し、「編集」→「貼付け」を選択して、F_TOTAL_PAGENOの横にF_TOTAL_PAGENOと同じディメンションを持つ新しいフィールドを作成します。

8. 新しいフィールド・オブジェクト(F_TOTAL_PAGENO1)をマージンの空き領域へドラッグします。

9. 新しいフィールド・オブジェクト(F_TOTAL_PAGENO1)をダブルクリックして、プロパティ・インスペクタを表示し、次の変更を行います。

- 「一般情報」で、「名前」プロパティを「F_PAGENO」に設定します。

- 「フィールド」で、「ソース」プロパティを「ページ番号」に設定します。
これはF_TOTAL_PAGENOの複製なので、「水平拡張度」プロパティと「可視」プロパティはすでに適切に設定されています。

- 「フィールド」で、「ページ番号付け」プロパティ・フィールドをクリックして、「ページ番号付け」ダイアログ・ボックスを表示します。
「リセット位置」リストで「R_G_ENAME」をクリックし、「開始位置」と「増分値」の値がどちらも「1」であることを確認し、「OK」をクリックします。

10. プロパティ・インスペクタを閉じます。

次に、これらのフィールドをテキスト・ボックスで参照し、ページ番号を"Page X of Y Pages"の書式で表示します。

19.7 フィールドの参照

ページ番号フィールドを参照するには:

1. ペーパー・レイアウト・ビューで、ツール・パレットの「線カラー」ツールをクリックします。

2. カラー・パレットで、枠なしをクリックします。

3. ツール・パレットの「テキスト」ツールをクリックします。

4. ページ番号を表示する上のマージンにカーソルを置き、クリックしてボイラープレート・オブジェクトを作成します。

5. 新しいボイラープレート・オブジェクトに、Page &F_PAGENO of &F_TOTAL_PAGENOと入力します。

図19-7 レポートの上のマージンのページ番号ソース・フィールドおよび参照フィールド

レポート出力では、現行のページ番号がフィールドF_PAGENOを参照するところに表示され、各マスターの総ページ数がフィールドF_TOTAL_PAGENOを参照するところに表示されます。必要に応じて、ページ番号のボイラープレート・テキスト・オブジェクトのサイズを変更して、F_TOTAL_PAGENOの値が切り捨てられないようにします。

6. レポートを保存して、実行します。最終的なレポート出力は次のようになります。

図19-8 繰返し枠ごとにページ番号がリセットされたレポートの最終出力

19.8 サマリー

おめでとうございます。繰返し枠ごとにページ番号をリセットするレポートは、正常に作成されました。この章で学習した内容は次のとおりです。

- データ・モデルとグループ上レイアウトを作成する。

- 2番目の問合せを追加して複数問合せレポートを作成し、レイアウトのデフォルトを再設定する。

- プロパティを設定し、フィールドを書式設定する。

- レイアウトでページ番号のボイラープレート・オブジェクトを作成し、参照する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

20 混合フィールド・レポートの作成

この章では、異なる位置にグループ・フィールドを表示するレポートについて学習します。この章の手順に従うと、図20-1に示すレポート出力を生成できます。

図20-1 中央にマスター・レコードのグループがあるレポート出力

概要

通常、グループ(ブレーク)フィールドは、関連するフィールドの左(グループ左レポートの場合)または上(グループ上レポートの場合)に表示されます。この例では、グループ・フィールドが関連するフィールドの中に表示されます。

データ・リレーションシップ

- このタイプのレポートを作成するには、グループが2つあるデータ・モデルを作成する必要があります。

- ディテール・グループの式列では、グループ列の値を返します。式列は、そのグループの中央に移動します。

レイアウト

- このレポートでは、グループ上レイアウトを使用します。ペーパー・レイアウト・ビューで、ブレーク列をそのデフォルト位置から削除します。

- フォーマット・トリガーを作成し、ディテール・グループ内の式列グループ値の冗長な出力を抑止します。

使用例

この例では、従業員と部門ごとに給与データを表示するレポートを作成します。ユーザーからは、レイアウトの中央にグループ値(部門名)、左に従業員名、右に給与を表示するように依頼されました。

このサンプル・レポートの作成過程では、次を行います。

- レポート・ウィザードを使用したデータ・モデルとレイアウトの作成

- ディテール・グループへの式列の追加

- レポート・ウィザードでのフィールドの追加

- ペーパー・デザイン・ビューでの冗長なフィールドの削除

- フォーマット・トリガーでの冗長な値の抑止

混合フィールド・レポートのサンプルを表示するには、サンプル・フォルダintermixを開き、Oracle Reportsのサンプルintermix.rdfを開きます。アクセス方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

20.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のSCOTTサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

20.2 データ・モデルとレイアウトの作成

この例のように、単一問合せレポートを作成する場合、レポート・ウィザードを使用して、データ・モデルとレイアウトを同時に作成できます。

データ・モデルとグループ上レイアウトを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページでレポートの「タイトル」を入力し、「グループ上」を選択して「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT DEPT.DNAME, EMP.ENAME, EMP.SAL
FROM DEPT, EMP
WHERE (EMP.DEPTNO = DEPT.DEPTNO)

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルintermix_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

8. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第20.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

9. 「グループ」ページで、「使用可能フィールド」リストの「DNAME」をクリックし、「>」ボタンをクリックしてこのフィールドを「グループ・フィールド」リストに移動します。

図20-2 レポート・ウィザードの「グループ」ページ

10. 「次へ」をクリックします。

11. 「フィールド」ページで「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動し、「次へ」をクリックします。

12. 「合計」ページで「次へ」をクリックします。

13. 「ラベル」ページで、ラベルを次のように変更し、「次へ」をクリックします。

フィールド

ラベル

DNAME

Dept.

ENAME

Name

SAL

Salary

14. 「テンプレート」ページで「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次の例のようになります。

図20-3 混合フィールド・レポートのペーパー・デザイン・ビュー

15. レポートをintermix_your_initials.rdfという名前で保存します。

20.3 式列の追加

このグループ・レポートの中央に部門名を表示するには、ディテール・グループの列を使用して部門名を表示するのが最も簡単です。したがって、部門名を表示する式列をディテール・グループで作成する必要があります。

式列を追加するには:

1. ツールバーの「データ・モデル」ツールをクリックして、データ・モデル・ビューを表示します。

2. データ・モデル・ビューで、G_ENAMEグループのサイズを変更し、3番目の列が入る大きさにします。

3. ツール・パレットの「式列」ツールをクリックします。

4. G_ENAMEグループ内をクリックして、式列を作成します。

5. 新しい式列オブジェクト(CF_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「DEPARTMENT」に設定します。

- 「列」で、「データ型」プロパティを「Character」、「幅」プロパティを「14」に設定します。

- 「プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをダブルクリックしてPL/SQLエディタを表示します。

6. PL/SQLエディタで、カーソル位置(beginという単語の後)に次のように入力します。

return(:dname);

7. 「コンパイル」をクリックします。

8. 「閉じる」をクリックします。

9. レポート・エディタのタイトル・バーをクリックして、再度アクティブなウィンドウにします。

20.4 フィールドの追加

データ・モデルに式列を追加したら、それを表示するフィールドを追加する必要があります。この作業は、リエントラントなレポート・ウィザードを起動して簡単に実行できます。

フィールドを追加するには:

1. 「ツール」→「レポート・ウィザード」を選択します。

2. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択します。

3. 「フィールド」ページで次の操作を行います。

- 「使用可能フィールド」リストの「DEPARTMENT」をクリックし、「>」ボタンをクリックして、このフィールドを「表示フィールド」リストに移動します。

- 「表示フィールド」リストの「DEPARTMENT」をクリックし、「ENAME」と「SAL」の間にドラッグします。

4. 「終了」をクリックして、ペーパー・デザイン・ビューでレポート出力をプレビューします。次の例のようになります。

図20-4 混合フィールド・レポートのペーパー・デザイン・ビュー

20.5 冗長なフィールドの削除

式列用のフィールドを追加すると、部門値が2箇所で表示されます。この冗長性を排除するには、マスター・フィールドとそのヘッダーを削除する必要があります。

フィールドとそのラベルを削除するには:

1. ペーパー・デザイン・ビューで、[Shift]を押しながらラベル「Dept.」の最初のインスタンスとその横の値をクリックします。

2. 「編集」→「削除」を選択します。

図20-5 ペーパー・デザイン・ビューに表示された出力

20.6 冗長な値の抑止

出力内で、部門値は正しい位置に配置されていますが、部門値が部門内のレコードごとに繰り返し表示されています。部門値は、部門ごとに一度だけ表示するようにします。これには、まず、現在の部門値と直前の部門値を比較するのに使用するグローバル変数を作成する必要があります。次に、各部門のレコードの比較に基づいて抑止する値を判断するフォーマット・トリガーを作成します。

グローバル変数を作成するには:

1. オブジェクト・ナビゲータで、「プログラム・ユニット」ノードをクリックします。

2. ツールバーの「作成」ボタンをクリックします。「新規プログラム・ユニット」ダイアログ・ボックスが表示されます。

3. 「名前」フィールドにglobalと入力し、「パッケージ仕様部」を選択します。

図20-6 新規プログラム・ユニット・ダイアログ・ボックス

4. 「OK」をクリックします。

5. PL/SQLエディタで、次のPL/SQLを入力します。

PACKAGE global IS
prev_val varchar2(14);
END;

6. 「コンパイル」をクリックします。

7. 「閉じる」をクリックします。

フォーマット・トリガーを追加するには:

1. オブジェクト・ナビゲータで、「検索」フィールドにF_DEPARTMENTと入力し、それを選択します。

2. F_DEPARTMENTの左にあるプロパティ・アイコンをダブルクリックしてプロパティ・インスペクタを表示し、プロパティを設定します。

- 「拡張レイアウト」で、「フォーマット・トリガー」プロパティ・フィールドをダブルクリックし、PL/SQLエディタを表示します。

3. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function F_DEPARTMENTFormatTrigger return boolean is
begin
If global.prev_val = :department then
return(false);
Else
global.prev_val := :department;
return(true);
END IF;
end;

4. 「コンパイル」をクリックします。

5. 「閉じる」をクリックします。

6. レポート・エディタのタイトル・バーをクリックして、アクティブなウィンドウにします。ペーパー・デザイン・ビューに戻ります(ペーパー・デザイン・ビューにまだアクセスしていない場合も)。レポート出力の変更点を確認してください。

図20-7 ペーパー・デザイン・ビューに表示された最終的なレポート出力

7. レポートを保存します。

20.7 サマリー

おめでとうございます。混合フィールド・レポートは正常に作成されました。この章で学習した内容は次のとおりです。

- レポート・ウィザードでデータ・モデルとレイアウトを作成する。

- ディテール・グループに式列を追加する。

- レポート・ウィザードでフィールドを追加する。

- ペーパー・デザイン・ビューで冗長なフィールドを削除する。

- フォーマット・トリガーで値を抑止する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

21 ラベルを非表示にするレポートの作成

この章では、フィールド・ラベルを非表示にするレポートについて学習します。この章の手順に従うと、図21-1に示すレポート出力を生成できます。Department 40のフィールド・ラベルは、ディテール・レコードがないため表示されないことを確認してください。

図21-1 ラベルを非表示にしたレポート出力

概要

デフォルトのマスター/ディテール・レポートには、ユーザーが作成した列に対してフェッチするディテール・レコードや値がない場合でも、ディテール・ラベルやフィールドは常に出力されます。この例では、1つのレコードの詳細情報を非表示にし、他のマスター・レコードとディテール・レコードは表示する方法を学習します。

データ・リレーションシップ

- このレポートでは、マスター/ディテール・データ・モデルを使用します。また、値を返すファンクションが1つのみある式列をディテール・グループに作成します。これにより、ディテール・グループには、ディテール・レコードが返されるたびに必ず値を返す(NULL値などではない)列が少なくとも1つはあるようにします。

- この式列が値を返す回数をカウントするサマリーを作成します。レイアウトでは、サマリーを参照してディテール・ラベルを表示するかどうかを決めるフォーマット・トリガーを作成します。これによって、ディテール・レコードの有無を判別する確実な手段を作成できます。

レイアウト

このレポートでは、グループ上のレイアウト・スタイルを修正したものを使用します。

使用例

この例では、ディテール・レコードがない場合はフィールド・ラベルを表示しないレポートを作成します。フィールド・ラベルがない場合、ディテール・レコードを取得できなかったことをユーザーに知らせるテキストを表示します。

このサンプル・レポートの作成過程では、次を行います。

- データ・モデル・ビューでの手動による2つの問合せをリンクしたデータ・モデルの作成

- データ・モデル・ビューでの式列とサマリー列の作成

- レポート・ウィザードを使用したレポート・レイアウトの作成

- ディテール・レコードを取得できない場合のラベルを非表示にするフォーマット・トリガーの追加

- レコードがないときに表示するテキストの追加

ラベルを非表示にするレポートのサンプルを表示するには、サンプル・フォルダsuppresslabelsを開き、Oracle Reportsのサンプル・レポートsuppresslabels.rdf.を開きます。サンプルを開く方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

21.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のSCOTTサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

21.2 2つの問合せをリンクしたデータ・モデルの作成

この項の手順では、マスター/ディテール・リレーションシップに2つの問合せがある単純なデータ・モデルを作成する方法について説明します。

データ・モデルを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「新規レポートを手動で作成」を選択して「OK」をクリックします。

3. 表示されたデータ・モデル・ビューで、ツール・パレットの「SQL問合せ」ツールをクリックし、データ・モデル・ビューの空き領域をクリックして、「SQL問合せ文」ダイアログ・ボックスを表示します。

4. 「SQL問合せ文」ダイアログ・ボックスに、最初のSELECT文を次のように入力します。

SELECT * FROM DEPT
ORDER BY DEPTNO

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルsuppresslabels_code.txtからコードをコピーして「SQL問合せ文」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「SQL問合せ文」フィールドにコードを入力します。

Pictures表がサンプル・スキーマにインストールされていない場合、この問合せを作成できません。

5. 「OK」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第21.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

6. 問合せがデータ・モデル・ビューに表示されたら、問合せ名(Q_1)を右クリックして、ポップアップ・メニューから「プロパティ・インスペクタ」を選択し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「Q_DEPT」に設定します。

7. 前述の手順に従って、Q_EMPという名前の別の問合せを作成します。その際、次のSELECT文を使用します。

SELECT DEPTNO, ENAME, JOB FROM EMP
ORDER BY ENAME

8. データ・モデル・ビューで、ツール・パレットの「データ・リンク」ツールをクリックします。

9. Q_DEPTのDEPTNOとQ_EMPのDEPTNO1の間でリンクをドラッグします。作成したデータ・モデルは次のようになります。

図21-2 ラベルを非表示にするレポートのデータ・モデル・ビュー

10. レポートをsuppresslabels_your_initials.rdfという名前で保存します。

21.3 式列とサマリー列の作成

この項の手順では、前の項で作成したQ_EMP(ディテール)問合せに、ディテール・レコードが返されるたびに値を返す式列を追加する方法について説明します。次に、Q_DEPT(マスター)問合せに、この式列が値を返す回数をカウントするサマリー列を追加します。

これらの列を作成する前に、グループのサイズを拡張して見やすくしておきます。このためには、黄色のグループ・ボックスを選択します。下枠をクリックし、約0.25インチ(0.5センチメートル)下へドラッグします。両方のグループでこの操作を行うと、新しい列を追加するための領域を確保できます。

21.3.1 ディテール問合せ内の式列の作成

この項では、値を1つ返す式列を作成する方法について説明します。

式列を作成するには:

1. データ・モデル・ビューで、ツール・パレットの「式列」ツールをクリックします。

2. Q_EMP問合せの「JOB」列の下をクリックし、式列を作成します。

3. 新しい式列オブジェクト(CF_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「DETAIL_VAL」に設定します。

- 「プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。

4. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function DETAIL_VALFormula return Number is
begin
return(1);
end;

5. 「コンパイル」をクリックします。

ヒント:

コンパイル時にエラーが発生した場合は、入力したコードと提供されているコードを比較してください。suppresslabels_code.txtからコードをコピーして貼り付けることもできます。

6. コードがコンパイルされたら、「閉じる」をクリックします。

21.3.2 マスター問合せ内のサマリー列の作成

この項の手順では、式列から返される情報に依存するマスター問合せに、サマリー列を作成およびカスタマイズする方法について説明します。

サマリー列を作成するには:

1. データ・モデル・ビューで、ツール・パレットの「サマリー列」ツールをクリックします。

2. Q_DEPT問合せの「LOC」列の下をクリックし、式列を作成します。

3. 新しいサマリー列オブジェクト(CS_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「COUNT_DETAIL」に設定します。

- 「サマリー」で、「ファンクション」プロパティを「カウント」、「ソース」プロパティを「DETAIL_VAL」、「リセット位置」プロパティを「G_DEPTNO」に設定します。

これで、データ・モデルには式列とサマリー列の両方が含まれ、次のようになります。

図21-3 式列とサマリー列作成後のデータ・モデル・ビュー

4. レポートをsuppresslabels_your_initials.rdfという名前で保存します。

21.4 レポート・レイアウトの作成

この項では、レポートのデフォルト・レイアウトを作成します。次に、確認に必要なすべてのレイアウト・オブジェクトを追加します。

21.4.1 レポートの初期レイアウトの作成

初期レイアウトを作成するには:

1. データ・モデル・ビューで、キャンバスを右クリックして「レポート・ウィザード」を選択します。

2. レポート・ウィザードの「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択します。

3. 「スタイル」ページで「グループ上」を選択します。

4. 「グループ」ページで、「使用可能グループ」リストの次のグループをクリックし、「下」をクリックして印刷方向を指定して、これらのグループを「表示グループ」リストに移動します。

- G_DEPTNO

- G_DEPTNO1

5. 「フィールド」ページで次の操作を行います。

- 「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動します。

- 「表示フィールド」リストで、「DEPTNO1」をクリックし、「<」ボタンをクリックしてこのフィールドを「使用可能フィールド」リストに戻します。

- 「COUNT_DETAIL」フィールドおよび「DETAIL_VAL」フィールドに対して、同じ操作を行います。

6. 「ラベル」ページで、必要に応じてラベルを変更します。

7. 「テンプレート」ページで、「事前定義テンプレート」を選択し、「Blue」をクリックします。次に「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次の例のようになります。

図21-4 ラベルを非表示にするレポートのペーパー・デザイン・ビュー

8. レポートをsuppresslabels_your_initials.rdfという名前で保存します。

21.5 ラベルを非表示にするフォーマット・トリガーの追加

この項の手順では、NULL値のレコードにはラベルを表示しないフォーマット・トリガーをレポートに追加する方法について説明します。

フォーマット・トリガーを作成するには:

1. オブジェクト・ナビゲータの「ペーパー・レイアウト」ノードで、「メイン・セクション」→「ボディ」→「M_G_DEPTNO_GRPFR」→「R_G_DEPTNO」→「M_G_DEPTNO1_GRPFR」→「M_G_DEPTNO1_HDR」にナビゲートします。または、オブジェクト・ナビゲータの「検索」フィールドを使用してM_G_DEPTNO1_HDRを検索します。

ヒント:

オブジェクト・ナビゲータでの枠の場所は、次のイメージ例を参照してください。オブジェクト・ナビゲータで枠名を選択すると、ペーパー・レイアウト・ビューでも同じ枠が選択されます。

図21-5 M_G_DEPTNO1_HDRへのナビゲート

2. 「M_G_DEPTNO1_HDR」の横のプロパティ・アイコンをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「拡張レイアウト」で、「フォーマット・トリガー」プロパティ・フィールドをダブルクリックし、PL/SQLエディタを表示します。

3. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function M_G_DEPTNO1_HDRFormatTrigger return boolean is
begin
if :count_detail=0 then
return (FALSE);
else
return (TRUE);
end if;
end;

4. 「コンパイル」をクリックします。

ヒント:

コンパイル時にエラーが発生した場合は、入力したコードと提供されているコードを比較してください。suppresslabels_code.txtからコードをコピーして貼り付けることもできます。

5. コンパイル・エラーがない場合は、「閉じる」をクリックします。

6. レポートをsuppresslabels_your_initials.rdfという名前で保存します。

21.6 レコードがないときに表示するテキストの追加

この項の手順では、取得するレコードがないときに表示するボイラープレート・テキストをレポート・レイアウトに追加する方法について説明します。

ボイラープレート・テキストを追加するには:

1. ペーパー・レイアウト・ビューで、ツールバーの「制限オフ」ボタンと「フレックス・オフ」ボタンをクリックします。

注意:

レポートの出力にボイラープレート・オブジェクトを表示する方法を調整するには、オブジェクトを作成する前に、制限モードとフレックス・モードをオフにする必要があります。

2. ツール・パレットの「テキスト」ツールをクリックします。

3. 2つのフィールド「F_ENAME」と「F_JOB」の上に四角形を描画して、新しいボイラープレート・テキスト・オブジェクトを作成します。

4. ボイラープレート・テキスト・オブジェクトをクリックして、No detail records retrieved.と入力します。

5. そのテキストを選択して、「書式」→「フォント」を選択します。

6. 「フォント」ダイアログ・ボックスで、「Arial」を選択し、「OK」をクリックします。

7. ペーパー・レイアウト・ビューが表示されている状態で、オブジェクト・ナビゲータをクリックして、2つのウィンドウが横に並ぶように位置を調整します。

8. オブジェクト・ナビゲータで、「M_G_DEPTNO1_GRPFR」にナビゲートし、[Ctrl]を押しながら次のオブジェクトをクリックして選択します。

- R_G_DEPTNO1
F_ENAME

- F_JOB

オブジェクト・ナビゲータは次のようになります。

図21-6 オブジェクト選択後のオブジェクト・ナビゲータ

9. ペーパー・レイアウト・ビューで、ツールバーの制限オン・ボタンをクリックします。

10. 「レイアウト」→「最前面へ移動」を選択します。

注意:

このメニュー・オプションがグレー表示されている場合は、キャンバス自体をクリックせずに、ペーパー・レイアウト・ビューのタイトル・バーをクリックします。このメニュー・オプションは、ペーパー・レイアウト・ビューがアクティブなときにのみ使用できます。

このメニュー・オプションを選択することにより、Reports Builderでは作成したボイラープレート・テキストの前にレコードが表示されます。レコードがない場合は、ボイラープレート・テキストが表示されます。

オブジェクト・ナビゲータは次のようになります。

図21-7 選択したオブジェクトを前面に移動後のオブジェクト・ナビゲータ

注意:

ボイラープレート・テキストB_1は、親枠M_G_DEPTNO1_GRPFRの直下に移動されています。この配置は、繰返し枠R_G_DEPTNO1内のオブジェクトによって表示されるレコードがボイラープレート・テキストの真上に表示されることを示します。取得するディテール・レコードがないことを知らせるボイラープレート・テキストは、実際にレコードがないときにのみ表示されます。

最後に、ボイラープレート・テキストがディテール・レコードの背面に見えないように、親枠の塗りつぶしカラーを変更する必要があります。

11. オブジェクト・ナビゲータで、「M_G_DEPTNO1_GRPFR」をクリックして、このオブジェクトのみを選択します。ペーパー・レイアウト・ビューでも、同じ枠が選択されています。

12. ツール・パレットの「塗りつぶしカラー」ツールをクリックして、塗りつぶしカラーをテンプレートにあわせて水色に変更します。

13. ツールバーの「ペーパー・デザイン」ボタンをクリックし、レポートを実行してペーパー・デザイン・ビューに表示します。レポートの表示は次のようになります。

図21-8 ラベルを非表示にするレポートの最終的なペーパー出力

注意:

Department 40のレコードには追加したボイラープレート・テキストが表示され、レコードのフィールド名は非表示になっています。

14. レポートをsuppresslabels_your_initials.rdfという名前で保存します。

21.7 サマリー

おめでとうございます。取得するデータがないときにラベルを非表示にするレポートは、正常に作成されました。この章で学習した内容は次のとおりです。

- 2つの問合せを手動で作成してそれらをリンクする。

- 式列とサマリー列を作成する。

- レポート・ウィザードでデフォルト・レイアウトを作成する。

- 表示するディテール・レコードがないときに、フィールド・ラベルを非表示にするフォーマット・トリガーを作成する。

- ボイラープレート・テキストを追加して、レイアウトを操作する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

22 条件付きハイライトを使用したレポートの作成

この章では、1つ以上の条件に基づいて、特定の値をハイライト表示するレポートについて学習します。この章の手順に従うと、図22-1に示すレポート出力を生成できます。

図22-1 条件付きハイライト・レポートの出力

概要

- 定義した要因に応じて、取得したデータの外観を変更するフォーマット・トリガーを作成できます。

- このフォーマット・トリガーは、「条件付き書式」ダイアログ・ボックスを使用して作成できますが、PL/SQLエディタを使用して手動で作成することもできます。この例の手順では、「条件付き書式」ダイアログ・ボックスの使用方法について説明します。次にそのコードをPL/SQLエディタに表示し、Reports Builderが自動生成したフォーマット・トリガーを検証します。

- 条件付きハイライトでは、特定の条件を満たすときに、レポート出力の指定した部分をフォーマットできます。

データ・リレーションシップ

このレポートでは、1つの問合せを使用してすべてのデータをフェッチします。

レイアウト

このレポートでは、表形式のレイアウト・スタイルを使用します。条件付きハイライトを追加するには、「条件付き書式」ダイアログ・ボックスを使用して、レポート出力でどの名前と給与をハイライトするかを決定します。

使用例

この例では、全従業員を一覧表示し、さらにその中の$10,000以上の従業員給与をハイライトする管理者用のレポートを作成します。また、給与が$4,999と$10,000の間の従業員も表示したいと考えています。この例では、条件付き書式を使用して、これらの給与額を太字と赤字でハイライトします。

このサンプル・レポートの作成過程では、次を行います。

- 1つの問合せに基づく、レポート・ウィザードを使用した基本的な表形式レポートの作成

- レポート内の特定のデータをハイライトするための、「条件付き書式」ダイアログ・ボックスを使用したレポートへの条件付き書式の追加

- Reports Builderによって生成されたフォーマット・トリガーの、PL/SQLエディタを使用した条件付きフォーマット・トリガーのコードの検証

条件付きハイライトを使用するレポートのサンプルを表示するには、サンプル・フォルダcondhighを開き、Oracle Reportsのサンプル・レポートcondhigh.rdfを開きます。サンプルを開く方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

22.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のHuman Resourcesサンプル・スキーマ(HR)に対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

22.2 基本的な表形式レポートの作成

この項の手順では、レポート・ウィザードを使用して単純な表形式レポートを作成する方法について説明します。

表形式レポートを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページでレポートの「タイトル」を入力し、「表形式」を選択して「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT ALL EMPLOYEES.FIRST_NAME, EMPLOYEES.LAST_NAME,
EMPLOYEES.EMPLOYEE_ID, EMPLOYEES.SALARY
FROM HR.EMPLOYEES

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルcondhigh_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

8. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第22.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

9. 「フィールド」ページで、「>」ボタンをクリックして次のフィールドを「表示フィールド」リストに移動し、「次へ」をクリックします。フィールドは必ず次の順序で移動します。

- EMPLOYEE_ID

- FIRST_NAME

- LAST_NAME

- SALARY

10. 「合計」ページで「次へ」をクリックします。

11. 「ラベル」ページで「次へ」をクリックします。

12. 「テンプレート」ページで、「事前定義テンプレート」を選択し、「Beige」をクリックします。次に「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力のプレビューを表示します。次の例のようになります。

図22-2 最初の表形式レポートのペーパー・デザイン・ビュー

ここからは、データをフォーマットして、より意味のあるものにします。

レポートをフォーマットするには:

1. ペーパー・デザイン・ビューで、データの列上を1回クリックして「Salary」列を選択します。

2. ツールバーの「通貨」ボタンをクリックします。すべての値の横に通貨記号が表示されます。

3. 「カンマ」ボタンをクリックします。

4. 10進桁を追加ボタンを2回クリックします。小数点の右側に小数点以下2桁が追加されます。
レポートの「Salary」列は次のようになります。

図22-3 フォーマットした「Salary」列

5. 次の操作を行って、列の位置合せを変更します。

1. 「Salary」列のヘッダーをクリックし、ツールバーの「中央に整列」ボタンをクリックします。

2. 「Salary」列を1回クリックし、ツールバーの「右に整列」ボタンをクリックします。

3. 「Salary」列が選択されている状態で、[Shift]キーを押しながら列のヘッダーをクリックして選択します。次に、右側の黒い四角形の1つをクリックしてドラッグし、列と列ヘッダーのサイズを調整します。

4. 「Employee Id」列のヘッダーをクリックします。さらに、[Shift]キーを押しながら「Employee Id」列をクリックして、この列を選択します。次いでツールバーの「中央に整列」ボタンをクリックします。

6. レポートのペーパー・デザイン・ビューは次のようになります。

図22-4 表形式レポートのペーパー・デザイン・ビュー

7. レポートをcondhigh_your_initials.rdfの形式で保存します。

22.3 レポートへの条件付き書式の追加

この項の手順では、$10,000以上の給与は赤い太字、$4,999と$10,000の間の給与は太字で表示されるように、条件付き書式を追加する方法について説明します。

取得したデータが$10,000以上で、なおかつ$4,999と$10,000の間であることはないので、2つの書式の例外は別に作成する必要があります。この項では、2つの異なる書式の例外を作成する方法について説明します。

条件付き書式を追加するには:

1. ペーパー・デザイン・ビューで、「Salary」列のデータ(「Salary」列のヘッダーではなく)を右クリックして、「条件付き書式」を選択します。

2. 「条件付き書式」ダイアログ・ボックスで、「新規」をクリックして新しい書式の例外を作成します。

3. 「書式の例外」ダイアログ・ボックスで、「SALARY」が選択されていることを確認します。

4. 「SALARY」の横にあるドロップダウン・リストから、「Greater Than or Equal」を選択します。

5. 次のボックスに10000と入力します。

6. 「書式」で、「テキスト・カラー」の横のアイコンをクリックして、カラー・パレットを表示します。

注意:

「書式の例外」ダイアログ・ボックスでは、テキスト・カラー、スタイル、フォントなどの任意のオプションを必要に応じて選択できます。

7. 「Red」をクリックします。

8. 「フォント」をクリックして、太字を選択します。

9. 「OK」をクリックして、新しいフォント・スタイルを受け入れます。
これで、「書式の例外」ダイアログ・ボックスでは、次のようにオプションが選択されています。

図22-5 「書式の例外」ダイアログ・ボックス

10. 「OK」をクリックします。

11. 「条件付き書式」ダイアログ・ボックスで、「新規」をクリックして第2の書式の例外を作成します。

12. 「SALARY」列の中で、$4999と$10000の間の値を太字で表示する書式の例外を作成します。

注意:

$4999と$10000の間のデータがハイライトされ、$10000と$4999がハイライトされないようにするため、必ず記述されている順序で値を入力してください。

13. 完了したら「OK」をクリックします。「条件付き書式」ダイアログ・ボックスは次のようになります。

図22-6 「条件付き書式」ダイアログ・ボックス

14. 「適用」をクリックし、「OK」をクリックします。次のようなレポートがペーパー・デザイン・ビューに表示されます。

図22-7 最終的な条件付き書式レポート

15. レポートをcondhigh_your_initials.rdfの形式で保存します。

22.4 条件付きフォーマット・トリガーのコードの検証

この項の手順では、「条件付き書式」ダイアログ・ボックスを使用して書式の例外を設定したときに、Reports Builderによって自動的に生成されるPL/SQLコードを検証します。

注意:

条件付きフォーマット・トリガーのコードはPL/SQLエディタでも編集できますが、「条件付き書式」ダイアログ・ボックスでコードを再編集すると、そこで選択した内容によってエディタでの編集が上書きされます。PL/SQLエディタでコードを編集した場合は、「条件付き書式」ダイアログ・ボックスを開くときに、警告メッセージが表示されます。

自動生成されたコードを検証するには:

1. ペーパー・デザイン・ビューで、「Salary」列(新しい書式を適用した列)を右クリックして、「PL/SQLエディタ」を選択します。

2. PL/SQLエディタに、Reports Builderによって自動生成された次のコードが表示されます。

図22-8 新しいフォーマット・トリガーのPL/SQLコード

注意:

このコードでは、作成した2つの書式の例外が1つのフォーマット・トリガーの2つの部分で構成されていることがわかります。このためには、「条件付き書式」ダイアログ・ボックスで2つの書式の例外を別々に作成する必要があります。同じ「書式の例外」ダイアログ・ボックスで2つの例外を同時に作成した場合は、データが両方の例外条件を同時に満たすことはないため、ハイライトされることはありません。

22.5 サマリー

おめでとうございます。レポート出力で指定したデータをハイライトするレポートは、正常に作成されました。この章で学習した内容は次のとおりです。

- レポート・ウィザードを使用して、単純な表形式レポートを作成する。

- ペーパー・デザイン・ビューのツールを使用して、レポートの外観をフォーマットする。

- 「条件付き書式」ダイアログ・ボックスと「書式の例外」ダイアログ・ボックスを使用して、レポート出力の特定のデータをハイライトするフォーマット・トリガーを作成する。

- Reports Builderによって自動生成されたコードを検証する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

23 条件付きフォーム・レター・レポートの作成

この章では、条件に応じて、異なる複数のフォーム・レターの生成が可能なレポートについて学習します。この章の手順に従うと、図23-1および図23-2に示すレポート出力を生成できます。

図23-1 条件付きフォーム・レター・レポートの出力、基本バージョン

図23-2 条件付きフォーム・レター・レポートの出力、追加バージョン

概要

- この2つのフォーム・レターは、同じレポートから作成されています。2つのレターには、共通する複数の特徴があります。したがって、基本となるフォーム・レターを作成してから、現行レコード(この場合は従業員)用に特定の部分を表示するかどうかを決定するために、その部分に条件を適用した方がより便利です。

- 条件付きの印刷は、実行時に特定の条件を満たす場合にのみレポート・セクションを表示するときに効果的です。反対に、条件付きの印刷を使用して、特定のユーザーに対して必要がない情報を非表示にすることもできます。

データ・リレーションシップ

このレポートでは、1つの問合せを使用してすべてのデータを選択します。

レイアウト

このレポートでは、フォーム・レター・レイアウト・スタイルを使用します。また、レターを構成する各種ボイラープレートを作成します。これらのボイラープレート・オブジェクトの印刷を制御するには、垂直方向に縮小するアンカーとPL/SQLフォーマット・トリガーを使用して、指定した条件を満たす従業員に条件ごとに異なるフォーム・レターを作成します。

使用例

このサンプルでは、全従業員を会社主催のピクニックに招待するフォーム・レターを作成します。ただし、成績上位の営業担当者に送るフォーム・レターには、ディナー・パーティへの特別招待を加えます。一方、その他の従業員には、ディナーへの招待のかわりに感謝の文言を加えます。

このサンプル・レポートの作成過程では、次を行います。

- データ・モデルとレイアウトの作成

- テキストの追加

- テキストのロジックの追加。アンカーでオブジェクトを連動し、テキスト表示を制御するフォーマット・トリガーを作成します。

条件付きフォーム・レター・レポートのサンプルを表示するには、サンプル・フォルダcondformを開き、Oracle Reportsのサンプルcondform.rdfを開きます。アクセス方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

23.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のSCOTTサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

23.2 データ・モデルとレイアウトの作成

この例のように、単一問合せレポートを作成する場合、レポート・ウィザードを使用して、データ・モデルとレイアウトを同時に作成できます。

データ・モデルとレイアウトを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページでレポートのタイトルを入力し、「フォーム・レター」を選択して「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT ENAME, COMM FROM EMP
ORDER BY ENAME

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルcondform_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

8. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第23.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

9. 「フォーム・レター・テキスト」ウィンドウに、レターの最初の段落を次のように入力します。

Dear Employee  &<ENAME>,

Mark your calendar! You are invited to
attend the Summit Sporting Goods annual
picnic on June 15, from 11:00 AM to
6:00 PM.  Be prepared for lots of food,
lots of entertainment, and lots of fun.

ヒント:

各行の終わりには、必ず強制改行を挿入してください。

10. 「次へ」をクリックします。

11. 「テンプレート」ページで、「テンプレートなし」を選択し、「終了」をクリックして、ペーパー・デザイン・ビューでレポート出力をプレビューします。

12. レポートをcondform_your_initials.rdfという名前で保存します。

23.3 テキストの追加

レポート・ウィザードで基本的なテキストを追加したら、追加テキストを作成する必要があります。このテキストは繰返し枠の内側に収まる必要があります。そのため、テキストを追加する前に、繰返し枠のサイズを変更しておきます。

繰返し枠のサイズを変更するには:

1. ツールバーの「ペーパー・レイアウト」ボタンをクリックして、ペーパー・レイアウト・ビューを表示します。

2. オブジェクト・ナビゲータで、「検索」フィールドにR_G_ENAMEと入力して検索します。

3. 「R_G_ENAME」をクリックして選択します。ペーパー・レイアウト・ビューでも、同時に選択されます。

4. レポート・エディタのタイトル・バーをクリックして、アクティブなウィンドウにします。

5. R_G_ENAMEの下部のハンドルをクリックして、約4インチ(10センチメートル)下にドラッグします。

テキストを追加するには:

1. ツール・パレットの「テキスト」ツールをクリックします。

2. 最初のテキスト・オブジェクトの約0.25インチ(0.5センチメートル)下をクリックします。

3. 次のテキストを入力します。

Because you're one of our top sales
representatives, we would like to
invite you to a celebration dinner
after the picnic. Employees such as
yourself brought in over $10 million
in increased revenues this year, a
15% increase over last year. The
dinner will be held at the City Inn
from 7:00 PM to midnight. Dinner will
be served at 7:30 PM. Please reply to
Human Resources if you plan to
attend.

4. ペーパー・レイアウト・ビューの空き領域を1回クリックします。

5. 「ツール」→「プロパティ・インスペクタ」を選択して、ボイラープレート・テキスト・オブジェクトのプロパティ・インスペクタを表示します。

- 「一般情報」で、「名前」プロパティを「B_SALESREP」に設定します。

6. レポート・エディタのタイトル・バーをクリックして、再度アクティブなウィンドウにします。

7. 前述の手順を繰り返しますが、今度は次のテキストを使用して、名前をB_ALL2とします。

We would also like to take this
opportunity to thank you for all of
your efforts over the last year.  As
a result of your hard work, company
revenues increased 15%.

8. 再度、前述の手順を繰り返しますが、今度は次のテキストを使用して、名前を B_ALL3とします。

I look forward to seeing you there!

J. King
President
Summit Sporting Goods

9. 元のテキスト・オブジェクトを選択して「ツール」→「プロパティ・インスペクタ」を選択し、「名前」プロパティを設定して、このオブジェクトの名前をB_ALLに変更します。

23.4 テキストのロジックの追加

B_SALESREPおよびB_ALL2のテキストは、それぞれ特定の従業員にのみ該当します。したがって、各テキストを表示するかどうかを決定する条件を適用する必要があります。また、オブジェクト(B_SALESREP、B_ALL2など)が印刷されないときは、その下のオブジェクト(B_ALL2、B_ALL3など)がレイアウトで上に移動する必要があります。移動しないと、表示されないオブジェクトがある従業員のレポート出力には、大きな空白ができます。この問題を解決するには、テキスト・オブジェクトをアンカーで連動します。

縮小アンカーを作成するには:

1. ペーパー・レイアウト・ビューで、ツール・パレットの「アンカー」ツールをクリックします。

2. B_SALESREP (2番目のテキスト・オブジェクト)の左上隅の線をクリックして、B_ALL(最初のテキスト・オブジェクト)の左上隅までドラッグします。ダブルクリックして、新しいアンカー・オブジェクトを作成します。

3. 「ツール」→「プロパティ・インスペクタ」を選択して、アンカー・オブジェクトのプロパティ・インスペクタを表示します。

- 「子の枠の割合(%)」プロパティと「親の枠の割合(%)」プロパティを「0」に設定します。

- 「垂直方向に縮小」プロパティを「はい」に設定します。

4. レポート・エディタのタイトル・バーをクリックして、再度アクティブなウィンドウにします。

5. 前述の手順を繰り返しますが、今度はB_ALL2の左上隅からB_SALESREPの左上隅にドラッグします。

6. 再度、前述の手順を繰り返しますが、今度はB_ALL3の左上隅からB_ALL2の左上隅にドラッグします。

図23-3 アンカーのプロパティが表示されているプロパティ・インスペクタ

フォーマット・トリガーを作成するには:

1. ペーパー・レイアウト・ビューで、「B_SALESREP」をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「拡張レイアウト」で、「フォーマット・トリガー」プロパティ・フィールドをダブルクリックし、PL/SQLエディタを表示します。

2. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function B_SalesrepFormatTrigger return boolean is
begin
if :comm >= 500 then return(TRUE);
else return(FALSE);
end if;
end;

このボイラープレートは、コミッションが$500より多い従業員のレターにのみ印刷されます。

3. 前述の手順を繰り返しますが、今度はB_ALL2に対して次のPL/SQLを入力します。

function B_ALL2FormatTrigger return boolean is
begin
if ((:comm < 500) or (:comm is null)) then
return(TRUE);
else return(FALSE);
end if;
end;

このロジックによって、B_SALESREPが印刷されないレターにのみB_ALL2が印刷されます。

図23-4 変更したレポートのペーパー・レイアウト・ビュー

4. レポートをコンパイルして保存し、実行します。ディナーへの招待があるフォーム・レターと感謝のメッセージがあるフォーム・レターがあることを確認します。

ヒント:

特定の宛先タイプでこのレポートをプレビューするには、ペーパー・デザイン・ビューで「ファイル」→「プレビュー・フォーマット」を選択して、宛先タイプを選択します。このレポート出力では、画面表示フォントではなくプリンタ・フォントと同じように表示されるので、印刷されたレポートの外観(行の折返しなど)を確認しやすくなります。

また、条件付きフォーム・レター・レポートを冒頭の図のように便箋に印刷するときは、レイアウトの作成時に、レターのテキストが便箋全体のデザインに合うようにレターヘッドの位置なども考慮する必要があります。

23.5 サマリー

おめでとうございます。条件付きフォーム・レター・レポートは正常に作成されました。この章で学習した内容は次のとおりです。

- データ・モデルとレイアウトを作成する。

- テキストを追加する。

- アンカーでオブジェクトを連動し、テキスト表示を制御するフォーマット・トリガーを作成する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

24 動的グラフィックを使用したレポートの作成

この章では、データに基づいて変化するグラフィックを含むレポートについて学習します。この章の手順に従うと、図24-1に示すレポート出力を生成できます。

図24-1 動的グラフィック・レポートの出力

概要

Oracle Reportsでは、動的な描画やイメージにリンクしてそれを表示することができます。これにより、グラフィックが変更されると、その変更が実行時にレポート出力に反映されます。

データ・リレーションシップ

- レポートに動的グラフィックを表示する方法の1つは、表示するグラフィック・ファイルの名前を格納するデータベース列を作成する方法です。これはデータ・モデル・ビューで行います。

- データ・モデル・ビューには、最新バージョンのグラフィックのレポートへの取込みを可能にする「ファイルからの読取り」プロパティが用意されています。ファイル名のリストを含む列に「ファイルからの読取り」プロパティを設定すると、Oracle Reportsでは指定したファイル名自体ではなく、そのファイルに格納されているグラフィックが表示されます。Oracle Reportsでは、この設定を行うことで、実行時に最新バージョンのグラフィックをレポートに取り込むことができます。

- レポートに動的グラフィックを挿入するもう1つの方法は、ペーパー・レイアウト・ビューのファイル・リンク・ツールを使用する方法です。このツールを使用して、グラフィックやテキストなどの外部ファイルを格納するボイラープレート・オブジェクトを作成できます。この方法については、この例では説明しません。このツールの詳細はOracle Reportsオンライン・ヘルプを参照してください。

レイアウト

このレポートでは、単純なグループ上レイアウトを使用します。

使用例

この例では、従業員が所属する部署の地域に応じて異なるイメージを表示する、グループ上レイアウトを使用した従業員に関する単純なレポートを作成します。

このサンプル・レポートの作成過程では、次を行います。

- データ・モデル・ビューでの手動による2つの問合せをリンクしたデータ・モデルの作成

- 最初にレポート・ウィザードを使用し、その後ペーパー・レイアウト・ビューで修正を加えることによるレポートのレイアウトの作成

- ペーパーを対象としたレポートの実行

動的グラフィックを含むレポートのサンプルを表示するには、サンプル・フォルダdynamicgraphicsを開き、Oracle Reportsのサンプル・レポートdynamicgraphics.rdf.を開きます。サンプルを開く方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

24.1 この例の前提条件

この例のレポートを作成するには、付属のデータ・ソースとグラフィックに対するアクセス権が必要です。また、このレポート用の画像を含む追加の表をデータベースにインストールする必要があります。

24.1.1 データ・ソースへのアクセスとPictures表のインストール

この章の例を作成するには、Oracle Database付属のSCOTTサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

また、データベース管理者に問い合せて、付属ファイルpictures.dmpを使用してPictures表をインストールする必要があります。

24.1.2 レポートで使用するグラフィック

このレポートを作成する前に、サンプル・レポート・ファイルがあるdynamicgraphicsディレクトリに、次のイメージがあることを確認します。

- NEW_YORK.TIF

- BOSTON.TIF

- DALLAS.TIF

- CHICAGO.TIF

この例ではTIFファイルを使用しますが、GIF、JPEG、BMPなどの他のグラフィック・ファイル・フォーマットを使用することもできます。

次に、これらのイメージがあるディレクトリを含むように、WindowsレジストリのREPORTS_PATHを更新します。REPORTS_PATHは、WindowsエントリのOracle Homeエントリの下にあります。このエントリを編集するときは、イメージの完全なディレクトリ・パスを追加します。

UNIXでは、REPORTS_PATHは$ORACLE_HOME/bin/reports.shで設定します。

24.2 2つの問合せをリンクしたデータ・モデルの作成

この項の手順では、マスター/ディテール・リレーションシップに2つの問合せがある単純なデータ・モデルを作成する方法について説明します。

データ・モデルを作成するには:

1. イメージのディレクトリ・パスを含むようにREPORTS_PATHを更新したら、Reports Builderを起動します。

2. 「ファイル」→「新規」→「レポート」を選択します。

3. 「新規レポートを手動で作成」を選択し、「OK」をクリックします。

4. 表示されたデータ・モデル・ビューで、ツール・パレットの「SQL問合せ」ツールをクリックし、データ・モデル・ビューの空き領域をクリックして、「SQL問合せ文」ダイアログ・ボックスを表示します。

5. 「SQL問合せ文」フィールドに、次のSELECT文を入力します。

SELECT ALL DEPT.DEPTNO, DEPT.DNAME, PICTURES.PICTURE
FROM DEPT, PICTURES
WHERE (DEPT.DEPTNO = PICTURES.DEPTNO)
ORDER BY DEPT.DEPTNO

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルdynamicgraphics_code.txtからコードをコピーして「SQL問合せ文」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「SQL問合せ文」フィールドにコードを入力します。

Pictures表がサンプル・スキーマにインストールされていない場合、この問合せを作成できません。

6. 「OK」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第24.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

7. 問合せがデータ・モデル・ビューに表示されたら、問合せ名(Q_1)を右クリックして、ポップアップ・メニューから「プロパティ・インスペクタ」を選択してプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「Q_PICTURES」に設定します。

8. データ・モデル・ビューで、Q_PICTURES問合せの「picture」列をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「列」で「ファイルからの読取り」プロパティを「はい」に設定し、「ファイル形式」プロパティを「イメージ」に設定します。

9. データ・モデル・ビューで、前述の手順に従って、Q_EMPLOYEESという名前のもう1つの問合せを次のコードで作成します。

SELECT ALL EMP.DEPTNO, EMP.ENAME, EMP.JOB, EMP.HIREDATE
FROM EMP
ORDER BY DEPTNO, ENAME

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルdynamicgraphics_code.txtからコードをコピーして「SQL問合せ文」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「SQL問合せ文」フィールドにコードを入力します。

10. データ・モデル・ビューで、ツール・パレットの「データ・リンク」ツールをクリックします。

11. Q_PICTURESのDEPTNOとQ_EMPLOYEESのDEPTNO1の間でリンクをドラッグします。作成したデータ・モデルは次のようになります。

図24-2 動的グラフィック・レポートのデータ・モデル・ビュー

12. レポートをdynamicgraphics_your_initials.rdfという名前で保存します。

24.3 レポートのレイアウトの作成

この項では、レポート・ウィザードを使用してレポートのデフォルト・レイアウトを作成します。次に、グラフィックに必要なすべてのレイアウト・オブジェクトを変更します。

24.3.1 レポート・ウィザードを使用したレポートの初期レイアウトの作成

初期レイアウトを作成するには:

1. ペーパー・レイアウト・ビューで、「ツール」→「レポート・ウィザード」を選択し、レポート・ウィザードを表示します。

2. レポート・ウィザードの「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択します。

3. 「スタイル」ページで「グループ上」を選択します。

4. 「グループ」ページで、「使用可能グループ」リストの次のグループをクリックし、「下」をクリックして印刷方向を指定して、これらのグループを「表示グループ」リストに移動します。

- G_deptno

- G_DEPTNO1

5. 「フィールド」ページで次の操作を行います。

- 「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動します。

- 「表示フィールド」リストで、「deptno」をクリックし、「<」ボタンをクリックしてこのフィールドを「使用可能フィールド」リストに戻します。

- 「DEPTNO1」フィールドにも同じ手順を繰り返します。

6. 「ラベル」ページで、「Picture」フィールドのラベルを削除します。

7. 「テンプレート」ページで、「テンプレートなし」を選択し、「終了」をクリックして、ペーパー・レイアウト・ビューにレポート・レイアウトを表示します。次の例のようになります。

図24-3 動的グラフィック・レポートの最初のペーパー・レイアウト・ビュー

8. レポートをdynamicgraphics_your_initials.rdfという名前で保存します。

24.3.2 レポートのレイアウトの変更

レポートの初期レイアウトを作成したら、レイアウト・オブジェクトを再調整して、動的グラフィックを追加できます。

レイアウトを変更するには:

1. ペーパー・レイアウト・ビューで、キーボードの[Ctrl]を押しながら[A]を押して、すべてのオブジェクトを選択します。

2. キーボードの矢印キーを使用して、すべてのオブジェクトを0.5インチ(1.5センチメートル)右に移動します。

3. ペーパー・レイアウト・ビューで、定規の7インチ(18センチメートル)の箇所まで見えるように画面を広げます。

4. オブジェクト・ナビゲータで、この例のレポート名を見つけて、「ペーパー・レイアウト」→「メイン・セクション」→「ボディ」→「M_G_DEPTNO_GRPFR」にナビゲートします。

5. 「R_G_DEPTNO」をクリックします。ペーパー・レイアウト・ビューでも、R_G_DEPTNO繰返し枠が選択されます。

6. R_G_DEPTNO繰返し枠を選択した状態で、枠の右側をクリックし、6.5インチ(16.5センチメートル)の位置までドラッグします。これで繰返し枠は上部の定規で3.0インチ(7.5センチメートル)のマークから6.5インチ(16.5センチメートル)のマークまで拡大されました。

7. 次に、枠の下部をクリックして、2.0インチ(5センチメートル)の位置までドラッグします。位置は左側の定規で確認できます。これで繰返し枠は、左側の定規の0.5インチ(1.3センチメートル)のマークから2.0インチ(5センチメートル)のマークまで拡大されました。

図24-4 レイアウト変更後のペーパー・レイアウト・ビュー

8. ツールバーの「フレックス・オフ」ボタンをクリックします。

9. 「Picture」フィールドを右側に移動して、約1.5 x 1.5インチ(4 x 4センチメートル)に拡大します。

10. オブジェクト・ナビゲータで、「ペーパー・レイアウト」→「メイン・セクション」→「ボディ」にナビゲートし、M_G_DEPTNO_GRPFR枠を選択します。

11. ペーパー・レイアウト・ビューで、その枠の右側の境界線をクリックして、「Picture」フィールドが含まれるまで右にドラッグします。

12. R_G_DEPTNO繰返し枠に対しても同じ操作を繰り返します。

13. R_G_DEPTNOを選択した状態で、「ツール」→「プロパティ・インスペクタ」を選択し、プロパティ・インスペクタを表示します。

14. 「繰返し枠」で、「ページ当たりの最大レコード数」プロパティを「1」に設定します。

注意:

ページ当たりの最大レコード数を1に設定することによって、レポートで1ページ当たり1つの地域のみ表示されるようになります。

15. レポートをdynamicgraphics_your_initials.rdfという名前で保存します。

24.4 ペーパーを対象としたレポートの実行

レポートを実行するには:

1. ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックします。
次のようなレポートがペーパー・デザイン・ビューに表示されます。

図24-5 最終的な動的グラフィック・レポート

2. ツールバーの「次のページ」ボタンをクリックして、レポートの他のページで、部門の場所に応じて異なるグラフィックが表示されることを確認します。

注意:

「Picture」フィールドに表示されるイメージは、地域ごとに更新されます。

24.5 サマリー

おめでとうございます。レポート内のデータに応じてグラフィックを表示するレポートは、正常に作成されました。この章で学習した内容は次のとおりです。

- 2つの問合せを手動で作成してそれらをリンクする。

- 「ファイルからの読込み」プロパティを使用して、動的グラフィックを表示する。

- レポート・ウィザードでデフォルト・レイアウトを作成する。

- ペーパー・レイアウトを変更して必要な情報を表示する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

第IV部

マトリックス・レポートの作成

この部の各章では、Oracle Reports Developerにおけるマトリックス・レポートの概要と、マトリックス・レポートの作成手順を説明します。マトリックス・レポートでは、情報がグリッド・フォーマットで表示されます。グリッド・フォーマットには、レポート内にネストしたグリッドとして情報を表示する、グループごとにグリッドを表示するなどのバリエーションがあります。

- 第25章「マトリックス・レポートの作成」

マトリックス・レポートはグリッドのようなスタイルであり、1つのラベル行と1つのラベル列、および行ラベルと列ラベルの両方に関連付けられたグリッド・フォーマット内の情報で構成されます。この種のレポートは、クロス集計レポートと呼ばれることもあります。

- 第26章「ネストしたマトリックス・レポートの作成」

ネストしたマトリックス・レポートにはクロス積が含まれており、このクロス積によって、3つのディメンション(YEAR、DEPTNOなどの縦方向のディメンション2つと、JOBなどの横方向のディメンション1つ)に対して可能なすべての値が表示されます。

- 第27章「グループ上マトリックス・レポートの作成」

グループ上マトリックス・レポートは、マトリックスのレイアウトとグループ上のレイアウトを組み合せたものです。このレポートでは、グループごとにブレーク・グループ(部門番号など)がレコードの先頭に横方向に表示され、そのグループの詳細(従業員情報など)がマトリックス・フォーマットで表示されます。

25 マトリックス・レポートの作成

この章では、マトリックス・レポートについて学習します。この章の手順に従うと、図25-1に示すレポート出力を生成できます。

図25-1 マトリックス・レポートの出力

概要

- マトリックス・レポートはグリッドのようなスタイルです。上のサンプル・レポートのように、マトリックス・レポートにはラベルの行と列が1つずつ、また行ラベルと列ラベルの両方に関連付けられたグリッド・フォーマット内の情報があります。

- この章のサンプル・マトリックスでは、基本マトリックスに3つの加算が追加されます。このサンプル・マトリックスでは、サマリーが計算され、セル内に存在しない値はゼロに置換され、セル自体がグリッド線で囲まれます。サマリーは、部門別の給与合計、職種別の給与合計およびレポート全体での給与合計です。

- マトリックス・レポートの作成には、特定の要件があります。

- データ・モデルには4つ以上のグループが必要です。

- 1つのグループはクロス積グループである必要があります。

- クロス積グループ内には2つ以上のグループが必要です。これらのグループは、マトリックス・レポートのラベルを提供します。

- 1つ以上のグループはセル・グループである必要があります。つまり、ラベルに関連した情報を提供する必要があります。このグループの値が、マトリックスで作成したセルに挿入されます。

- これらの要件は前述の例で確認できます。前述の例には4つのグループがあり、1つのグループは垂直ラベル(部門番号)、1つのグループは水平ラベル(職種名)を提供しています。この2つのグループが、クロス積グループと呼ばれる3番目のグループの子になり、グリッドが形成されています。4番目のグループはグリッドに挿入される値を提供しています。

- マトリックス・レポートは、列の数が事前にわからないので、表形式のレポートとは異なります。つまり、レポート内の列の数は、SELECT文で指定した列の数とユーザー自身が作成した列の数によっては決定されません。レポート内の列の数は、水平ラベルと垂直ラベルを提供する列に含まれた値の数によって変わります。このため、RECEPTIONISTという新しい職種が基本のデータ表に追加されると、レポートは自動的に拡大されます。

- これらのサンプル・マトリックス・レポートのデータの選択に使用された問合せは、マトリックスの問合せの例として定義されているわけではありません。たとえば、パフォーマンスに問題がある場合、マトリックス・レポートのパフォーマンスを改善できる別のデータの問合せ方法もあります。

- 任意の数の問合せを使用して、マトリックス・レポートを作成できます。第25.2項「単一問合せマトリックスの作成」では、1つの問合せを使用してマトリックス・レポートを作成する方法を説明します。第25.3項「複数問合せマトリックスの作成」では、同じレポートを、3つの問合せを使用して作成する方法を説明します。これらの2つの方法では同じ結果が得られます。これらの方法はオプションとして説明するので、両方試してみて、使いやすい方に決めてください。

- このレポートでは、マトリックス・レイアウト・スタイルを使用します。一部のデフォルト設定を変更して、列と行のラベルが正しく表示されるようにします。また、一部のフィールド幅を変更して、フィールドがそのページに収まるようにします。

- 概要に関する詳細は、第1.3.7項「マトリックス・レポートについて」を参照してください。

使用例

この例では、職種と部門ごとに給与をクロス集計するレポートを作成します。結果のマトリックスには、一番上に横方向の職種、左端に縦方向の部門が表示され、セル内には給与の合計が含まれます。これにより、部門20に属す事務員の給与合計がすぐにわかり、これを別の部門の事務員の給与合計と比較できます。

このサンプル・レポートの作成過程では、次を行います。

- 単一問合せマトリックスの作成

- 複数問合せマトリックスの作成

- 単一問合せマトリックスへの行および列サマリーの追加

- 金額の書式設定

- 空白のかわりにゼロを追加

- セルの周囲へのグリッド線を追加するためのグリッドの追加

マトリックス・レポートのサンプルを表示するには、サンプル・フォルダmatrixを開き、単一問合せマトリックス・レポート用には、Oracle Reportsのサンプルmatrix1qb.rdf、また、複数問合せマトリックス・レポート用には、サンプルmatrix3qb.rdfを開きます。これらのレポートのアクセス方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

25.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のSCOTTサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

25.2 単一問合せマトリックスの作成

データ・モデルに1つの問合せが含まれるマトリックス・レポートを作成できます。単一問合せデータ・モデルは一般に、複数問合せデータ・モデルよりもパフォーマンスが向上します。

この例のように、単一問合せレポートを作成する場合、レポート・ウィザードを使用して、データ・モデルとレイアウトを同時に作成できます。

データ・モデルとレイアウトを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページでレポートの「タイトル」を入力し、「マトリックス」を選択して「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT DEPTNO, JOB, SUM(SAL)
FROM EMP
GROUP BY DEPTNO, JOB
ORDER BY DEPTNO, JOB

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルmatrix1qb_code.txtからコードをコピーして、「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

8. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第25.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

9. 「行」ページで、「DEPTNO」をクリックし、「>」ボタンをクリックしてこのフィールドを「マトリックス行フィールド」リストに移動し、「次へ」をクリックします。

10. 「列」ページで、「JOB」をクリックし、「>」ボタンをクリックしてこのフィールドを「マトリックス列フィールド」リストに移動し、「次へ」をクリックします。

11. 「セル」ページで、「SUM_SAL」をクリックし、「>」ボタンをクリックしてこのフィールドを「マトリックス・セル・フィールド」リストに移動し、「次へ」をクリックします。

注意:

このケースでは、問合せ自体がSUMファンクションを使用してサマリーを実行します。そのため、ここでは「合計」ボタンは使用しません。

12. 「合計」ページで「次へ」をクリックします。

13. 「ラベル」ページで、すべてのフィールドのラベルを削除し、「次へ」をクリックします。

14. 「テンプレート」ページの「事前定義テンプレート」で「Beige」を選択し、「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次のようになります。

図25-2 マトリックス・レポートのペーパー・デザイン・ビュー

25.3 複数問合せマトリックスの作成

データ・モデルに複数の問合せが含まれるマトリックス・レポートを作成できます。複数問合せデータ・モデルは通常、単一問合せの場合よりも概念化やコードの作成が容易ですが、単一問合せデータ・モデルの方が一般にパフォーマンスが優れています。

25.3.1 手動での新規レポートの作成

この場合、データ・モデルとレイアウトを別々に作成した方が簡単です。したがって、まず空のレポートを作成してから、問合せを追加し、レイアウトを作成します。

空のレポートを作成するには:

1. 「ファイル」→「新規」→「レポート」を選択します。

2. 「新規レポートを手動で作成」を選択し、「OK」をクリックします。

25.3.2 クロス積とデータ・リンクを含むデータ・モデルの作成

複数の問合せを使用するレポートを作成する場合、最初にすべての問合せをデータ・ウィザードで作成して、次にレポート・ウィザードを使用してレイアウトを作成する方が簡単です。

問合せを作成するには:

1. データ・モデル・ビューで、「挿入」→「問合せ」を選択してデータ・ウィザードを表示します。

2. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

3. 「問合せ」ページで、「問合せ名」にQ_Deptと入力し、「次へ」をクリックします。

4. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

5. 「データ」ページで、次のSELECT文を入力します。

SELECT DISTINCT DEPTNO
FROM EMP

ヒント:

「クエリー・ビルダー」をクリックすれば、コードを手動で入力しなくても、問合せを作成できます。

6. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第25.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

7. 「グループ」ページで「次へ」をクリックします。

8. 「終了」をクリックして、データ・モデル・ビューに最初の問合せを表示します。

9. 前述の手順を2番目の問合せにも繰り返しますが、この場合、問合せ名はQ_Jobとし、次のSELECT文を使用します。

SELECT DISTINCT JOB
FROM EMP

10. また、3番目の問合せにも前述の手順を繰り返しますが、この場合、問合せ名はQ_Matrixとし、次のSELECT文を使用します。

SELECT DEPTNO, JOB, SUM(SAL)
FROM EMP
GROUP BY DEPTNO, JOB
ORDER BY DEPTNO, JOB

図25-3 関連付けられていない3つの問合せのデータ・モデル

クロス積グループを作成するには:

1. データ・モデル・ビューで、ツール・パレットの「クロス積」ツールをクリックします。

2. G_DEPTNOとG_JOBの周囲にボックスをドラッグします。マウス・ボタンを放すと、クロス積グループが作成されます。両方のグループが完全に囲まれていることを確認してください。

図25-4 クロス積グループがある3つの問合せのデータ・モデル

データ・リンクを追加するには:

1. データ・モデル・ビューで、ツール・パレットの「データ・リンク」ツールをクリックします。

2. G_DEPTNOグループの「DEPTNO」 列をクリックし、G_DEPTNO1グループの「DEPTNO1」列までドラッグします。

3. 手順1と2を繰り返しますが、今度はG_JOBの「JOB」列とG_DEPTNO1の「JOB1」列の間でリンクをドラッグします。

図25-5 クロス積グループとデータ・リンクがある3つの問合せのデータ・モデル

25.3.3 レポート・ウィザードによるレイアウトの作成

データ・モデルが完成したら、レポート出力で表示するデータ・オブジェクトのレイアウトを作成する必要があります。

レイアウトを作成するには:

1. データ・モデル・ビューで、キャンバスを右クリックして「レポート・ウィザード」を選択します。

2. レポート・ウィザードの「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択します。

3. 「スタイル」ページで、「マトリックス」を選択します。

4. 「グループ」ページで、データ・モデルのグループがすべて「表示グループ」リストに表示されていることを確認します。G_1は「マトリックス」、G_DEPTNOは「縦」、G_JOBは「横」、G_DEPTNO1は「縦」になります。

図25-6 レポート・ウィザードの「グループ」ページ

5. 「フィールド」ページで、「表示フィールド」リストに次の列のみが表示されていることを確認します。

- DEPTNO

- JOB

- SUM_SAL

図25-7 レポート・ウィザードの「フィールド」ページ

6. 「ラベル」ページで、すべてのフィールドのラベルを削除します。

7. 「テンプレート」ページの「事前定義テンプレート」で「Beige」を選択し、「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次のようになります。

図25-8 マトリックス・レポートのペーパー・デザイン・ビュー

25.4 単一問合せマトリックスへのサマリーの追加

マトリックス・レポートをより実用的にするには、マトリックス内とレポート全体に各行および各列のサマリーを追加する必要があります。単一問合せの場合、レポート・ウィザードを使用すれば、このようなサマリーを簡単に追加できます。複数問合せの場合は、手動でサマリーを追加した後、レポート・ウィザードを使用してサマリーのフィールドを作成する必要があります。

次の手順では、単一問合せマトリックスにサマリーを追加する方法を説明します。

単一問合せマトリックスにサマリーを追加するには:

1. 「ツール」→「レポート・ウィザード」を選択してレポート・ウィザードに戻ります。

注意:

レポート・ウィザードを使用したサマリーの追加は、単一問合せマトリックスに対しては実行できますが、複数問合せマトリックスに対してはこの方法は使用できません。

2. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択します。

3. 「合計」ページで、「使用可能フィールド」リストの「SUM_SAL」をクリックし、「合計」をクリックします。

ヒント:

「合計」タブが表示されていない場合は、タブ右上の矢印を使用する必要があります。

4. 「終了」をクリックして、ペーパー・デザイン・ビューでレポート出力をプレビューします。

注意:

新しいレイアウトを作成するときに、いくつかの点に注意する必要があります。まず、マトリックスの列の値のサマリーは、各列の一番下に表示されます。そのため、レポートが1ページより長くなることもあります。また、レイアウトの幅が決まっているため、部門のサマリーが残りのマトリックスのページに収まらないことがあります。この場合、部門サマリーとレポート・サマリーは次のページへオーバーフローします。レポートの2ページ目に進むと、部門サマリーとレポート・サマリーが表示されています。

25.5 金額の書式設定

レポートを読みやすくするために、金額の書式を設定できます。

金額の書式を設定するには:

1. レポートの最初のページで、セルの値のいずれかをクリックします。すべての値が選択されるので、それらのプロパティを同時に変更できます。

2. [Shift]を押しながらマトリックス列の一番下にあるサマリー値の1つをクリックします。

3. ツールバーの「通貨」ボタンをクリックします。すべての値の横に通貨記号が表示されます。

4. ツールバーの「10進桁を追加」ボタンを2回クリックします。小数点の右側に小数点以下2桁が追加されます。

5. フィールドのサイズを変更します。「SALESMAN」ラベルの下でセルの値の一番右側にあるハンドルをクリックし、そのまま左へ約0.5インチ(1.5センチメートル)ドラッグします。この操作を完了すると、部門サマリーが2ページ目から1ページ目へ移動します。

6. [Shift]を押しながら「SALESMAN」ラベルをクリックします。

7. ツールバーの「右に整列」ボタンをクリックします。

8. ペーパー・デザイン・ビューの空き領域をクリックして、すべてのオブジェクトの選択を解除します。

9. マトリックスの行の最後にある部門サマリーの1つをクリックします。すべての部門サマリーが選択されます。

10. [Shift]を押しながら部門サマリーの下にあるレポート・サマリーをクリックします。

11. [←]キーを使用して、これらのサマリーを左へ移動し、マトリックスの「SALESMAN」列とほぼ整列するようにします。

12. ツールバーの「通貨」ボタンをクリックします。すべての値の横に通貨記号が表示されます。

13. ツールバーの「10進桁を追加」ボタンを2回クリックします。小数点の右側に小数点以下2桁が追加されます。

14. フィールドのサイズを変更します。選択したフィールドの1つの一番右側にあるハンドルをクリックし、そのまま左へ約0.5インチ(1.5センチメートル)ドラッグします。

15. ツールバーの「右に整列」ボタンをクリックします。

図25-9 金額が書式設定されたマトリックス・レポートのペーパー・デザイン・ビュー

25.6 空白のかわりにゼロを追加

マトリックス・レポートでは、データの並置が表示されます。つまり、値が2つの異なるデータのカテゴリによって共有されます。これらのカテゴリは行と列のラベルで示されます。

マトリックスでは、この値の並置がグリッド状のフォーマットを使用して表示されます。2つのカテゴリに共通するものがない場合、そのグリッドは空になります。これにより、マトリックスに穴があくことがあります。ボイラープレート・テキストを使用して、この穴に値を挿入できます。

注意:

グリッドの空き領域をNULL値と混同しないでください。NULL値はデータベースからフェッチされた実際の値です。マトリックス・レポートの領域が空になるのは、そこへ挿入する値がフェッチされなかったためです。

空白をゼロに置き換えるには:

1. サマリーを追加したマトリックス・レポートを開きます。

2. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードの横のビュー・アイコンをダブルクリックして、ペーパー・レイアウト・ビューを表示します。

ヒント:

次の手順では、オブジェクトを正確に配置する必要があります。このため、ビューを拡大して、操作しやすいようにします。「拡大」ツールをクリックし、ペーパー・レイアウト・ビューの任意の場所をクリックします。必要に応じて何度か繰り返します。

3. ペーパー・レイアウト・ビューで、ツールバーの「制限オン」ボタンおよび「フレックス・オン」ボタンをクリックして、両モードをオンにします。

4. ツールバーのフォント・リストから、Arial(欧文)、ポイント・サイズ「10」を選択します。

5. ツールバーの「右に整列」ボタンをクリックします。

6. ツール・パレットの「テキスト」ツールをクリックします。

7. 「F_SUM_SAL」フィールドの上で、そのフィールドの右端から約0.75インチ(2センチメートル)のところをクリックします。ここでは、F_SUM_SALの右上にオブジェクトを作成します。

8. 次のように入力します(日本語環境では$ではなく\を指定してもよいでしょう)。

$0.00

9. レイアウトの空白領域をクリックし、すべてのオブジェクトを選択解除します。

10. オブジェクト・ナビゲータで、「検索」フィールドにB_1と入力します。作成したオブジェクトが表示されます。オブジェクト・ナビゲータを所有者別表示(「表示」→「表示を変更」→「所有者別表示」)で表示している場合は、R_G_SUM_SALの下にB_1とF_SUM_SALが同じレベルで表示されます。

ヒント:

R_G_SUM_SALの下にB_1が表示されない場合は、ペーパー・レイアウト・ビューに戻って、B_1を削除し、もう一度試してください。

図25-10 新しいオブジェクトが選択されたオブジェクト・ナビゲータ

11. 「R_G_SUM_SAL」をクリックし、[Ctrl]を押しながら「F_SUM_SAL」をクリックして両方を選択し、「B_1」の選択を解除します。

図25-11 繰返し枠とフィールドが選択されたオブジェクト・ナビゲータ

12. レポート・エディタのタイトル・バーをクリックして、アクティブなウィンドウにします。

13. ツールバーの「制限オフ」ボタンをクリックして、制限モードをオフにします。

14. 「レイアウト」→「前面へ」を選択します。

ヒント:

この操作が終わると、B_1は、R_G_SUM_SALの子ではなく、R_G_SUM_SALのすぐ上に同列に表示されます。B_1がまだR_G_SUM_SALの下に子として表示されている場合は、R_G_SUM_SALの子として表示されなくなるまで、手順11から14を繰り返します。

15. ペーパー・レイアウト・ビューで、ツールバーの「制限オン」ボタンをクリックして、制限モードをオンに戻します。

16. ツールバーの「ペーパー・デザイン」ボタンをクリックし、ペーパー・デザイン・ビューを表示します。

ヒント:

$0.00がその周りにある他の金額と整列していない場合は、それを選択し、矢印キーを使用して適切な位置へ移動します。

図25-12 空白がゼロに置き換えられたマトリックス・レポートの出力

25.7 グリッドの追加

マトリックス・レポートは、各セル間をグリッド線で区切る方が見やすい場合があります。ほとんどのオブジェクトでは、「枠なし」がデフォルト設定です。グリッド線を追加するには、該当するオブジェクトを選択し、それに線カラーを指定します。

グリッド線を追加するには:

1. 空白のかわりにゼロが表示されるように変更したマトリックス・レポートを開きます。

2. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードの横のビュー・アイコンをダブルクリックして、ペーパー・レイアウト・ビューを表示します。

3. オブジェクト・ナビゲータで、「表示」→「表示を変更」→「オブジェクト・タイプ・ビュー」を選択します。

4. オブジェクト・ナビゲータの「ペーパー・レイアウト」ノードの下で、[Ctrl]を押しながらクリックして次のオブジェクトをすべて選択します。

- F_SUMSUM_SALPERDEPTNO

- F_SUMSUM_SALPERJOB

- F_SUMSUM_SALPERREPORT

- F_SUM_SAL

- B_1

5. ペーパー・レイアウト・ビューのタイトル・バーをクリックして、アクティブなウィンドウにします。

6. ペーパー・レイアウト・ビューで、ツール・パレットの「線カラー」ツールをクリックし、黒をクリックします。

7. ツールバーの「ペーパー・デザイン」ボタンをクリックし、ペーパー・デザイン・ビューを表示します。マトリックス内の全セルの周囲にグリッドが表示されます。

図25-13 グリッドを使用したマトリックス・レポートの出力

8. レポートをmatrix1qb_your_initials.rdfという名前で保存します。

25.8 サマリー

おめでとうございます。マトリックス・レポートは正常に作成されました。この章で学習した内容は次のとおりです。

- 単一問合せデータ・モデルを使用してマトリックス・レポートを作成する。

- 複数問合せデータ・モデルを使用してマトリックス・レポートを作成する。

- サマリーを追加して金額の書式を設定する。

- マトリックス・レイアウトで空白にゼロを挿入する。

- グリッドを追加する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

26 ネストしたマトリックス・レポートの作成

この章では、ネストしたマトリックス・レポートについて学習します。この章の手順に従うと、図26-1に示すレポート出力を生成できます。

図26-1 ネストしたマトリックス・レポートの出力

概要

- 単純なマトリックスには通常の2つのディメンション(縦と横)がありますが、ネストしたマトリックス・レポートは、3つ以上のディメンションを持つマトリックス・レポートです。

- 任意の数の問合せを使用して、ネストしたマトリックス・レポートを作成できます。第26.2項「単一問合せマトリックスの作成」では、1つの問合せを使用してネストしたマトリックス・レポートのサンプルを作成します。第26.3項「複数問合せマトリックスの作成」では、複数の問合せを使用します。第26.4項「ブレークを含む複数問合せマトリックスの作成」では、1つのディメンションの中に別のディメンションをネストするグループ階層を使用するだけではなく、明示的に新しいグループを作成し、それをクロス積の中で別のグループの上に配置して、関連するグループ間に直接、親子関係も作成します。この場合、表示されるレコードは、データが存在するレコードにのみ制限されます。

注意:

- ネストしたマトリックス・レポートで、子マトリックス問合せのあるマトリックス問合せを作成した場合、結合するフィールドはマスター・マトリックスの別のグループに分ける必要があります。それ以外の場合は、プラットフォームによっては最初のグループのみ印刷されます。

- これらのサンプル・マトリックス・レポートのデータの選択に使用された問合せは、マトリックスの問合せの最適な例というわけではありません。たとえば、パフォーマンスに問題がある場合、マトリックス・レポートのパフォーマンスを改善できる別のデータの問合せ方法もあります。詳細は、Oracle Reportsオンライン・ヘルプを参照してください。

- このサンプル・レポートでは、クロス積に3つの列を含めて作成した3つのディメンションのマトリックスを使用します。クロス積では、3つのディメンション(YEAR、DEPTNOという縦方向のディメンションとJOBという横方向のディメンション)に対して可能なすべての値が表示されます。この方法では、データ・モデルにおけるクロス積グループの中にブレーク・グループがあるため、NULL値を持つ行は除外されます。前述で説明したとおり、この章では、クロス積グループの中にブレーク・グループがある場合とない場合のネストしたマトリックスの作成方法について説明し、その出力の違いを確認します。

- 2つの縦のディメンション(YEARとDEPTNO)が表示される順序は、それに対応するグループをクロス積の中で配置する順序に基づきます。つまり、この場合、YEARとDEPTNOではDEPTNOの左側にYEARを配置します。これによって、DEPTNOがYEARの中にネストされ、ある年度に関するデータが部門の中にあるかどうかには関係なく、DEPTNOのすべてのレコードがYEARの各値に表示されます。

- 概要に関する詳細は、第2.1.7項「ネストしたマトリックス・レポートについて」を参照してください。

使用例

この例では、年度と部門ごと、および職種ごとに給与をクロス集計するレポートを作成します。結果のマトリックスには、一番上に横方向の職種、左端に縦方向の年度と部門が表示され、セル内には給与の合計が含まれます。これにより、部門20に属す事務員の給与合計がすぐにわかり、これを別の部門の事務員の給与合計と比較できます。

このサンプル・レポートの作成過程では、次を行います。

- 単一問合せマトリックスの作成

- 複数問合せマトリックスの作成

- クロス積グループ内へのブレークを含む複数問合せマトリックスの作成

- 金額の書式設定

ネストしたマトリックス・レポートのサンプルを表示するには、サンプル・フォルダnestedmatrixを開き、Oracle Reportsのサンプルnested1.rdf、nested2.rdfまたはnested3.rdfのいずれかを開きます。これらのファイルへのアクセス方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

26.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のSCOTTサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

26.2 単一問合せマトリックスの作成

データ・モデルに1つの問合せが含まれるマトリックス・レポートを作成できます。単一問合せデータ・モデルは一般に、複数問合せデータ・モデルよりもパフォーマンスが向上します。

この例のように、単一問合せレポートを作成する場合、レポート・ウィザードを使用して、データ・モデルとレイアウトを同時に作成できます。

データ・モデルとレイアウトを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページでレポートの「タイトル」を入力し、「マトリックス」を選択して「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT TO_CHAR (HIREDATE, 'YY') YEAR, DEPTNO, JOB,
SUM (SAL) FROM EMP
GROUP BY TO_CHAR(HIREDATE, 'YY'), DEPTNO, JOB
ORDER BY TO_CHAR(HIREDATE, 'YY'), DEPTNO, JOB

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルnested1_code.txtからコードをコピーして、「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第26.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

8. 「行」ページで次の操作を行います。

- 「使用可能フィールド」リストの「YEAR」をクリックし、「>」ボタンをクリックしてこのフィールドを「マトリックス行フィールド」リストに移動します。「YEAR」が「レベル 1」の下に表示されます。

図26-2 レポート・ウィザードの最初のマトリックス行

- 「マトリックス行フィールド」リストで「レベル 1」をクリックします。この手順によって、次の列が「レベル1」ではなく、確実に「レベル2」に追加されます。

- 「使用可能フィールド」リストの「DEPTNO」をクリックし、「>」ボタンをクリックしてこのフィールドを「マトリックス行フィールド」リストに移動します。列が「レベル1」ではなく、「レベル2」の下に追加されます。

図26-3 レポート・ウィザードの2番目のマトリックス行

- 「次へ」をクリックします。

9. 「列」ページで、「JOB」をクリックし、「>」ボタンをクリックしてこのフィールドを「マトリックス列フィールド」リストに移動します。「JOB」が「レベル 1」の下に表示されたら、「次へ」をクリックします。

10. 「セル」ページで、「SUM_SAL」をクリックし、「>」ボタンをクリックしてこのフィールドを「マトリックス・セル・フィールド」リストに移動し、「次へ」をクリックします。

11. 「合計」ページで「次へ」をクリックします。

12. 「ラベル」ページで、ラベルとフィールド幅を次のように変更し、「次へ」をクリックします。

フィールド

ラベル

幅

YEAR

(変更なし)

4

DEPTNO

(変更なし)

(変更なし)

JOB

(変更なし)

10

SUM_SAL

<なし>

10

13. 「テンプレート」ページの「事前定義テンプレート」で「Beige」を選択し、「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次のようになります。

図26-4 ネストしたマトリックス・レポートのペーパー・デザイン・ビュー

注意:

位置合せと金額の書式設定をペーパー・デザイン・ビューで直接設定できます。項目をクリックし、該当するツールバー・ボタンをクリックします(カーソルをこれらのボタンの上に移動すると、ヒント・テキストが表示されます)。ペーパー・デザイン・ビューとオブジェクト・ナビゲータが並んで表示されている場合、どちらかで項目を選択すると、その選択がもう一方にも反映されます。

26.3 複数問合せマトリックスの作成

データ・モデルに複数の問合せが含まれるマトリックス・レポートを作成できます。複数問合せデータ・モデルは通常、単一問合せの場合よりも概念化やコードの作成が容易ですが、単一問合せデータ・モデルの方が一般にパフォーマンスが優れています。

26.3.1 手動での新規レポートの作成

この場合、データ・モデルとレイアウトを別々に作成した方が簡単です。したがって、まず空のレポートを作成してから、問合せを追加し、レイアウトを作成します。

空のレポートを作成するには:

1. 「ファイル」→「新規」→「レポート」を選択します。

2. 「新規レポートを手動で作成」を選択し、「OK」をクリックします。

26.3.2 クロス積とデータ・リンクを含むデータ・モデルの作成

複数の問合せを使用するマトリックス・レポートを作成する場合、最初にすべての問合せをデータ・ウィザードで作成して、次にデータ・モデル・ビューでクロス積グループと必要なリンクを作成する方が簡単です。

問合せを作成するには:

1. データ・モデル・ビューで、「挿入」→「問合せ」を選択してデータ・ウィザードを表示します。

2. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

3. 「問合せ」ページで、「問合せ名」にQ_Yearと入力し、「次へ」をクリックします。

4. 「データ・ソース」ページで、「SQL問合せ」を選択し、「次へ」をクリックします。

5. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT DISTINCT TO_CHAR (HIREDATE, 'YY') YEAR
FROM EMP

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルnested3_code.txtからコードをコピーして、「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

6. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第26.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

7. 「グループ」ページで「次へ」をクリックします。

8. 「終了」をクリックして、レポートのデータ・モデルをデータ・モデル・ビューに表示します。

9. 前述の手順を2番目の問合せにも繰り返しますが、この場合、問合せ名はQ_Deptとし、次のSELECT文を使用します。

SELECT DISTINCT DEPTNO
FROM EMP

注意:

これらの問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルnested3_code.txtからコードをコピーして、「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

10. また、3番目の問合せにも前述の手順を繰り返しますが、この場合、問合せ名はQ_Jobとし、次のSELECT文を使用します。

SELECT DISTINCT JOB
FROM EMP

11. さらに、4番目の問合せにも前述の手順を繰り返し、問合せ名をQ_Salaryとして、次のSELECT 文を使用します。

SELECT TO_CHAR(HIREDATE, 'YY') YEAR,  DEPTNO,  JOB,
SUM(SAL) FROM EMP
GROUP BY TO_CHAR(HIREDATE, 'YY'),  DEPTNO,  JOB
ORDER BY TO_CHAR(HIREDATE, 'YY'),  DEPTNO,  JOB

図26-5 4つの問合せを持つデータ・モデル

ヒント:

ここでは、問合せの順序が重要です。出力時にDEPTNOの値がYEARの値の中にネストされるようにするには、Q_DeptがQ_Yearの右または下に表示される必要があります。

クロス積グループを作成するには:

1. データ・モデル・ビューで、ツール・パレットの「クロス積」ツールをクリックします。

2. G_YEAR、G_DEPTNOおよびG_JOBの周囲にボックスをドラッグします。マウス・ボタンを放すと、クロス積グループが作成されます。3つのグループが完全に囲まれていることを確認してください。

図26-6 4つの問合せとクロス積グループを持つデータ・モデル

データ・リンクを追加するには:

1. データ・モデル・ビューで、ツール・パレットの「データ・リンク」ツールをクリックします。

2. G_YEARグループの「YEAR」列をクリックし、G_YEAR1グループの「YEAR1」列までドラッグします。

3. 手順1と2を繰り返しますが、今度はG_DEPTNOの「DEPTNO」列とG_YEAR1の「DEPTNO1」列の間でリンクをドラッグします。

4. さらに手順1と2を繰り返しますが、今度はG_JOBの「JOB」列とG_YEAR1の「JOB1」列の間でリンクをドラッグします。

図26-7 ネストしたマトリックスのデータ・モデル

5. データ・モデル・オブジェクトを移動して、上の図のようにすると、見やすくなります。

26.3.3 レポート・ウィザードによるレイアウトの作成

データ・モデルが完成したら、レポート出力で表示するデータ・オブジェクトのレイアウトを作成する必要があります。

レイアウトを作成するには:

1. データ・モデル・ビューで、キャンバスを右クリックして「レポート・ウィザード」を選択します。

2. レポート・ウィザードの「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択します。

3. 「スタイル」ページで、「マトリックス」を選択します。

4. 「グループ」ページで、データ・モデルのグループがすべて「表示グループ」リストに表示されていることを確認します。G_1は「マトリックス」、G_YEARおよびG_DEPTNOは「縦」、G_JOBは「横」、G_YEAR1は「縦」になります。

図26-8 レポート・ウィザードの「グループ」ページ

5. 「フィールド」ページで、「表示フィールド」リストに次の列のみが表示されていることを確認します。

- YEAR

- DEPTNO

- JOB

- SUM_SAL

図26-9 レポート・ウィザードの「フィールド」ページ

6. 「ラベル」ページで、ラベルとフィールド幅を次のように変更します。

フィールド

ラベル

幅

SUM_SAL

<なし>

10

YEAR

<なし>

4

JOB

<なし>

10

7. 「テンプレート」ページの「事前定義テンプレート」で「Beige」を選択し、「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次のようになります。

図26-10 ネストしたマトリックス出力のペーパー・デザイン・ビュー

26.4 ブレークを含む複数問合せマトリックスの作成

図26-4「ネストしたマトリックス・レポートのペーパー・デザイン・ビュー」の単一問合せのネストしたマトリックス出力と、図26-10「ネストしたマトリックス出力のペーパー・デザイン・ビュー」の複数問合せの出力を比較すると、複数問合せの場合にはどの年度にもすべての部門が表示されるのに対し、単一問合せの場合はそうではないことがわかります。単一問合せの場合、マトリックス・セルに実際に値がある部門のみが出力に表示されます。複数問合せで同様の結果を得るには、YEARとDEPTNOを含むグループの間に親子関係を設定する必要があります。

26.4.1 手動での新規レポートの作成

この場合、データ・モデルとレイアウトを別々に作成した方が簡単です。したがって、まず空のレポートを作成してから、問合せを追加し、レイアウトを作成します。

空のレポートを作成するには:

1. 「ファイル」→「新規」→「レポート」を選択します。

2. 「新規レポートを手動で作成」を選択し、「OK」をクリックします。

26.4.2 クロス積とデータ・リンクを含むデータ・モデルの作成

複数の問合せを使用するマトリックス・レポートを作成する場合、最初にすべての問合せをデータ・ウィザードで作成して、次にデータ・モデル・ビューでクロス積グループと必要なリンクを作成する方が簡単です。

問合せを作成するには:

1. データ・モデル・ビューで、「挿入」→「問合せ」を選択してデータ・ウィザードを表示します。

2. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

3. 「問合せ」ページで、「問合せ名」にQ_Deptと入力し、「次へ」をクリックします。

4. 「データ・ソース」ページで、「SQL問合せ」を選択し、「次へ」をクリックします。

5. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT TO_CHAR(HIREDATE, 'YY') YEAR, DEPTNO
FROM EMP
GROUP BY TO_CHAR(HIREDATE, 'YY'), DEPTNO
ORDER BY TO_CHAR(HIREDATE, 'YY'), DEPTNO

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルnested2_code.txtからコードをコピーして、「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

6. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第26.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

7. 「グループ」ページで、「使用可能フィールド」リストの「YEAR」をクリックし、「>」ボタンをクリックして、このフィールドを「グループ・フィールド」リストに移動し、「次へ」をクリックします。

8. 「合計」ページで「次へ」をクリックします。

9. 「終了」をクリックして、レポート出力のデータ・モデルをデータ・モデル・ビューに表示します。

10. 「挿入」→「問合せ」を選択し、前述の手順に従って、Q_Jobという名前の別の問合せを作成します。その際、次のSELECT文を使用します。

SELECT DISTINCT JOB
FROM EMP

11. さらに、「挿入」→「問合せ」を選択し、前述の手順に従って、Q_Salaryという名前の3番目の問合せを作成します。その際、次のSELECT文を使用します。

SELECT TO_CHAR(HIREDATE, 'YY') YEAR,  DEPTNO,  JOB,
SUM(SAL) FROM EMP
GROUP BY TO_CHAR(HIREDATE, 'YY'),  DEPTNO,  JOB
ORDER BY TO_CHAR(HIREDATE, 'YY'),  DEPTNO,  JOB

図26-11 3つの問合せを持つデータ・モデル

クロス積グループを作成するには:

1. データ・モデル・ビューで、ツール・パレットの「クロス積」ツールをクリックします。

2. G_YEAR、G_DEPTNOおよびG_JOBの周囲にボックスをドラッグします。マウス・ボタンを放すと、クロス積グループが作成されます。3つのグループが完全に囲まれていることを確認してください。

図26-12 3つの問合せとクロス積グループを持つデータ・モデル

データ・リンクを追加するには:

1. データ・モデル・ビューで、ツール・パレットの「データ・リンク」ツールをクリックします。

2. G_YEARグループの「YEAR」列をクリックし、G_YEAR1グループの「YEAR1」列までドラッグします。

3. 手順1と2を繰り返しますが、今度はG_DEPTNOの「DEPTNO」列とG_YEAR1の「DEPTNO1」列の間でリンクをドラッグします。

4. さらに手順1と2を繰り返しますが、今度はG_JOBの「JOB」列とG_YEAR1の「JOB1」列の間でリンクをドラッグします。

図26-13 ネストしたマトリックスのデータ・モデル

5. データ・モデル・オブジェクトを移動して、上の図のようにすると、見やすくなります。

26.4.3 レポート・ウィザードによるレイアウトの作成

データ・モデルが完成したら、レポート出力で表示するデータ・オブジェクトのレイアウトを作成する必要があります。

レイアウトを作成するには:

1. データ・モデル・ビューで、キャンバスを右クリックして「レポート・ウィザード」を選択します。

2. レポート・ウィザードの「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択します。

3. 「スタイル」ページで、「マトリックス」を選択します。

4. 「グループ」ページで、データ・モデルのグループがすべて「表示グループ」リストに表示されていることを確認します。G_1は「マトリックス」、G_YEARおよびG_DEPTNOは「縦」、G_JOBは「横」、G_YEAR1は「縦」になります。

図26-14 レポート・ウィザードの「グループ」ページ

5. 「フィールド」ページで、「表示フィールド」リストに次の列のみが表示されていることを確認します。

- YEAR

- DEPTNO

- JOB

- SUM_SAL

図26-15 レポート・ウィザードの「フィールド」ページ

6. 「ラベル」ページで、ラベルとフィールド幅を次のように変更します。

フィールド

ラベル

幅

SUM_SAL

<なし>

10

YEAR

<なし>

4

JOB

<なし>

10

7. 「テンプレート」ページの「事前定義テンプレート」で「Beige」を選択し、「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次のようになります。

図26-16 ネストしたマトリックス・レポートの最終出力のペーパー・デザイン・ビュー

26.5 金額の書式設定

マトリックス・レポートをさらに読みやすくするには、金額の書式を設定する必要があります。

金額の書式を設定するには:

1. レポートの最初のページで、セルの値のいずれかをクリックします。すべての値が選択されるので、それらのプロパティを同時に変更できます。

2. ツールバーの「通貨」ボタンをクリックします。すべての値の横に通貨記号が表示されます。

3. ツールバーの「10進桁を追加」ボタンを2回クリックします。小数点の右側に小数点以下2桁が追加されます。

4. フィールドのサイズを変更します。「SALESMAN」ラベルの下でセルの値の一番右側にあるハンドルをクリックし、そのまま左へ約0.5インチ(1.5センチメートル)ドラッグします。この操作を完了すると、部門サマリーが2ページ目から1ページ目へ移動します。

5. [Shift]を押しながら「SALESMAN」ラベルをクリックします。

6. ツールバーの「右に整列」ボタンをクリックします。

7. ペーパー・デザイン・ビューの空き領域をクリックして、すべてのオブジェクトの選択を解除します。

図26-17 書式設定された金額を含む、ネストしたマトリックス・レポートの出力

8. レポートをnested3_your_initials.rdfという名前で保存します。

26.6 サマリー

おめでとうございます。3つのネストしたマトリックス・レポートが正常に作成されました。この章で学習した内容は次のとおりです。

- 単一問合せデータ・モデルを使用して、ネストしたマトリックス・レポートを作成する。

- 複数問合せデータ・モデルを使用して、ネストしたマトリックス・レポートを作成する。

- 複数の問合せとクロス積グループ内のブレークを使用して、ネストしたマトリックス・レポートを作成する。

- 金額の書式を設定する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

27 グループ上マトリックス・レポートの作成

この章では、グループ上マトリックス・レポートについて学習します。この章の手順に従うと、図27-1に示すレポート出力を生成できます。

図27-1 グループ上マトリックス・レポートの出力

概要

- グループ上マトリックス・レポートは、マトリックス・レポートとグループ上レポートのレイアウトを組み合せたものです。基本的に、マトリックス・レポートは、マスター・グループ・レコードごとに出力されます。クロス積の上に親が存在することを除けば、グループ別マトリックスは、複数問合せのネストしたマトリックスに類似しています。複数問合せのネストしたグループ別マトリックス・レポートの場合は、クロス積の横または縦のディメンションの中に親子関係が存在します。

- 概要に関する詳細は、第2.1.8項「グループ別マトリックス・レポートについて」を参照してください。

データ・リレーションシップ

このグループ上マトリックス・レポートの例では、1つの問合せと5つ以上のグループを使用します。1つ以上のグループをクロス積の上に配置し、マスター・グループとします。

レイアウト

このレポートでは、グループ別マトリックスのレイアウト・スタイルを使用します。

使用例

この例では、各年度の給与を部門と職種ごとにクロス集計するレポートを作成します。結果のグループ・レポートは、年度がマスターとなり、ディテールのマトリックスには職種が上の横方向、部門が左端の縦方向に表示され、セル内には給与の合計が含まれます。これにより、ある年度の部門20における事務員の全給与の合計がすぐにわかります。

このサンプル・レポートの作成過程では、次を行います。

- 単一問合せレポート用のマトリックス・グループのデータ・モデルとレイアウトの作成

- サマリーのラベルと線の追加

- グループ間への空白の追加

- ペーパー・レイアウトの変更を伴わないWebレイアウトの作成

グループ上マトリックス・レポートのサンプルを表示するには、サンプル・フォルダmatrixgroupを開き、Oracle Reportsのサンプルmatrixgroup.rdfを開きます。アクセス方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

27.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のSCOTTサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

27.2 マトリックス・グループのデータ・モデルとレイアウトの作成

このレポートは単一問合せレポートであるため、レポート・ウィザードで簡単に作成できます。

レポート・ウィザードでデータ・モデルとレイアウトを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページでレポートの「タイトル」を入力し、「グループ別マトリックス」を選択して「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT TO_CHAR(HIREDATE, 'YY') YEAR, DEPTNO, JOB, SUM(SAL)
FROM EMP
GROUP BY TO_CHAR(HIREDATE, 'YY'), DEPTNO, JOB

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルmatrixgroup_code.txtからコードをコピーして、「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

8. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第27.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

9. 「グループ」ページで、「使用可能フィールド」リストの「YEAR」をクリックし、「>」ボタンをクリックして、このフィールドを「マトリックス・グループ・フィールド」リストに移動し、「次へ」をクリックします。

10. 「行」ページで、「使用可能フィールド」リストの「DEPTNO」をクリックし、「>」ボタンをクリックして、このフィールドを「マトリックス行フィールド」リストに移動し、「次へ」をクリックします。

11. 「列」ページで、「使用可能フィールド」リストの「JOB」をクリックし、「>」ボタンをクリックして、このフィールドを「マトリックス列フィールド」リストに移動し、「次へ」をクリックします。

12. 「セル」ページで、「使用可能フィールド」リストの「SUM_SAL」をクリックし、「>」ボタンをクリックして、このフィールドを「マトリックス・セル・フィールド」リストに移動し、「次へ」をクリックします。

注意:

このケースでは、問合せ自体がSUMファンクションを使用してサマリーを実行します。そのため、ここでは「合計」ボタンは使用しません。

13. 「合計」ページで、「使用可能フィールド」リストの「SUM_SAL」をクリックし、「合計」をクリックして、このフィールドを「マトリックス合計」リストに移動し、「次へ」をクリックします。

14. 「ラベル」ページで、SUM_SALのラベルを削除し、「次へ」をクリックします。

15. 「テンプレート」ページで、「テンプレートなし」を選択し、「終了」をクリックしてペーパー・デザイン・ビューでレポート出力をプレビューします。次の例のようになります。

図27-2 グループ上マトリックス・レポートのペーパー・デザイン・ビュー

16. レポートをmatrixgroup_your_initials.rdfという名前で保存します。

27.3 サマリーのラベルと線の追加

レポートをさらに読みやすくするには、行と列のサマリーにラベルを追加します。また、列サマリーの上に線があると、セルの値と区別しやすくなります。

ラベルを追加するには:

1. ペーパー・デザイン・ビューで、ツール・パレットの「テキスト」ツールをクリックします。

2. 最初の部門番号の真下から最初の合計の左側までの空いている領域をクリックします。

3. Job Tot.:と入力し、ペーパー・デザイン・ビューの空き領域をクリックします。この手順を正しく実行すると、レポート内のすべての行サマリーにラベルが表示されます。

4. 必要に応じて、矢印キーを使用して、ラベルとサマリーの位置を調整します。

ヒント:

より厳密に移動する必要がある場合は、「表示」メニューの「グリッド指定」をオフにします。また、ツールバーの「フレックス・オフ」ボタンをクリックして、フレックス・モードをオフにすると、便利です。

5. ツール・パレットの「テキスト」ツールをクリックします。

6. 行サマリーの真上の空いている領域をクリックします。

7. Dept. Tot.と入力し、ペーパー・デザイン・ビューの空き領域をクリックします。この手順を正しく実行すると、レポート内のすべての行サマリーにラベルが表示されます。

8. 必要に応じて、矢印キーを使用して、ラベルとサマリーの位置を調整します。

図27-3 サマリー・ラベルが付いたグループ上マトリックス・レポートの出力

列サマリーの上に線を追加するには:

1. ペーパー・デザイン・ビューで、前述の項で作成した「Job Tot.」ラベルをクリックします。

2. [Shift]を押しながら「Job Tot.」の右側にある各サマリーをクリックします。

3. ツールバーの「フレックス・オン」ボタンをクリックして、フレックス・モードをオンにします。

4. 「Job Tot.」とサマリー・フィールドをクリックし、約0.25インチ(0.5センチメートル)下へドラッグします。

5. ツールバーの「ペーパー・レイアウト」ボタンをクリックして、ペーパー・レイアウト・ビューを表示します。

6. ペーパー・レイアウト・ビューでは、F_SumSUM_SALPerJOBフィールドとF_SumSUM_SALPerYEARフィールドの真上に空白が2つあります。

7. ツール・パレットの「線」ツールをクリックします。

8. F_SumSUM_SALPerJOBの上で空白をクリックし、そのままドラッグして線を作成します。

9. 手順7と8を繰り返して、F_SumSUM_SALPerYEARの上にも線を作成します。

図27-4 列サマリーの上に線が追加されたレイアウト・モデル

27.4 グループ間への空白の追加

出力では、グループの間に空白はありません。

空白を追加するには:

1. ペーパー・レイアウト・ビューで、ツールバーの「制限オフ」ボタンおよび「フレックス・オン」ボタンをクリックして、制限モードをオフに、フレックス・モードをオンにします。

2. 「Year」ラベルをクリックして選択し、[Shift]を押しながらその右側の「F_YEAR」フィールドもクリックして選択します。

3. 「F_YEAR」フィールドをクリックし、約0.25インチ(0.5センチメートル)下へドラッグします。

4. ツールバーの「ペーパー・デザイン」ボタンをクリックして、ペーパー・デザイン・ビューでレポート出力をプレビューします。

図27-5 空白を追加したグループ上マトリックス・レポートの出力

27.5 Webレイアウトの作成

ペーパー・レイアウトを作成したので、次にこのレポートのWebレイアウトも作成します。Webレイアウトは、ペーパー・レイアウトを変更しなくても、レポート・ウィザードで簡単に作成できます。

Webレイアウトを作成するには:

1. 「ツール」→「レポート・ウィザード」を選択します。

2. 「Webレイアウトのみ作成」を選択します。

3. 「終了」をクリックします。

4. ツールバーの「Webソース」ボタンをクリックし、WebレイアウトのWebソースを確認します。

5. 「プログラム」→「Webレイアウトを実行」を選択し、Webレイアウトをプレビューします。

注意:

デフォルトのブラウザとしてNetscape 7.0を使用し、ブラウザにレポートが表示されない場合は、レジストリ・キーHKEY_CURRENT_USERS\Software\Oracle\Toolkit\Tkbrowserをブラウザのデフォルトの場所に設定します。BrowserNameおよびBrowserPathのキーに正しい値が指定されていることを確認してください。たとえば、BrowserName=Netscape 7、BrowserPath=C:\Program Files\Netscape\Netscape\Netscp.exeになります。

27.6 サマリー

おめでとうございます。グループ上マトリックス・レポートは正常に作成されました。この章で学習した内容は次のとおりです。

- 単一問合せデータ・モデルを使用してグループ上マトリックス・レポートを作成する。

- サマリーにラベルと線を追加する。

- マスター・レコードの間に空白を追加する。

- ペーパー・レイアウトを変更しないでWebレイアウトを作成する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

第V部

業務用レポートの作成

この部の各章では、特定の業務に使用するレポートの作成手順を示します。ここでは、指定した期間内の値の計算、指定した範囲のデータ収集、およびデータのランク付けに関する例を示します。各章で説明する手順に従って、印刷済フォーム(請求書や納品書用)を使用してレポートを印刷する方法、レポートを複数のセクションに分割して各セクションをそれぞれ異なる宛先に配布する方法、および単純な目次と索引、あるいは複数階層の目次をレポートに組み込む方法を学習します。

- 第28章「時系列計算レポートの作成」

時系列計算レポートでは、指定した期間に基づいて値が計算されます。このレポートで使用されている方法は、別の形式の時系列計算を作成する場合にも使用できます。たとえば、各顧客の購入金額について、四半期ごとの平均値を計算して表示するレポートを作成できます。

- 第29章「拡張スプレッドシート出力のレポートの作成」

スプレッドシートで生成されたペーパー・レポートをブラウザに表示できます。レポートのWebソースを変更して、ペーパー・レイアウトをWebレイアウトに統合し、出力を生成します。次に、このレポートをOracle WebLogic Server上のReports Serverで配布して、ブラウザ内でスプレッドシート・ユーティリティ(Microsoft Excelなど)を使用して表示します。

- 第30章「集約データを使用したレポートの作成」

集約データを使用したレポートでは、一定範囲内のデータが収集され、データベースから値が取り出されて、定義されている集約範囲に基づいてそれらの値が書式設定されます。パラメータを使用して、データを収集する範囲を指定できます。

- 第31章「金額がスペル表記された請求書印刷レポートの作成」

請求書印刷レポートには、スタブとスペル表記された金額が組み込まれます。スペル表記された数値を返し、印刷済フォームのイメージ(空白の請求書イメージなど)をインポートしてこのフォームにレポートを印刷するPL/SQLファンクションを作成できます。

- 第32章「印刷済フォームを使用したレポートの作成」

印刷済フォームを使用したレポートでは、コンピュータで読込み可能なバージョンのフォームを使用できない場合に、フォーマット方法によって印刷済フォームにレポートを印刷できます。このようなレポートは、フォームの正確な位置にデータが印刷されるように設計する必要があります。

- 第33章「請求書レポートの作成」

請求書レポートでは、一般的な請求書に含まれるいくつかの特性(顧客名と住所、発注番号、支払明細、請求総額など)が表示されます。イメージをインポートして、印刷済フォームにレポートを印刷できます。

- 第34章「ランキング・レポートの作成」

ランキング・レポートでは、カウントとパーセンテージの2つの方法でデータがランク付けされます。実行時にランキング条件を設定できるほか、以前に指定された値をランキング条件のデフォルトとして使用することもできます。

- 第35章「単純な目次と索引を使用したペーパー・レポートの作成」

ペーパー・レポートには、単純な目次や索引などのナビゲーション・ツールを追加できます。レポート全体にページ番号を設定すると、その番号設定に基づいて目次と索引をOracle Reports Builderで生成できるようになります。

- 第36章「複数階層の目次を使用したペーパー・レポートの作成」

ペーパー・レポートに複数階層の目次を追加することによって、レポート内を簡単に移動できます。このタイプの目次は、第35章「単純な目次と索引を使用したペーパー・レポートの作成」で説明している手順と同様の方法で作成しますが、この目次には目次内の情報を分類する階層があります。

- 第37章「レポートの一括処理と配布」

一括処理および配布用に作成したレポートでは、1つのレポートを複数の宛先に同時に配布できます。レポートを1つ作成し、そのレポート内の各セクションを個別のレポートとして一括処理して、それぞれのセクションを任意の形式(PDFやHTMLなど)で複数の宛先に送信できます。

- 第38章「PDF出力用のマルチバイト・キャラクタを含むレポートの作成」

マルチバイト・キャラクタ・レポートでは、実質的にどの言語のテキストも表示できます。簡体字中国語、繁体字中国語、日本語、韓国語などのマルチバイト文字およびUnicodeで表示されるテキストのレポートを生成できます。

28 時系列計算レポートの作成

この章では、特定の期間の計算結果に基づいてデータを表示するレポートについて学習します。この章の手順に従うと、図28-1に示すレポート出力を生成できます。

図28-1 時系列計算レポートの出力

概要

時系列計算レポートでは、指定した期間に基づいて値が計算されます。このレポートで説明する方法は、別の形式の時系列計算を作成する場合にも使用できます。

データ・リレーションシップ

この時系列計算レポートでは、顧客の購入金額に対して4か月間の移動平均を計算する問合せを使用します。SELECT文では、顧客の現在の購入金額(TOTAL)と過去4か月間の購入金額を合計し、自己結合を使用してその合計の平均を計算します。たとえば、問い合せたデータが30-JUL-00の場合、Oracle Reportsでは30-MAR-00から30-JUL-00の間の顧客の総購入金額の平均を計算します。

使用例

この例では、レポート・ウィザードを使用して、各顧客の購入金額の4か月間の平均値を計算し、ペーパーとWebの両方に出力する、単純な時系列計算レポートを作成します。JSPベースのWebレポートの場合、Webソースを修正してラベルを変更し、書式マスクを追加します。

このサンプル・レポートの作成過程では、次を行います。

- ペーパー・レポートとWebレポート用のデータ・モデルとレイアウトを作成するためのレポート・ウィザードを使用した問合せとレイアウトの作成

- JSPベースのWebレポートを生成するためのJSPレポートのWebソースの変更

時系列計算レポートのサンプルを表示するには、サンプル・フォルダtimeseriesを開き、Oracle Reportsのサンプルtimeseries.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

28.1 この例の前提条件

この章の例を作成するには、Summit Sporting Goods (SUMMIT)スキーマに対するアクセス権が必要です。このスキーマをインストールするSQLスクリプトをダウンロードするには、「はじめに」の「データ・ソースへのアクセス」を参照してください。

28.2 問合せとレイアウトの作成

この項の手順では、レポート・ウィザードで単純なデータ・モデルとレポート・レイアウトを作成する方法を説明します。これらを使用して、JSPベースのWebレポートやペーパー・レポートを生成できます。次の項では、JSPを変更し、Webレポートで適切な情報が表示されるようにします。

この例のように、単一問合せレポートを作成する場合、レポート・ウィザードを使用して、データ・モデルとレイアウトを同時に作成できます。

データ・モデルとレイアウトを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「Webおよびペーパー・レイアウトの両方を作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページでレポートの「タイトル」を入力し、「グループ左」を選択して「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT O.CUSTID, O.SHIPDATE, O.TOTAL,
AVG(A.TOTAL) MAVG
FROM ORD O, ORD A
WHERE A.CUSTID = O.CUSTID
AND A.SHIPDATE BETWEEN O.SHIPDATE -123 AND O.SHIPDATE
GROUP BY O.CUSTID, O.SHIPDATE, O.TOTAL

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルtimeseries_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

8. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第28.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

9. 「グループ」ページで、「CUSTID」をクリックし、「>」ボタンをクリックして、このフィールドを「グループ・フィールド」リストに移動し、「次へ」をクリックします。

10. 「フィールド」ページで「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動し、「次へ」をクリックします。

11. 「合計」ページで「次へ」をクリックします。

12. 「ラベル」ページで、MAVGのラベルを4-Month Moving Averageに変更し、「次へ」をクリックします。

13. 「テンプレート」ページで、「事前定義テンプレート」を選択し、「Beige」をクリックします。次に「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。

14. ペーパー・デザイン・ビューで、「F_MAVG」をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「フィールド」で、「書式マスク」プロパティを「LNNNGNN0D00」に設定します。

15. 「F_TOTAL」フィールドにも同じ手順を繰り返します。

16. 「Total」ラベルの下に表示されている最初の数値を選択します。これですべての値が即座に選択されます。「4-Month Moving Average」ラベルの下に表示されている最初の数値を[Shift]を押しながらクリックします。「右に整列」ボタンをクリックします。すべての値が右詰めになります。

17. ペーパー・デザイン・ビューのレポートは次のようになります。

図28-2 時系列計算レポートのペーパー・デザイン・ビュー

18. レポート・ウィザードを使用して作成したデータ・モデルを表示するには、ツールバーの「データ・モデル」ボタンをクリックします。このデータ・モデルは、ペーパー・レポートとJSPベースのWebレポートのどちらにも使用できます。
作成したデータ・モデルは次のようになります。

図28-3 時系列計算レポートのデータ・モデル・ビュー

19. レポートをtimeseries_your_initials.rdfという名前で保存します。

28.3 JSPレポートのWebソースの変更

ペーパー・レポートのレイアウトが作成されたので、同じレポートを使用して、ペーパー・レポートと同じように表示されるJSPベースのWebレポートを生成できます。

JSPベースのWebレポートを変更するには:

1. レポートtimeseries_your_initials.rdfを、同じ名前でJSPとして保存します(timeseries_your_initials.jsp)。

2. ツールバーの「Webソース」ボタンをクリックして、Webソース・ビューを表示します。
Webソースで、ペーパー・レポートにあわせて書式マスクを変更する必要があります。

3. Webソース・ビューで、次のテキストを検索します。

<td <rw:headers id="HFtotal" src="HBtotal, HBcustid, HFcustid"/>
class="OraCellNumber"><rw:field id="F_total" src="total" nullValue="&nbsp;"> F_
total </rw:field></td>

4. この行にタグformatMask="LNNNGNN0D00"を追加します。これで、次のような行になります。

<td <rw:headers id="HFtotal" src="HBtotal, HBcustid, HFcustid"/>
class="OraCellNumber"><rw:field id="F_total" src="total"
formatMask="LNNNGNN0D00" nullValue="&nbsp;"> F_total </rw:field></td>

注意:

太字のテキストは、「合計」フィールドに追加した新しい書式マスクのタグです。

5. 「MAVG」フィールドの書式マスクを変更します。変更すると、Webソースの行は次のようになります。

<td <rw:headers id="HFmavg" src="HBmavg, HBcustid, HFcustid"/>
class="OraCellNumber"><rw:field id="F_mavg" src="mavg" formatMask="LNNNGNN0D00"
nullValue="&nbsp;"> F_mavg </rw:field></td>

6. レポートをJSPとして保存します。

7. ツールバーの「Webレイアウトを実行」ボタンをクリックして、ブラウザに新しいJSPベースのWebレポートを表示します。レポートは次のように表示されます。

注意:

デフォルトのブラウザとしてNetscape 7.0を使用し、ブラウザにレポートが表示されない場合は、レジストリ・キーHKEY_CURRENT_USERS\Software\Oracle\Toolkit\Tkbrowserをブラウザのデフォルトの場所に設定します。BrowserNameおよびBrowserPathのキーに正しい値が指定されていることを確認してください。たとえば、BrowserName=Netscape 7、BrowserPath=C:\Program Files\Netscape\Netscape\Netscp.exeになります。

図28-4 時系列計算のJSPベースのWebレポート

このレポートでは、各顧客の合計と、過去4か月間の平均が表示されます。

注意:

JSPベースのWebレポートのパラメータ・フォームの作成方法の詳細は、Oracle Technology Network (OTN)に掲載されている例を参照してください。Oracle Reportsのページ(http://www.oracle.com/technology/products/reports/index.html)で、「Getting Started」をクリックして「Getting Started with Oracle Reports」ホームページを表示します。左側にあるトピックのリストの中から「Index」をクリックします。「Collateral Type」リストで、「Examples」を選択し、「Search」をクリックします。表示された例のリストから、「Building a JSP-based Web Report with a Parameter Form」をクリックします。

28.4 サマリー

おめでとうございます。ペーパー出力用とWeb用に時系列計算レポートは正常に作成されました。この章で学習した内容は次のとおりです。

- 時系列計算レポートの定義を作成する。

- Web用にレポートを変更する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

29 拡張スプレッドシート出力のレポートの作成

この章では、拡張スプレッドシート・レポートについて学習します。Oracle Reportsでは、ENHANCEDSPREADSHEETフォーマットを使用して、スプレッドシート出力を生成します。ENHANCEDSPREADSHEETは、Oracle Reports 11gリリース1 (11.1.1)の新しい出力フォーマットで、次の利点があります。

- 大規模なデータセット(最大75,000行)をENHANCEDSPREADSHEET出力フォーマットに生成できます。

- ENHANCEDSPREADSHEET出力フォーマットでは、スプレッドシート出力フォーマットへのレポートの一括処理および配布が可能です。

- ENHANCEDSPREADSHEET出力では、レポートのデータ全体がひとまとまりの情報としてMicrosoft Excelに表示され、上下および左右のページ・サイズが制限されるPDFやRTFなどの他の出力フォーマットのように、改ページによって分割されることがありません。

拡張スプレッドシート出力の詳細は、第2.8.13項「拡張スプレッドシート出力について」を参照してください。

この章の手順に従うと、図29-1に示す拡張スプレッドシート・レポート出力を生成できます。

図29-1 拡張スプレッドシート・レポートの出力

概要

- この章では、JSPベースのWebレポートを作成し、Oracle WebLogic Server上のReports Serverを使用して配布して、それをWebブラウザにMicrosoft Excelで表示する手順について説明します。新しいWebレイアウトは、既存のペーパー・レイアウトを使用して作成できます。

- 既存のペーパー・レイアウトがなく、WebレポートからMicrosoft Excelに出力する場合は、Oracle Technology Network (OTN)でスライド・ショー・デモを参照してください。Oracle Reportsのページ(http://www.oracle.com/technology/products/reports/index.html)で、「Getting Started」をクリックし、「Getting Started with Oracle Reports」ホームページを表示します。左側にあるトピックのリストの中から「Index」をクリックします。「Collateral Type」リストで、「Demonstrations」を選択し、「Search」をクリックします。表示されたデモ・リストの中から、「Output to Excel with Oracle Reports」をクリックします。

注意:

この章と「Getting Started」のデモに説明されている手順に従うと、カラーやフォントなどの多彩な書式を使用し、Webブラウザ内にデータのみではなくMicrosoft Excelを表示して、レポート・レイアウトを生成できます。ただし、Microsoft Excelで出力するには、カスタムJSPコードを追加する必要があります。WebレポートはOracle WebLogic Server内でJSPでのみ実行可能で、rwservletでは実行できません。したがって、この方法では、Microsoft Excel出力はWebブラウザ内のみで表示できます。

- ENHANCEDSPREADSHEET出力フォーマットでは、スプレッドシート形式でレポートを一括処理および配布できるほか、大規模なデータ・セット(75,000行まで)をスプレッドシートに生成できます。
ENHANCEDSPREADSHEET出力フォーマットを使用すると、ペーパー・レイアウト・レポートからHTMLファイルへ出力を生成し、Microsoft Excel 2000で直接開くことができます。次の操作を実行できます。

- どのような形式(.rdf、.xml、.jsp)で保存されている既存のペーパー・レイアウト・レポートからでも、rwrunまたはReports Serverクライアント(rwclient、rwservlet)を使用して、レポート出力を拡張スプレッドシート形式に生成できます。次の例を参照してください。

- カラー、フォント、条件付き書式、グラフ、イメージなどのリッチ・レイアウト・フォーマットを保持できます。

この機能を実装してスプレッドシート出力を直接生成する手順は、第2.8.13項「拡張スプレッドシート出力について」および第4.7.11項「拡張スプレッドシート出力の生成」を参照してください。

使用例

この例では、Microsoft Excelにレポートを出力します。レポートのWebソースを変更し、ペーパー・レイアウトをWebレイアウトに統合してから、出力を生成します。

このサンプル・レポートの作成過程では、次を行います。

- レポート・ウィザードを使用した、ペーパー・レイアウト・レポート用の単純な問合せを作成するための問合せとレイアウトの作成

- JSPベースのWebレポートを生成するためのJSPレポートのWebソースの変更

- Microsoft Excelで表示するためのJSPレポートに対する変更

レポートのサンプルを表示するには、サンプル・フォルダpapertoexcelを開き、Oracle Reportsのサンプルmypaperreport.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。この章で使用されているサンプル・ファイルのリストと説明を表29-1に示します。

表29-1 レポートのサンプル・ファイル

ファイル

説明

papertoexcel\mypaperreport.rdf

ペーパー・レポートのサンプル。Reports BuilderでこのRDFを実行すると、ペーパー・レポートの結果がペーパー・デザイン・ビューに表示されます。

papertoexcel\myexcelreport.jsp

このJSPベースのWebレポートには、Reports Builderで行うペーパー・レポートに対する変更が含まれています。

papertoexcel\papertoexceldata_code.txt

入力する必要がある問合せのSQL。

29.1 この例の前提条件

この章の例を作成するには、Oracle Reportsソフトウェア付属のサンプル・ファイルが必要です(前述の「使用例」を参照)。また、Oracle Database付属のHuman Resourcesサンプル・スキーマ(HR)へのアクセスが必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。この例を完了するには、Microsoft Excel 2000以上が必要です。

29.2 問合せとレイアウトの作成

この項の手順では、レポート・ウィザードで単純なデータ・モデルとレポート・レイアウトを作成する方法を説明します。これらを使用して、JSPベースのWebレポートやペーパー・レポートを生成できます。次の項では、JSPを変更し、Webレポートで適切な情報が表示されるようにします。

データ・モデルとレイアウトを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページで、「表形式」を選択し、「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT EMPLOYEES.EMPLOYEE_ID, EMPLOYEES.FIRST_NAME, EMPLOYEES.LAST_NAME,
EMPLOYEES.HIRE_DATE, EMPLOYEES.SALARY, DEPARTMENTS.DEPARTMENT_NAME,
LOCATIONS.CITY
FROM EMPLOYEES, DEPARTMENTS, LOCATIONS
WHERE EMPLOYEES.DEPARTMENT_ID=DEPARTMENTS.DEPARTMENT_ID
AND DEPARTMENTS.LOCATION_ID=LOCATIONS.LOCATION_ID
ORDER BY CITY

注意:

この問合せは、次のいずれかの方法で入力できます。

- Oracle Reports付属のpapertoexceldata_code.txtファイルからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

8. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第29.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

9. 「フィールド」ページで「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動し、「次へ」をクリックします。

10. 「合計」ページで「次へ」をクリックします。

11. 「ラベル」ページで「次へ」をクリックします。

12. 「テンプレート」ページで、「事前定義テンプレート」を選択し、「Wine」をクリックします。次に「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次の例のようになります。

図29-2 ペーパー・デザインの出力

13. レポートをmypaperreport_your_initials.rdfという名前で保存します。

29.3 JSPレポートのWebソースの変更

ペーパー・レポートのレイアウトが作成されたので、同じレポートを使用して、ペーパー・レポートと同じように表示されるJSPベースのWebレポートを生成する方法を学習します。

JSPベースのWebレポートを変更するには:

1. レポート・エディタで、ツールバーの「Webソース」ボタンをクリックして、Webソース・ビューを表示します。
Webソース・ビューで、Oracle Reports Builderによって作成されたダミーのJSPコードを変更します。

2. Webソース・ビューで、次のテキストを検索します。

<rw:dataArea id="yourDataArea">
<!-- Report Wizard inserts the default jsp here -->
</rw:dataArea>

ヒント:

「編集」→「検索と置換」を選択し、「検索文字列」テキスト・ボックスにdataAreaと入力します。

3. <rw:dataArea>の開始タグと終了タグの間にカーソルを置き、「挿入」→「枠」を選択します。これによって、Webソース・ビューに次のコードが挿入されます。

<rw:include id="include" src="..."> </rw:include>

注意:

rw:includeタグを使用すると、ペーパー・レイアウトの外枠を、JSPコードとしてWebソース・ビューに挿入できます。rw:dataAreaタグにrw:includeタグを追加することで、既存のペーパー・レイアウトをWebレイアウトに挿入して再利用できます。

4. オブジェクト・ナビゲータで、ペーパー・レイアウトのトップ・レベルのレイアウト・オブジェクト枠を調べます。その名前をrw:includeタグのsrc属性に指定します。行は次のようになります。

<rw:dataArea id="yourDataArea">
<!-- Report Wizard inserts the default jsp here -->
<rw:include id="mypaperreport_id" src="M_G_EMPLOYEE_ID_GRPFR">
</rw:include>
</rw:dataArea>

5. ツールバーの「Webレイアウトを実行」ボタンをクリックして、ブラウザに新しいJSPベースのWebレポートを表示します。レポートは次のように表示されます。

図29-3 Webデザインでの出力

レポートに指定した従業員データがWeb形式で表示されます。ここでは、名前、電子メール、雇用日、給与、所属部門、勤務場所などの従業員データの詳細を参照できます。

6. レポートをmyexcelreport_your_initials.jspという名前で保存します。

29.4 Microsoft Excelで表示するためのJSPレポートに対する変更

ペーパー・レポートと同様に表示されるJSPベースのWebレポートを作成したので、このレポートをさらに変更して、Webブラウザ内にMicrosoft Excelで表示されるようにします。

最初に、myexcelreport_your_initials.jspを、アプリケーション・サーバーの配布ディレクトリにコピーします。この例では、テスト用として、Oracle Developer Suite付属のOracle WebLogic Serverインスタンスを使用します。

JSPベースのWebレポートの配布の詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「レポート・リクエストの実行」でレポートの配布に関する項を参照してください。

Microsoft Excelで表示するようにレポートを変更するには:

1. レポート・エディタで、ツールバーの「Webソース」ボタンをクリックして、Webソース・ビューを表示します。
Webソース・ビューで、JSPディレクティブのcontentTypeを使用してHTTPレスポンスのコンテンツ・タイプを変更して、ブラウザがMicrosoft Excelを起動してレポート出力を表示するようにします。

2. Webソース・ビューで、次のテキストを検索します。

<%@ taglib uri="/WEB-INF/lib/reports_tld.jar" prefix="rw" %>
<%@ page language="java" import="java.io.*" errorPage="/rwerror.jsp"
session="false" %>
<%@ page contentType="text/html;charset=ISO-8859-1" %>
<rw:report id="report">
<rw:objects id="objects">
</rw:objects>
......
......
<!--
</rw:report>
-->

この箇所を次のように変更します。

<%@ taglib uri="/WEB-INF/lib/reports_tld.jar" prefix="rw" %>
<%@ page language="java" import="java.io.*" errorPage="/rwerror.jsp"
session="false" %>
<%@ page contentType="application/vnd.ms-excel;charset=ISO-8859-1" %>
<rw:report id="report">
<rw:objects id="objects">
</rw:objects>
......
......
<!--
</rw:report>
-->

3. レポートを保存します。

4. Webレポート(myexcelreport_your_initials.jsp)を次のディレクトリにコピーします。

$DOMAIN_HOME\servers\MANAGED_SERVER_NAME\stage\reports\reports\web.war

5. Oracle WebLogic Serverインスタンスを起動して、レポートを配布可能にします。

- Windowsの場合は、次のいずれかの操作を行います。

- 「スタート」メニューから、「プログラム」→「Oracle Classic Instance」→「Reports Services」→「Start WebLogic Server - WLS_REPORTS」の順に選択します。
たとえば、「Oracle Classic Instance」は、「Oracle Classic Instance-asinst_1」などになります。

- コマンドラインから、次のコマンドを実行します。
cd $DOMAIN_HOME\bin\startManagedServer.bat WLS_REPORTS

- UNIXの場合は、コマンドラインから次のシェル・スクリプトを実行します。

- $DOMAIN_HOME\bin\startManagedServer.sh WLS_REPORTS

ヒント:

Oracle WebLogic Serverインスタンスは、Java EEのコンテナが初期化されると起動されます。

6. 次のURLを入力して、WebブラウザにMicrosoft Excelでレポートを表示します。

http://your_computer:port/reports/yourexcelreportname.jsp?userid=hr/hr@db

この例では、次を使用します。

http://mycomputer-pc:8888/reports/my_excel_report.jsp?userid=hr/hr@orcl

注意:

URLに入力する接続文字列は、第29.2項「問合せとレイアウトの作成」でデータ・モデルの作成に使用したデータベースを対象としたものです。この例の本来の目的に焦点を絞るため、接続文字列の受渡しには平文を使用しています。セキュリティを確保する方法の詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「Oracle Reports Servicesの保護」を参照してください。

7. レポートが実行され、レポートがブラウザにMicrosoft Excelで表示されます。

注意:

Excelのレポートの色を、レポートに定義した色と同色にするには、Excelのカラー・パレットでサポートされている色を使用する必要があります。サポートされていない色が指定されている場合は、できるかぎり近い色が使用されますが、期待した色にならない場合もあります。

最終的なレポート出力は次のようになります。

図29-4 レポートのMicrosoft Excel出力

29.5 サマリー

レポートのExcel出力が作成されました。この章で学習した内容は次のとおりです。

- 単純なペーパー・レイアウト・レポートを作成する。

- 既存のペーパー・レイアウト・レポートを使用するようにWebレイアウトを変更する。

- Oracle WebLogic Serverを使用してJSPベースのWebレポートをMicrosoft Excelに出力するテストを実行したり配布する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

30 集約データを使用したレポートの作成

この章では、値範囲に基づいた集約データを含むレポートについて学習します。この章の手順に従うと、図30-1に示すようなレポート出力を生成できます。

図30-1 集約データ・レポートの出力

概要

範囲内のデータを集約または収集するレポートでは、データベースから値が取り出され、定義した集約範囲に基づいてその値が書式設定されます。データを収集する範囲はパラメータを使用して指定することもできます。

データ・リレーションシップ

このレポートでは、SELECT文に2つのファンクションを使用して、集約範囲を指定します。このファンクションは、給与の下限を計算する(FLOOR(SAL/1000))*1000)と、給与の上限を計算する(CEIL*((SAL+1)/1000) * 1000)です。これらのファンクションから値を受け取る列をブレーク・グループ内に置き、コントロール・ブレーク形式のサンプル・レポートを作成します。

レイアウト

このレポートでは、グループ左のレイアウト・スタイルを使用します。

使用例

この例では、給与が0から999の範囲内にあるすべての従業員の名前、給与が1000から1999の範囲内にあるすべての従業員の名前などを収集し、その名前を表示する、ペーパー・レポートとJSPベースのWebレポートの両方を作成します。このレポートを変更して、必要な集約範囲を表示できます。

このサンプル・レポートの作成過程では、次を行います。

- ペーパー・レポートとWebレポート用のデータ・モデルとレイアウトを作成するためのレポート・ウィザードを使用した問合せとレイアウトの作成

- JSPベースのWebレポートを生成するためのJSPレポートのWebソースの変更

範囲内のデータを集約するレポートのサンプルを表示するには、サンプル・フォルダaggregatingdataを開き、Oracle Reportsのサンプルaggregatingdata.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

30.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のSCOTTサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

30.2 問合せとレイアウトの作成

この項の手順では、レポート・ウィザードで単純なデータ・モデルとレポート・レイアウトを作成する方法を説明します。これらを使用して、JSPベースのWebレポートやペーパー・レポートを生成できます。次の項では、JSPを変更し、Webレポートで適切な情報が表示されるようにします。

この例のように、単一問合せレポートを作成する場合、レポート・ウィザードを使用して、データ・モデルとレイアウトを同時に作成できます。

データ・モデルとレイアウトを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「Webおよびペーパー・レイアウトの両方を作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページでレポートの「タイトル」を入力し、「グループ左」を選択して「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT (FLOOR(SAL/1000))*1000 BOTTOM,
CEIL((SAL+1)/1000) * 1000 TOP,
ENAME,
DEPTNO
FROM EMP
ORDER BY 1,2, SAL

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルaggregatingdata_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

8. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第30.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

9. 「グループ」ページで、次の各フィールドを「使用可能フィールド」リストでクリックし、「>」ボタンをクリックして、これらを「Group Fieldsグループ・フィールド」リストに移動し、「次へ」をクリックします。

- BOTTOM

- TOP

10. 「フィールド」ページで「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動し、「次へ」をクリックします。

11. 「合計」ページで「次へ」をクリックします。

12. 「ラベル」ページで「次へ」をクリックします。

13. 「テンプレート」ページで、「事前定義テンプレート」を選択し、「Beige」をクリックします。次に「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次の例のようになります。

図30-2 集約データ・レポートのペーパー・デザイン・ビュー

14. ペーパー・デザイン・ビューで、テキストの「Bottom」をクリックして、そのテキストをSalary Rangeに変更します。

15. テキストの「Top」を削除します。

注意:

他の列のヘッダーもわかりやすいテキストに変更できます。

16. ツールバーの「ペーパー・レイアウト」ボタンをクリックして、ペーパー・レイアウト・ビューを表示します。現在のレイアウトは次のようになります。

図30-3 集約データ・レポートのペーパー・レイアウト・ビュー

17. ペーパー・レイアウト・ビューで、ツールバーの「フレックス・オフ」ボタンをクリックして、フレックス・モードをオフにします。

18. f_bottom枠の右端をクリックして、約0.5インチ(1.5センチメートル)左へドラッグし、f_bottomとf_topのフィールド間にスペースを作ります。

ヒント:

ペーパー・レイアウト・ビューのオブジェクトを検索するには、オブジェクト・ナビゲータを使用します。オブジェクト・ナビゲータで項目名をクリックすると、対応するオブジェクトがペーパー・レイアウト・ビューで選択されます。

19. ツール・パレットの「テキスト」ツールをクリックします。

20. f_bottomとf_topの間にボイラープレート・テキスト・オブジェクトをドラッグし、テキスト・ボックスに「-」と入力します。レイアウトは次のようになります。

図30-4 新しいボイラープレート・テキストが付いたペーパー・レイアウト・ビュー

21. ここで、ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックして、レポートを表示します。次のようになります。

図30-5 ペーパー・デザイン・ビュー

注意:

このレポートで、給与範囲ごとにどのように従業員名が表示されるか(どのようにデータが集約されるか)を確認してください。

22. レポートをaggregatereport_your_initials.rdfの形式で保存します。

23. レポートのデータ・モデルを見てください。このデータ・モデルを使用して、ペーパー・レポートまたはJSPベースのWebレポートを生成できます。データ・モデルを表示するには、ツールバーで「データ・モデル」ボタンをクリックします。作成したデータ・モデルは次のようになります。

図30-6 集約データ・レポートのデータ・モデル

30.3 JSPレポートのWebソースの変更

ペーパー・レポートのレイアウトが作成されたので、同じレポートを使用して、ペーパー・レポートと同じように表示されるJSPベースのWebレポートを生成する方法を学習します。

JSPベースのWebレポートを変更するには:

1. レポートaggregatereport_your_initials.rdfを、同じ名前でJSPとして保存します(aggregatereport_your_initials.jsp)。

2. ツールバーの「Webソース」ボタンをクリックして、Webソース・ビューを表示します。
Webソースで、ペーパー・レポートにあわせて列タイトルを変更する必要があります。

3. Webソース・ビューで、次のテキストを検索します。

<th <rw:id id="HBbottom" asArray="no"/> class="OraColumnHeader"> Bottom </th>

ヒント:

「編集」→「検索と置換」を選択し、「検索文字列」テキスト・ボックスにbottomと入力します。

4. 列ヘッダーを"Salary"に変更します。これで、次のような行になります。

<th <rw:id id="HBbottom" asArray="no"/> class="OraColumnHeader"> Salary </th>

5. 次のコード行は、"Top"列のヘッダーを示します。ヘッダー・テキストを削除し、次のような行にします。

<th <rw:id id="HBtop" asArray="no"/> class="OraColumnHeader">  </th>

6. 必要に応じて、EnameとDeptnoの2つの列も変更します。たとえば、ここでは次のように"Name"と"Dept"に変更します。

<th <rw:id id="HBename" asArray="no"/> class="OraColumnHeader"> Name </th>
<th <rw:id id="HBdeptno" asArray="no"/> class="OraColumnHeader"> Dept </th>

7. レポートをJSPとして保存します。

8. ツールバーの「Webレイアウトを実行」ボタンをクリックして、ブラウザに新しいJSPベースのWebレポートを表示します。

注意:

デフォルトのブラウザとしてNetscape 7.0を使用し、ブラウザにレポートが表示されない場合は、レジストリ・キーHKEY_CURRENT_USERS\Software\Oracle\Toolkit\Tkbrowserをブラウザのデフォルトの場所に設定します。BrowserNameおよびBrowserPathのキーに正しい値が指定されていることを確認してください。たとえば、BrowserName=Netscape 7、BrowserPath=C:\Program Files\Netscape\Netscape\Netscp.exeになります。

レポートは次のように表示されます。

図30-7 集約データのJSPベースのWebレポート

このレポートでは、指定した集約データがWeb形式で表示されます。ここでは、従業員名とその給与範囲がわかります。

注意:

JSPベースのWebレポートのパラメータ・フォームの作成方法の詳細は、Oracle Technology Network (OTN)に掲載されている例を参照してください。Oracle Reportsのページ(http://www.oracle.com/technology/products/reports/index.html)で、「Getting Started」をクリックして「Getting Started with Oracle Reports」ホームページを表示します。左側にあるトピックのリストの中から「Index」をクリックします。「Collateral Type」リストで、「Examples」を選択し、「Search」をクリックします。表示された例のリストから、「Building a JSP-based Web Report with a Parameter Form」をクリックします。

30.4 サマリー

おめでとうございます。ペーパー出力用とWeb用にデータを集約するレポートは、正常に作成されました。この章で学習した内容は次のとおりです。

- データを集約するレポート定義を作成する。

- Web用にレポートを変更する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

31 金額がスペル表記された請求書印刷レポートの作成

この章では、単語でスペル表記された金額が記載されている請求書の出力を書式設定するレポートについて学習します。この章の手順に従うと、図31-1に示すレポート出力を生成できます。

図31-1 請求書印刷レポートの出力

概要

請求書の金額をスペル表記するには、PL/SQLファンクションを使用して金額をその構成要素の数字に分解した後、式列を使用して一連の単語を結合し、スペル表記された金額を作成します。

注意:

この例の多くの概念は、次のサンプル・レポートで使用されています。

- この例では、請求書のイメージをインポートし、ペーパー・レイアウト・ビューでそれをガイドとして使用し、フィールドを配置します。また、数値をスペル表記して返すPL/SQLファンクションの作成方法も学習します。

- 第32章「印刷済フォームを使用したレポートの作成」では、コンピュータで読取り可能なバージョンのフォームを使用できない場合に、印刷済フォームでレポートを印刷するためのフォーマット方法を学習します。このようなレポートは、フォームの正確な位置にデータが印刷されるように設計する必要があります。

- 第33章「請求書レポートの作成」では、請求書のイメージをインポートし、ペーパー・レイアウト・ビューでそれをガイドとして使用して、フィールドを配置します。

データ・リレーションシップ

- このレポートでは、リンクされた2つの問合せを使用します。最初の問合せでは請求書に必要な情報を取得し、2番目の問合せでは請求書のスタブに印刷する注文詳細情報を取得します。

- 作成する問合せの1つでは、スペル表記する数値がORDERS表のTOTAL列に格納されていると仮定します。スペル表記された数値のテキストは、Lookup表からフェッチされ、Thousands_text列、Thousands_Symbol列、Ones_text列およびDecimal_Text列に返されます。

レイアウト

このレポートでは、デフォルトのフォーム・スタイルを使用します。

使用例

この例では、レポート・ウィザードを使用して、基本的なレポート定義を作成します。請求書の金額をスペル表記するPL/SQLファンクションを作成します。また、請求書のドル金額を書式設定する式列も作成します。次に、空白の請求書イメージをインポートし、ペーパー・レイアウト・ビューおよびペーパー・デザイン・ビューのツールを使用して、請求書印刷レポートに最終的にどのように出力するかに応じてレポート内のフィールドを再配置します。これらのツールは、各請求書のスタブを作成する際にも使用します。

このサンプル・レポートの作成過程では、次を行います。

- 単純なフォーム・レポートを作成するためのレポート・ウィザードによるレポートの作成。

- PL/SQLエディタとデータ・モデル・ビューを使用したスペル表記された請求書金額を返す式列の作成。

- 2番目の問合せを作成しそれらをリンクする、データ・モデル・ビューを使用した注文の品目を返す問合せの作成。

- ペーパー・レイアウト・ビューを使用した請求書イメージのインポートと印刷用のフィールドの配置。このとき、空白の請求書イメージをインポートし、請求書と請求書のスタブの印刷に必要なフィールドを追加する。ペーパー・デザイン・ビューで空白の請求書イメージに新規フィールドを配置する。

- ペーパー・デザイン・ビューを使用して請求書のスタブを作成し、レポート・ブロック・ウィザードを使用して注文詳細を表示する単純な表形式のレポートを作成する支払い情報および注文詳細情報を備えた請求書のスタブの作成。

金額がスペル表記されたレポートのサンプルを表示するには、サンプル・フォルダspellcashを開き、Oracle Reportsのサンプルspellcash.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

31.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のOrder Entryサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

31.2 レポート・ウィザードによるレポートの作成

この項の手順では、レポート・ウィザードを使用して単純なレポート定義を作成する方法を説明します。

レポート定義を作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページでレポートの「タイトル」を入力し、「フォーム」を選択して「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT ALL ORDERS.ORDER_ID, TO_CHAR(ORDERS.ORDER_DATE, 'DD-MON-YYYY')
ORDER_DATE, ORDERS.CUSTOMER_ID, ORDERS.ORDER_TOTAL,
CUSTOMERS.CUST_FIRST_NAME || ' ' || CUSTOMERS.CUST_LAST_NAME CUSTOMER_NAME,
CUSTOMERS.CUST_ADDRESS, (ROWNUM + 1000) AS CHECK_NO
FROM ORDERS, CUSTOMERS
WHERE CUSTOMERS.CUSTOMER_ID = ORDERS.CUSTOMER_ID
ORDER BY ORDERS.ORDER_ID ASC

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルspellcash_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

8. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第31.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

9. 「フィールド」ページで「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動し、「次へ」をクリックします。

10. 「合計」ページで「次へ」をクリックします。

11. 「ラベル」ページで、ラベルとフィールド幅を次のように変更し、「次へ」をクリックします。

表31-1 「ラベル」ページのフィールドの説明

フィールド

ラベル

幅

ORDER_ID

Order No.

5

ORDER_DATE

Order Date

12

CUSTOMER_ID

Customer No.

3

ORDER_TOTAL

Order Total

15

CUSTOMER_NAME

Customer

40

C_STREET_ADDRESS

[blank]

40

C_POSTAL_CODE

[blank]

5

C_CITY

[blank]

20

C_STATE_PROVINCE

[blank]

3

C_COUNTRY_ID

[blank]

3

CHECK_NO

Check No.

5

12. 「テンプレート」ページで、「テンプレートなし」を選択し、「終了」をクリックして、ペーパー・デザイン・ビューでレポート出力をプレビューします。
初期のレポート定義を作成しただけなので、フォーマットは請求書のようにはなりません。次の例のようになります。

図31-2 単純なレポートのペーパー・デザイン・ビュー

13. レポートをspellcash_your_initials.rdfという名前で保存します。

31.3 スペル表記された請求書金額を返す式列の作成

この項の手順では、ファンクションに基づいた式列を作成する方法について説明します。作成するファンクションは、請求書金額の言語値または単語値を返します。次に、指定した通貨で金額をスペル表記する式列を作成します。この場合は、ドルとセントを使用します。

31.3.1 PL/SQLファンクションの作成

この項では、請求書の金額をtwenty-four sixty-fiveのような単語の形式で単純に返すファンクションを作成します。次の項で作成する式列は、このファンクションで取得した情報を使用し、請求書の金額をスペル表記します。

PL/SQLファンクションを作成するには:

1. オブジェクト・ナビゲータで、該当するレポート名の下の「プログラム・ユニット」をダブルクリックします。

2. 新規プログラム・ユニット・ダイアログ・ボックスで、「名前」ボックスにSpellと入力します。

3. 「ファンクション」を選択し、「OK」をクリックします。

4. PL/SQLエディタで、次のコードを入力します。

FUNCTION Spell (val number) RETURN CHAR IS
sp varchar2(100);
BEGIN
if val > 0 then
return(initcap(to_char(to_date(val, 'SSSSS'), 'SSSSSSP')));
else
return('');
end if;
END;

注意:

提供されているテキスト・ファイルspellcash_code.txtから、このコードをコピーしてPL/SQLエディタに貼り付けると、コードを入力できます。

5. 「コンパイル」をクリックします。エラーがある場合は、次の図に示すコードと、入力したコードを比較してください。

図31-3 SPELLファンクションを表示しているPL/SQLエディタ

6. コードが正常にコンパイルされたら、「閉じる」をクリックします。
新しいファンクションがオブジェクト・ナビゲータに表示されます。

図31-4 SPELL PL/SQLファンクション作成後のオブジェクト・ナビゲータ

7. レポートを保存します。

31.3.2 データ・モデルでの式列の作成

この項では、第31.3.1項「PL/SQLファンクションの作成」で作成したSpellファンクションで取得された情報を使用する式列を作成します。この式列では、請求書金額の言語値を使用し、正しい通貨の単語を組み合せます。たとえば、Spellファンクションから返された"twenty-four sixty-five"を、"twenty-four dollars and sixty-five cents"の形式に変換します。

式列を作成するには:

1. オブジェクト・ナビゲータの該当するレポート名の下で、「データ・モデル」ノードの横のビュー・アイコンをダブルクリックして、データ・モデル・ビューを表示します。
作成したデータ・モデルは次のようになります。

図31-5 データ・モデル・ビュー

2. 上部をクリックした後、下部中央のサイズ変更ハンドルを下にドラッグして、「G_ORDER_ID」ボックスのサイズを変更します。その結果、データ・モデルは次のようになります。

図31-6 サイズ変更後のデータ・モデル・ビュー

3. ツール・パレットの「式列」ツールをクリックします。

4. G_ORDER_IDグループ内の作成した領域をクリックして、新しい式列を作成します。

5. 新しい式列オブジェクト(CF_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「SPELLED_AMOUNT」に設定します。

- 「列」で、「データ型」プロパティを「Character」、「幅」プロパティを「100」に設定します。

- 「プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。

6. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function SPELLED_AMOUNTFormula return Char is
cents number;
c_str varchar2(80);
val number;
begin
val := :order_total;
cents := (val mod 1) * 100;
if cents > 0 then --creates string for cents
c_str := ' and ' || TO_CHAR(cents) || '/100 Dollars******';
else
c_str := ' Dollars******';
end if;
if val < 1000 and val > 1 then
return (initcap(spell(floor(val))) || c_str);
elsif val > 1000 then
return(initcap(spell(floor(val/1000))) || ' Thousand ' ||
spell(floor(val mod 1000)) || c_str);
else
return('Zero'||c_str);
end if;
end;

注意:

提供されているテキスト・ファイルspellcash_code.txtから、このコードをコピーしてPL/SQLエディタに貼り付けると、コードを入力できます。

7. 「コンパイル」をクリックします。エラーがある場合は、入力したコードと提供されているコードを比較してください。

8. コードが正常にコンパイルされたら、「閉じる」をクリックします。
新しい式列SPELLED_AMOUNTが、データ・モデルに表示されます。

図31-7 SPELLED_AMOUNT式列作成後のデータ・モデル

9. レポートを保存します。

31.4 注文の品目を返す問合せの作成

この項の手順では、顧客の注文の品目を返す問合せをデータ・モデル・ビューで手動作成する方法を説明します。取得したデータを使用して、請求書のスタブの注文詳細情報を表示します。

問合せを手動作成するには:

1. データ・モデル・ビューで、ツール・パレットの「SQL問合せ」ツールをクリックし、データ・モデル・ビューの空いている場所をクリックして、「SQL問合せ文」ダイアログ・ボックスを表示します。

2. 「SQL問合せ文」フィールドに、次のSELECT文を入力します。

SELECT ALL
ORDER_ITEMS.LINE_ITEM_ID,
ORDER_ITEMS.ORDER_ID,
ORDER_ITEMS.PRODUCT_ID,
ORDER_ITEMS.UNIT_PRICE,
ORDER_ITEMS.QUANTITY,
PRODUCT_INFORMATION.PRODUCT_NAME
FROM ORDER_ITEMS, PRODUCT_INFORMATION
WHERE PRODUCT_INFORMATION.PRODUCT_ID=ORDER_ITEMS.PRODUCT_ID
ORDER BY ORDER_ITEMS.LINE_ITEM_ID ASC

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルspellcash_code.txtからコードをコピーして「SQL問合せ文」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「SQL問合せ文」フィールドにコードを入力します。

3. 「OK」をクリックします。次のように、問合せがデータ・モデル・ビューに表示されます。

図31-8 2つの問合せを持つデータ・モデル

4. データ・モデル・ビューで、ツール・パレットの「データ・リンク」ツールをクリックします。

5. 最初の問合せQ_1で、G_ORDER_IDの下にある「ORDER_ID」をクリックし、Q_2の「ORDER_ID1」まで線をドラッグします。

6. 作成したデータ・モデルは次のようになります。

図31-9 2つの問合せ間のデータ・リンク

7. レポートを保存します。

31.5 請求書イメージのインポートと印刷用のフィールドの配置

この項の手順では、請求書印刷レポートのマージンの調整方法と、請求書イメージでのフィールドの整列方法を説明します。任意の請求書をスキャンし、そのイメージを使用して、請求書レポートの一連のオブジェクトのレイアウトを設定できます。この項では、提供されているイメージblankcheck.jpgを使用します。このイメージは、サンプル・フォルダspellcashにあります。

31.5.1 レイアウト・オブジェクトの再配置

請求書イメージを挿入する前に、レイアウト・オブジェクトをまず再配置する必要があります。

レイアウト・オブジェクトを再配置するには:

1. ツールバーの「ペーパー・レイアウト」ボタンをクリックして、ペーパー・レイアウト・ビューを表示します。
現在のレイアウトは次のようになります。

図31-10 レポートのペーパー・レイアウト・ビュー

2. ツールバーの「マージン編集」ボタンをクリックします。

3. ペーパー・レイアウト・ビューで、マージン枠(黒の太線)をクリックして選択します。

4. 枠の上部で、中央にある黒いサイズ変更用の四角形をクリックして上にドラッグし、マージンが0.25インチ(0.5センチメートル)になるようにします。

ヒント:

中央の四角形をクリックした場合、マウス・ボタンを押している間は基準線として点線が表示されます。この基準線を使用すると、ペーパー・レイアウト・ビューでオブジェクトを目的の位置に正確に配置できます。

操作が完了すると、ペーパー・レイアウト・ビューは次のようになります。

図31-11 マージン・サイズ変更後のペーパー・レイアウト・ビュー

5. レポートを保存します。

31.5.2 空白の請求書イメージのインポート

この項では、空白の請求書イメージをインポートします。請求書は、任意のものを使用できます。この例では、サンプル・ディレクトリspellcashに入ってblankcheck.jpg(提供されているイメージ)を使用します。

空白の請求書イメージをインポートするには:

1. 枠が選択されている状態で、「挿入」→「イメージ」を選択します。

2. 「イメージのインポート」ダイアログ・ボックスで、「ファイル」が選択されていることを確認します。

3. 「ファイル」の横のテキスト・ボックスで、イメージblankcheck.jpgの場所を入力するか参照して指定し、「OK」をクリックして、空白の請求書イメージをペーパー・レイアウト・ビューで表示します。

4. ツールバーのマージン編集ボタンをクリックして、編集モードに戻ります。イメージが表示されなくなります。

31.5.3 請求書印刷用フィールドの設定

この項の手順では、ペーパー・レイアウト・ビューの各種ツールを使用して請求書レポートのルック・アンド・フィールを変更する方法を説明します。ここでは、請求書に表示するレイアウトに従って、レイアウト・オブジェクトおよびフィールドを追加、変更する方法を学習します。ここでは特定フィールドのコピーを作成しますが、これらは請求書のスタブを作成するために、第31.6項「支払い情報および注文詳細情報を備えた請求書のスタブの作成」で使用します。

請求書印刷用フィールドを設定するには:

1. ペーパー・レイアウト・ビューで、「Order No.」ボイラープレート・テキストをクリックします。

2. ツールバーの「親枠を選択」ボタンをクリックします。
ペーパー・レイアウト・ビューでは、繰返し枠「R_G_ORDER_ID」が選択されています。また、オブジェクト・ナビゲータの「ペーパー・レイアウト」でも、「R_G_ORDER_ID」が選択されています。

3. 「R_G_ORDER_ID」が選択されている状態で、下部中央のサイズ変更ハンドルをクリックし、ページ下部の8.75インチ(22センチメートル)までドラッグします。

ヒント:

ペーパー・レイアウト・ビューでサイズ変更ハンドルをクリックしてドラッグする場合、オブジェクトを容易に配置できるように定規に沿って基準線が表示されます。この場合、水平基準線が8.75インチ(22センチメートル)に到達するまで、下部中央のサイズ変更ハンドルをページの下方にドラッグします。

4. ツールバーの「フレックス・オフ」ボタンをクリックして、フレックス・モードをオフにします。

5. ペーパー・レイアウト・ビューで、「F_ORDER_TOTAL」をクリックした後、[Ctrl]を押しながら[C]を押します。

6. レイアウト・オブジェクトの下の領域をクリックした後、[Ctrl]を押しながら[V]を押します。
新しいフィールド「F_ORDER_TOTAL1」が表示されます。このフィールドが他のレイアウト・オブジェクトの上に表示される場合は、このフィールドをクリックし、他のレイアウト・オブジェクトの下にドラッグします。ペーパー・レイアウト・ビューでは次のようになります。

図31-12 F_ORDER_TOTAL1が追加されたペーパー・レイアウト・ビューの一部

7. 「F_ORDER_DATE」フィールドをコピーして他のフィールドの下に貼り付けます。レイアウトは次のようになります。

図31-13 F_ORDER_DATE1が追加されたペーパー・レイアウト・ビューの一部

注意:

フィールドをコピーして貼り付ける場合、Reports Builderではフィールド・サイズが維持されます。そのため、F_ORDER_DATEをコピーして貼り付けると、そのフィールドのフルネームが表示されなくなる場合があります。フィールドを選択した状態でフィールドの右境界線をクリックして右にドラッグすると、フィールドのフルネームF_ORDER_DATE1が表示されます。

8. 「F_CUSTOMER_NAME」フィールドをコピーして他のレイアウト・オブジェクトの下に貼り付けます。レイアウトは次のようになります。

図31-14 F_CUSTOMER_NAME1が追加されたペーパー・レイアウト・ビューの一部

9. キーボードの[Ctrl]を押しながら[C]を押した後、[Ctrl]を押しながら[V]を押す操作を2回行い、F_CHECK_NOのコピーを2つ作成します。

注意:

このフィールドは小さいので、見つけにくい場合があります。オブジェクト・ナビゲータを使用すると、このフィールドを見つけて選択できます。オブジェクト・ナビゲータの「ペーパー・レイアウト」でフィールドをクリックすると、対応するフィールドがペーパー・レイアウト・ビューでも選択されます。

10. これら2つの新しいフィールドを、他のレイアウト・オブジェクトの下に配置します。レイアウトは次のようになります。

図31-15 F_CHECK_NO1およびF_CHECK_NO2が追加されたペーパー・レイアウト・ビューの一部

注意:

2つの新しいフィールド(F_CHECK_NO1およびF_CHECK_NO2)のサイズを拡張して見やすくしましたが、これらのフィールドのサイズは変更する必要はありません。

11. ツール・パレットの「フィールド」ツールをクリックします。

12. 他のレイアウト・オブジェクトの下に約5インチ(12.5センチメートル)の長さのフィールドを描画します。レイアウトは次のようになります。

図31-16 F_1フィールドが追加されたペーパー・レイアウト・ビューの一部

13. 新しいフィールド「F_1」を選択した状態で、ツール・パレットの「塗りつぶしカラー」ツールをクリックし、塗りなしを選択します。

14. ツール・パレットの「線カラー」ツールをクリックして、枠なしを選択します。

15. フィールド「F_1」をダブルクリックして、プロパティ・インスペクタを表示します。

16. 「名前」プロパティを「F_SPELLED_AMOUNT」に設定します。

17. 「フィールド」で、「ソース」プロパティを「SPELLED_AMOUNT」(第31.3.2項「データ・モデルでの式列の作成」で作成した式列)に設定します。

18. レポートを保存します。

31.5.4 空白の請求書イメージに合せた新規フィールドの再配置

この項の手順では、作成したフィールドをペーパー・デザイン・ビューで再配置する方法を説明します。提供されている空白の請求書イメージをガイドとして使用します。

1. ツールバーの「ペーパー・デザイン」ボタンをクリックして、ペーパー・デザイン・ビューにレポートを表示します。

注意:

別のビュー(ペーパー・レイアウト・ビュー、データ・モデル・ビューなど)がアクティブなときに「ペーパー・デザイン」ボタンをクリックすると、Reports Builderで問合せおよびレイアウトが実行されます。「ペーパー・デザイン」ボタンをクリックしたときにエラー・メッセージが表示された場合は、元のビューに戻り、変更内容を確認してください。レポートは、提供されているサンプル・レポートspellcash.rdfと常に比較できます。

レイアウト・オブジェクトと空白の請求書イメージは、次のように表示されます。

図31-17 請求書レポートのペーパー・デザイン・ビューの一部

注意:

プレビューでは、請求書レポートのようには見えません。この項の手順では、レポートが適切な請求書のように表示されるように、フィールドを移動する方法を説明します。

2. ペーパー・デザイン・ビューで、空白の請求書イメージ内のAmountボックスに、「F_ORDER_TOTAL」フィールドを配置します。

注意:

Reports Builderを閉じた後、このレポートの作成に戻る場合は、ペーパー・デザイン・ビューでフィールドを移動できるように、ツールバーの「フレックス・オフ」ボタンを必ずクリックしてください。

3. ツールバーの「右に整列」ボタンをクリックします。請求書のこの部分は次のようになります。

図31-18 空白の請求書の「Amount」領域

4. 空白の請求書の「Check No.」ボックスに「F_CHECK_NO」フィールドを配置し、テキストを中央揃えにします。

5. 空白の請求書の「Date」ボックスに「F_ORDER_DATE」フィールドを配置し、テキストを中央揃えにします。

6. 請求書イメージの右上隅に「F_CHECK_NO2」フィールドを配置し、テキストを右詰めにします。

7. 空白の請求書イメージの「Pay Exactly:」テキストの横に「F_SPELLED_AMOUNT」フィールドを配置します。

8. 空白の請求書イメージの「Pay To The Order Of:」テキストの横に「F_CUSTOMER_NAME」フィールドを配置します。
請求書は次のようになります。

図31-19 フィールド配置後の請求書イメージ

9. レポートを保存します。

31.5.5 請求書のルック・アンド・フィールの変更

この項の手順では、請求書データのフォント、位置合せおよび書式設定を変更する方法を説明します。

請求書のルック・アンド・フィールを変更するには:

1. ペーパー・デザイン・ビューで、「編集」→「すべて選択」を選択します(または[Ctrl]を押しながら[A]を押します)。

2. 「書式」→「フォント」を選択します。

3. 「フォント」ダイアログ・ボックスで、「Arial」フォント、標準スタイル、サイズ「10」を選択し、「OK」をクリックします。

4. ペーパー・デザイン・ビューで任意の場所をクリックし、すべてのオブジェクトの選択を解除します。

ヒント:

オブジェクトを選択解除できない場合は、オブジェクト・ナビゲータで任意の項目をクリックします。オブジェクト・ナビゲータで選択されていたオブジェクトが、選択解除されます。

5. ペーパー・デザイン・ビューで、「F_CHECK_NO2」(請求書の右上隅の請求書番号)をクリックして、フォントを「Arial」、「太字」、「12」ポイントに変更します。

6. 「F_ORDER_TOTAL」フィールド(請求書の「Amount」ボックスの数値)をクリックします。

7. ツールバーの「通貨」ボタンをクリックし、「カンマ」ボタンをクリックします。

8. 「F_ORDER_TOTAL」が選択されている状態で、ツールバーの「10進桁を追加」ボタンを2回クリックします。「Amount」には$46,257.00ように表示されます。

9. 「ツール」→「プロパティ・インスペクタ」を選択し、「F_ORDER_TOTAL」のプロパティ・インスペクタを表示します。

10. 「書式マスク」プロパティの横の「フィールド」で、既存の書式マスクの先頭に"****"を追加し、プロパティ・インスペクタを閉じます。
「Amount」には、****$46,257.00のように表示されます。

11. [Shift]を押しながら「F_CUSTOMER_NAME」フィールドおよび「F_SPELLED_AMOUNT」フィールドをクリックして選択し、フォントを「Times New Roman」、「12」ポイントに変更します。
レポートの表示は次のようになります。

図31-20 書式設定後の請求書

注意:

もう1つのボイラープレート・テキストがまだイメージ上に重ねて配置されています。このテキストについては、この章の後述の手順で再配置します。

12. レポートを保存します。

31.6 支払い情報および注文詳細情報を備えた請求書のスタブの作成

請求書印刷レポートを作成する場合は、請求書の支払い情報や注文詳細情報が含まれる請求書のスタブを作成することもあります。この項の手順では、支払先、金額、日付、請求書番号などの支払い情報が含まれる請求書のスタブを作成する方法を説明します。

次に、データ・モデル内の2番目の問合せで取得した情報を使用して、単純な表形式レポートを請求書のスタブに出力し、請求書に関連する注文情報を表示します。

31.6.1 ペーパー・デザイン・ビューでの請求書のスタブの作成

この項の手順では、ペーパー・デザイン・ビューのツールを使用して請求書レポートのスタブを作成する方法を説明します。前述の項で作成したフィールドを再配置して、レポートを実行するたびに各請求書の対応するスタブが表示されるようにします。

また、ペーパー・デザイン・ビューで基準線を作成し、請求書レポート内のデータとスタブ情報を簡単に整列できるようにします。

請求書のスタブを作成するには:

1. ツールバーの「フレックス・オフ」ボタンをクリックします。

2. 左側の垂直定規をクリックしてマウスを右にドラッグし、線がテキスト"Pay Exactly"に揃うようにします。

3. マウス・ボタンを放すと、次の図のように基準線が表示されます。

図31-21 水平基準線が付いた請求書レポートのペーパー・デザイン・ビューの一部

注意:

前述の図で、"Pay Exactly"の右側に表示されている黒の破線が基準線です。

4. 「Order No.」ボイラープレート・オブジェクト(請求書の左上隅)をクリックし、それを新しい基準線に沿って配置し、次のように請求書イメージの下3.25インチ(8.5センチメートル)の位置になるようにします。

図31-22 「Order No.」ボイラープレート・テキストが付いた請求書のペーパー・デザイン・ビューの一部

5. 最初の基準線の横に整列されるもう1つの垂直基準線を作成します。

6. 「F_ORDER_ID」フィールド(前述の図では2354が表示されているフィールド)をクリックし、それを次のように「Order No.」フィールドの横に配置します。

図31-23 ペーパー・デザイン・ビューの「Order No.」フィールドと「F_ORDER_ID」フィールド

注意:

オブジェクト・ナビゲータで「ペーパー・レイアウト」→「メイン・セクション」→「ボディ」を選択すると、いつでもフィールドを選択できます。これらのフィールドは、選択された状態でペーパー・デザイン・ビューに表示されます。

7. ここで、「Order Date」ボイラープレート・テキストをクリックし、それを次のように「Order No.」の真下に配置します。

図31-24 ペーパー・デザイン・ビューの「Order Date」フィールド

8. オブジェクト・ナビゲータで「F_ORDER_DATE1」フィールド(「F_ORDER_DATE」フィールドから作成したコピー)を見つけ、それをクリックして、次のように「Order Date」ボイラープレート・テキストの横に配置します。

図31-25 「Order Date」テキストの横の「F_ORDER_DATE1」フィールド

9. 「Order Total」ボイラープレート・テキストを「Order Date」ボイラープレート・テキストの真下に配置します。

10. 「F_ORDER_TOTAL1」フィールドを「Order Total」ボイラープレート・テキストの真下に配置します。

11. 「Check No.」ボイラープレート・テキストを「Order Total」ボイラープレート・テキストの真下に配置します。

12. 「F_CHECK_NO1」フィールドを「Check No.」ボイラープレート・テキストの真下に配置します。
請求書のスタブは次のようになります。

図31-26 ペーパー・デザイン・ビューでの請求書のスタブの一部

13. 日付、金額、請求書番号を含むボックスに揃えて、2本の垂直基準線をまた作成します。基準線は、次のようになります。

図31-27 ペーパー・デザイン・ビューの2本目の垂直基準線

注意:

この基準線を作成するには、左側の定規をクリックし、線が日付、請求書番号、金額を含むボックスの左側に揃うまでマウスをドラッグします。

14. 「Customer」ボイラープレート・テキストをクリックして配置し、次のように2本目の基準線と垂直方向が揃い、「Order No.」テキストと水平方向(3.25インチ(8.5センチメートル)の位置)が揃うようにします。

図31-28 ペーパー・デザイン・ビューの「Customer」フィールド

15. 「F_CUSTOMER_NAME1」フィールドを「Customer」ボイラープレート・テキストの横に配置します。これらのレイアウト・オブジェクトは次のようになります。

図31-29 「Customer」フィールドと「F_CUSTOMER_NAME1」フィールド

ヒント:

「F_CUSTOMER_NAME1」フィールドがスペースに収まらない場合は、フィールドのサイズを変更する必要もあります。この場合、該当するフィールドを選択して、顧客名(Harrison Sutherland)用の領域を十分に確保しながら、右中央のサイズ変更ハンドルを左にドラッグします。

16. 「F_C_STREET_ADDRESS」フィールドを「F_CUSTOMER_NAME1」の真下に配置します。

17. 「F_C_CITY」を「F_C_STREET_ADDRESS」の真下に配置します。

18. 「F_C_STATE_PROVINCE」フィールドを「F_C_CITY」の横に配置します。

19. 「F_C_POSTAL_CODE」フィールドを「F_C_STATE_PROVINCE」の横に配置します。

20. 「F_C_COUNTRY_ID」フィールドを「F_C_POSTAL_CODE」の横に配置します。

21. 「F_CUSTOMER_ID」フィールドを「F_C_CITY」の真下に配置します。

22. 「Customer No.」ボイラープレート・テキスト(B_CUSTOMER_ID)を「F_CUSTOMER_ID」フィールドのすぐ左に配置します。請求書のスタブのこの部分は次のようになります。

図31-30 ペーパー・デザイン・ビューでの請求書のスタブの一部

23. ここで、追加した情報を書式設定します。請求書のスタブ内の次のボイラープレート・テキスト・オブジェクトを選択します。

- Order No.

- Order Date

- Order Total

- Check No.

- Customer

- Customer No.

24. フォントを「太字」に変更し、テキストを右詰めにします。

25. 「F_ORDER_TOTAL1」ボタンをクリックし、ツールバーの「通貨」ボタンと「カンマ」ボタンをクリックします。

26. ツールバーの「10進桁を追加」ボタンを2回クリックします。
請求書のスタブは次のようになります。

図31-31 書式設定後の請求書のスタブ

27. レポートを保存します。

31.6.2 請求書のスタブへの注文詳細情報の追加

前述の項では、支払い情報(請求書自体に記載されている情報のコピー)を表示する請求書のスタブを作成しました。この項の手順では、単純な表形式レポートを作成して、請求書のスタブに注文詳細情報を追加する方法を説明します。レポート・ブロック・ウィザードで単純な表形式レポートを作成してから、ペーパー・デザイン・ビューでデータを書式設定します。

注文詳細情報を追加するには:

1. ペーパー・レイアウト・ビューで、ツール・パレットの「レポート・ブロック」ツールをクリックします。

2. 新規レイアウトの四角形領域をドラッグして、レポート・ブロック・ウィザードを表示します。

3. レポート・ブロック・ウィザードの「スタイル」ページで、「表」を選択して「次へ」をクリックします。

4. 「グループ」ページで、「使用可能グループ」リストの「G_LINE_ITEM_ID」をクリックし、「下」をクリックして印刷方向を指定し、「表示グループ」リストに移動し「次へ」をクリックします。

5. 「フィールド」ページで、「使用可能フィールド」リストの次の各フィールドをクリックし、「>」ボタンをクリックしてそれらのフィールドを「表示フィールド」リストに移動して、「次へ」をクリックします。

- LINE_ITEM_ID

- PRODUCT_ID

- PRODUCT_NAME

- UNIT_PRICE

- QUANTITY

6. 「ラベル」ページで、ラベルとフィールド幅を次のように変更し、「次へ」をクリックします。

フィールド

ラベル

幅

LINE_ITEM_ID

Line

2

PRODUCT_ID

Product ID

4

PRODUCT_NAME

Product Name

40

UNIT_PRICE

Unit Price

4

QUANTITY

Quantity

4

7. 「テンプレート」ページで、「テンプレートなし」を選択し、「終了」をクリックして、ペーパー・レイアウト・ビューでレポート・レイアウトを表示します。新しいフィールドおよびレイアウト・オブジェクトは、元のレイアウト・オブジェクトの下に表示されます。

8. ペーパー・レイアウト・ビューで、新しいフィールドおよびレイアウト・オブジェクトが繰返し枠R_G_ORDER_ID内にあり、すべてのレイアウト・オブジェクトが単一ページ(8.75インチ内(22センチメートル))に収まっていることを確認します。

9. ツールバーの「ペーパー・デザイン」ボタンをクリックし、レポートを実行してペーパー・デザイン・ビューに表示します。次の例のようになります。

図31-32 請求書印刷レポート(注文詳細情報の書式は未設定)

新しいレポート・ブロックは書式設定されていないので、レポートの他の部分のようにデータを書式設定します。

10. [Shift]を押しながら次の新しい各ラベルをクリックし、ツールバーの太字ボタンをクリックして、フォントを「Arial」の「10」ポイントに変更します。

- Line

- Product ID

- Product Name

- Unit Price

- Quantity

11. 「Line」(F_LINE_ITEM_ID)の下にあるデータをクリックし、ツールバーの「中央に整列」ボタンをクリックします。

12. 「Unit Price」(F_UNIT_PRICE)の下にあるデータをクリックし、ツールバーの「右に整列」ボタンをクリックします。

13. データが選択されている状態で、ツールバーの「通貨」ボタン、「カンマ」ボタンをクリックし、「10進桁を追加」ボタンを2回クリックします。

14. 右側のサイズ変更ハンドルをクリックし、データ・フィールドの右の境界線と「Unit Price」ラベルを揃えます。

15. 「Quantity」(F_QUANTITY)の下にあるデータをクリックし、ツールバーの「右に整列」ボタンをクリックしてから、データ・フィールドの右の境界線が「Quantity」ラベルと揃うようにフィールドをサイズ変更します。

16. レポートを保存します。
レポートは次のようになります。

図31-33 最終的な請求書レポート(スペル表記された金額とスタブを含む)

注意:

提供されているサンプル・レポートspellcash.rdfと結果を比較することもできます。

31.7 サマリー

おめでとうございます。請求書の金額がスペル表記され、スタブに支払いおよび注文の詳細情報が出力されるレポートは、正常に作成されました。この章で学習した内容は次のとおりです。

- レポート・ウィザードで単純なレポート定義を作成する。

- ペーパー・レイアウト・ビューのツールで、空白の請求書イメージをインポートし、レポートにフィールドを追加する。

- 数値をスペル表記して返すPL/SQLファンクションを作成する。

- PL/SQLファンクションに基づく式列を作成する。

- データ・モデル・ビューのツールで、2つの問合せをリンクする。

- ペーパー・デザイン・ビューのツールで、請求書印刷レポートを書式設定し、適切な請求書で出力する。

- 請求書の情報の複製を表示するスタブを作成する。

- レポート・ブロック・ウィザードで、請求書のスタブに注文詳細情報を表示する単純な表形式レポートを作成する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

32 印刷済フォームを使用したレポートの作成

この章では、印刷済フォームに出力するレポートについて学習します。この章の手順に従うと、図32-1に示すレポート出力を生成できます。

図32-1 印刷済フォームへのレポートの印刷

概要

ペーパー・レイアウト・ビューおよびペーパー・デザイン・ビューの各種ツールを使用すると、レポートをフォーマットして印刷済フォームに印刷できます。

注意:

この例の多くの概念は、次のサンプル・レポートで使用されています。

- この例では、コンピュータで読込み可能なバージョンのフォームを使用できない場合に、印刷済フォームでレポートを印刷するためのフォーマット方法を学習します。このようなレポートは、フォームの正確な位置にデータが印刷されるように設計する必要があります。

- 第31章「金額がスペル表記された請求書印刷レポートの作成」では、請求書のイメージをインポートし、ペーパー・レイアウト・ビューでそれをガイドとして使用して、フィールドを配置します。また、数値をスペル表記して返すPL/SQLファンクションの作成方法も学習します。

- 第33章「請求書レポートの作成」では、請求書のイメージをインポートし、ペーパー・レイアウト・ビューでそれをガイドとして使用して、フィールドを配置します。

データ・リレーションシップ

このレポートでは、マスター/ディテール・リレーションシップでリンクされた2つの問合せを使用します。ディテール・グループでは1つのブレーク、マスター・グループでは2つのサマリー列を作成します。

レイアウト

このレポートは、メール・ラベル・フォーマットと表形式フォーマットの2つのデフォルト・レイアウトで構成されます。フィールドをページの正確な位置に移動し、マスター繰返し枠が各フォームで1回表示されるように制限します。

使用例

この例では、コンピュータで読込み可能なバージョンのフォームを使用できない場合に、印刷済フォームにレポートを印刷するためのフォーマット方法を学習します。このようなレポートは、フォームの正確な位置にデータが印刷されるように設計する必要があります。このサンプル・レポートのデータは、フォーマットされ、印刷済の販売注文書の対応するフィールドにすべての値が正確に収まります。フォームのページは、標準サイズの8.5×11インチ(21.6センチメートル×27.9センチメートル)です。ページ上部の領域には、従業員名と顧客名および住所を表示する必要があります。注文品目の詳細情報は、40文字しか表示できません。40文字を超えた部分は、フォームの次のページに出力されます。この例の最後では、ページ番号を追加します。ただし、フォームによってはページ番号が不要なため、該当の項はオプションです。

注意:

この例で使用するフォームの寸法は、前述のとおりです。オンラインで接続できない場合や、コンピュータで読込み可能なバージョンの印刷済フォームを使用できない場合は、フォームの寸法を自分で測定し、後述の手順に従ってレポート定義を独自に作成する必要があります。

このサンプル・レポートの作成過程では、次を行います。

- 2つの問合せを手動作成するための、データ・モデル・ビューのツールを使用したレポートのデータ・モデルの手動作成。また、2つの問合せのリンク、ブレーク・グループの作成および2つのサマリー列の作成。

- ペーパー・レイアウト・ビューのツールを使用したレポートのレイアウトの作成。また、レポート・ブロック・ウィザードを使用した、レポートのメール・ラベル部分と、注文詳細情報を表示する表形式レポートの作成。

- 書式マスクを追加しレポートの外観を調整するための、ペーパー・デザイン・ビューのツールを使用したペーパー・デザイン・ビューでのレポートのフォーマット。

- ページ番号付けフィールドを追加するための、ペーパー・レイアウト・ビューのツールを使用したページ番号の追加(オプション)。

印刷済フォームを使用するレポートのサンプルを表示するには、サンプル・フォルダpreprintを開き、Oracle Reportsのサンプルpreprint.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

32.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のOrder Entryサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

32.2 レポートのデータ・モデルの手動作成

この項の手順では、レポートのデータ・モデルを手動で作成する方法を説明します。データ・モデルは、2つのリンクされた問合せで構成されます。最初の問合せでは、データベースに注文が格納されている顧客をすべて取得します。2番目の問合せでは、各顧客の注文情報をすべて取得し、各注文の日付に基づいたブレーク・グループを設定します。

32.2.1 問合せの作成

この項の手順では、データ・モデル・ビューで2つの問合せを手動で作成する方法を説明します。

問合せを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「新規レポートを手動で作成」を選択して「OK」をクリックします。

3. 表示されたデータ・モデル・ビューで、ツール・パレットの「SQL問合せ」ツールをクリックし、データ・モデル・ビューの空き領域をクリックして、「SQL問合せ文」ダイアログ・ボックスを表示します。

4. 「SQL問合せ文」フィールドに、次のSELECT文を入力します。

SELECT FIRST_NAME||' '||LAST_NAME EMPLOYEE_NAME
, CUST_FIRST_NAME||' '||CUST_LAST_NAME CUSTOMER_NAME
, CUST_ADDRESS
, CUSTOMER_ID
FROM EMPLOYEES, CUSTOMERS
WHERE EMPLOYEE_ID = ACCOUNT_MGR_ID
AND CUSTOMER_ID IN (SELECT UNIQUE(CUSTOMER_ID) FROM ORDERS)
ORDER BY LAST_NAME, CUST_LAST_NAME

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルpreprint_code.txtからコードをコピーして「SQL問合せ文」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「SQL問合せ文」フィールドにコードを入力します。

5. 「OK」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第32.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

6. 「接続」ダイアログ・ボックスが表示されたら、サンプル・スキーマOrder Entryが格納されているデータベースへの接続情報を入力し、「接続」をクリックします。
問合せがデータ・モデル・ビューに次のように表示されます。

図32-2 最初の問合せのデータ・モデル・ビュー

7. 問合せ(Q_1)を右クリックし、ポップアップ・メニューで「プロパティ・インスペクタ」を選択します。

8. プロパティ・インスペクタの「一般情報」で、「名前」プロパティを「Q_CUSTOMER」に設定します。

9. グループ(G_EMPLOYEE_NAME)をダブルクリックしてプロパティ・インスペクタを表示し、「名前」プロパティを「G_CUSTOMER」に設定します。

10. データ・モデル・ビューでツール・パレットの「SQL問合せ」ツールをクリックし、次のSELECT文で2番目の問合せを作成します。

SELECT to_char(ORDER_DATE, 'DD-Mon-YY') ORDER_DATE
, I.PRODUCT_ID
, PRODUCT_DESCRIPTION
, QUANTITY
, UNIT_PRICE
, QUANTITY * UNIT_PRICE ITEM_TOTAL
, CUSTOMER_ID
FROM ORDERS O, ORDER_ITEMS I, PRODUCTS P
WHERE O.ORDER_ID = I.ORDER_ID
AND I.PRODUCT_ID = P.PRODUCT_ID
ORDER BY ORDER_DATE, I.PRODUCT_ID

11. 問合せオブジェクトを右クリックし、ポップアップ・メニューで「プロパティ・インスペクタ」を選択します。

12. プロパティ・インスペクタで、「名前」プロパティを「Q_ORDERS」に設定します。

13. 新しいグループ・オブジェクトをダブルクリックして、プロパティ・インスペクタを表示します。

14. プロパティ・インスペクタで、「名前」プロパティを「G_ORDER_ITEMS」に設定します。
作成したデータ・モデルは次のようになります。

図32-3 問合せが2つ表示されたデータ・モデル・ビュー

注意:

Q_CUSTOMERでは、2番目のWHERE句によって、現在注文のある顧客にのみ値が返されるように制限しています。Q_ORDERSでは、新しいデータ型Datetimeに対応するto_charを使用しています。この新しいデータ型はOracle Reportsでは認識されないため、この列に対しては書式マスクをまだ使用できません。

15. レポートをpreprint_your_initials.rdfという名前で保存します。

32.2.2 データ・モデルの変更

この項の手順では、データ・モデルを変更して2つの問合せをリンクし、取得したデータを特定の列でブレークする方法を説明します。また、各注文の情報を計算するサマリー列も複数作成します。

データ・モデルを変更するには:

1. データ・モデル・ビューで、ツール・パレットの「データ・リンク」ツールをクリックします。

2. G_Customerグループの「CUSTOMER_ID」列をクリックします。

3. マウス・ボタンを押したままG_ORDER_ITEMSグループの「CUSTOMER_ID1」列までカーソルをドラッグしてマウス・ボタンを放し、2つの問合せ間にリンクを作成します。

4. ここで、G_ORDER_ITEMSグループの「ORDER_DATE」列をクリックし、それをグループの上にドラッグして、ブレーク・グループを作成します。

ヒント:

グループまたは問合せのタイトルを選択して、サイズ変更ハンドルを使用すると、データ・モデルの外観を変更できます。

作成したデータ・モデルは次のようになります。

図32-4 リンクされた問合せとブレーク・グループが表示されたデータ・モデル・ビュー

5. ツール・パレットの「サマリー列」ツールをクリックし、「G_CUSTOMER」グループ内をクリックしてサマリー列を作成します。サマリー列が表示されるように、グループのサイズを変更することもできます。

6. 新しいサマリー列オブジェクト(CS_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「CS_PAGE_TOTAL」に設定します。

- 「サマリー」で、「ファンクション」プロパティを「合計」、「ソース」プロパティを「ITEM_TOTAL」、「リセット位置」プロパティを「Page」に設定します。

7. G_CUSTOMERグループで別のサマリー列を作成し、そのプロパティを次のように設定します。

- 「一般情報」で、「名前」プロパティを「CS_ORDER_TOTAL」に設定します。

- 「サマリー」で、「ファンクション」プロパティを「合計」、「ソース」プロパティを「ITEM_TOTAL」、「リセット位置」プロパティを「G_CUSTOMER」に設定します。

注意:

これら2つのサマリー列では、各ページの品目総数とレポートの注文の品目総数を計算します。

次のようなデータ・モデルが作成されました。

図32-5 印刷済フォームのデータ・モデル・ビューの例

8. レポートを保存します。

32.3 レポートのレイアウトの作成

この項の手順では、印刷済フォームの適切な位置にオブジェクトを表示するレイアウトを作成する方法を説明します。最初に、レポートのマージンを調整し、顧客の住所情報を各ページの上部に表示するメール・ラベル部分を作成します。次に、レポートの本体を作成します。レポートの本体には、日付、注文番号、説明、数量、品目単価および金額合計を表示する注文情報が含まれます。

32.3.1 レポート・レイアウトの設定

レイアウト・オブジェクトを追加する前に、レイアウトのマージンを調整する必要があります。

レイアウトを設定するには:

1. ツールバーの「ペーパー・レイアウト」ボタンをクリックして、レポートのペーパー・レイアウト・ビューを表示します。

2. レイアウト・オブジェクトを操作しやすくするには、ペーパー・レイアウト・ウィンドウのサイズを拡張します。

3. ツールバーの「マージン編集」ボタンをクリックして、レイアウトのマージン部分を表示します。

4. サイズ変更ハンドルを使用し、フォームの寸法に合せてマージン(黒の実線バー)のサイズを調整します。この例で使用するフォームのサイズは8.5インチ×11インチ(21.6センチメートル×27.9センチメートル)です。したがって、マージンを横8.5インチ(21.6センチメートル)、縦11インチ(27.9センチメートル)まで拡張します。

ヒント:

隅のサイズ変更ハンドルを使用して、マージンのサイズを調整できます。

5. ツールバーの「マージン編集」ボタンを再度クリックして、レイアウトの本体に戻ります。
これで、レポート・レイアウトを作成する準備ができました。

32.3.2 フォームの住所ラベルの作成

この項では、レポート・ブロック・ウィザードを使用して、印刷済フォームの住所セクションのメール・ラベルを作成します。

住所ラベルを作成するには:

1. ペーパー・レイアウト・ビューで、ツール・パレットの「レポート・ブロック」ツールをクリックします。

2. ペーパー・レイアウト・ビューの境界線に沿った定規を使用して、左から1インチ(2.5センチメートル)、上から0.25インチ(0.5センチメートル)の位置から、左から6インチ(15センチメートル)、上から1.25インチ(3センチメートル)の位置まで、四角形をドラッグします。マウス・ボタンを放すと、レポート・ブロック・ウィザードが表示されます。

3. レポート・ブロック・ウィザードの「スタイル」ページで、「メール・ラベル」を選択して「次へ」をクリックします。

4. 「グループ」ページで、「使用可能グループ」リストの「G_CUSTOMER」をクリックし、「下」をクリックして印刷方向を指定し、「表示グループ」リストに移動し「次へ」をクリックします。

5. 「メール・ラベル・テキスト」フィールドの適切な列とボタンをクリックしてメール・ラベルを作成します(たとえば、「使用可能フィールド」リストの「EMPLOYEE_NAME」をクリックし、「>」と「新規行」をクリックします)。この場合、「メール・ラベル・テキスト」フィールドは次のようになります。

&<EMPLOYEE_NAME>
&<CUSTOMER_NAME>
&<C_STREET_ADDRESS>
&<C_CITY>, &<C_STATE_PROVINCE> &<C_POSTAL_CODE>

注意:

メール・ラベル・レポートの作成の詳細は、第6章「メール・ラベル・レポートの作成」を参照してください。

6. 「次へ」をクリックします。

7. 「テンプレート」ページで、「テンプレートなし」を選択し、「終了」をクリックして、ペーパー・レイアウト・ビューにレポート・レイアウトを表示します。次の例のようになります。

図32-6 初期レイアウトのペーパー・レイアウト・ビュー

8. 作成した領域は、ボイラープレート・オブジェクトB_TBPです。このオブジェクトが選択されている状態でオブジェクト・ナビゲータを表示し、新しいボイラープレート・オブジェクトを確認してください。

図32-7 オブジェクト・ナビゲータでのレポート・ブロックのボイラープレート・オブジェクト

9. このオブジェクトが選択されている状態で、「ツール」→「プロパティ・インスペクタ」を選択し、プロパティ・インスペクタを表示します(またはこのオブジェクトを右クリックして「プロパティ・インスペクタ」を選択します)。

10. プロパティ・インスペクタの「標準レイアウト」で、「水平拡張度」プロパティを「可変」に設定します。これにより、メール・ラベル・テキスト用に適切な領域が確保されます。

11. レポートを保存します。

32.3.3 レポートへの注文品目詳細情報の追加

この項では、各メール・ラベルに表示される顧客に該当する注文品目および詳細情報を表示するレポート・ブロックを追加します。これらの品目および詳細情報は、印刷済フォームに必須です。

レポートに注文品目詳細情報を追加するには:

1. 第32.3.2項「フォームの住所ラベルの作成」で作成したボイラープレート・オブジェクト(B_TBP)を囲む繰返し枠「R_G_CUSTOMER」をオブジェクト・ナビゲータでクリックします。

2. ペーパー・レイアウト・ビューで「R_G_CUSTOMER」が選択されている状態で、隅のサイズ変更ハンドルを使用し、印刷済フォーム(この例では、横8.5インチ(21.6センチメートル)、縦11インチ(27.9センチメートル))のサイズにあわせて繰返し枠のサイズを調整します。枠が単一ページの境界線を超えないように注意してください。

3. ツール・パレットの「レポート・ブロック」ツールをクリックします。

4. 定規をガイドとして使用して、左から0.25インチ(0.5センチメートル)、上から1.5インチ(4センチメートル)の位置から、左から8.25インチ(21センチメートル)、上から2インチ(5センチメートル)の位置まで、領域をドラッグします。マウス・ボタンを放すと、レポート・ブロック・ウィザードが表示されます。

5. レポート・ブロック・ウィザードの「スタイル」ページで、「グループ左」を選択して「次へ」をクリックします。

6. 「グループ」ページで、「使用可能グループ」リストの次の各グループをクリックし、「下」をクリックして印刷方向を指定し、「表示グループ」リストに移動し「次へ」をクリックします。

- G_ORDER_DATE

- G_ORDER_ITEMS

7. 「フィールド」ページで、「使用可能フィールド」リストの次の各フィールドをクリックし、「>」ボタンをクリックして「表示フィールド」リストに移動し、「次へ」をクリックします。

- ORDER_DATE

- PRODUCT_ID

- PRODUCT_DESCRIPTION

- QUANTITY

- UNIT_PRICE

- ITEM_TOTAL

8. 「ラベル」ページで、ラベル名を削除し(印刷済フォームでは不必要なため)、幅を次のように調整して、「次へ」をクリックします。

フィールドと合計

ラベル

幅

ORDER_DATE

<なし>

9

PRODUCT_ID

<なし>

8

PRODUCT_DESCRIPTION

<なし>

40

QUANTITY

<なし>

4

UNIT_PRICE

<なし>

8

ITEM_TOTAL

<なし>

10

注意:

幅の値は、印刷済フォーム上で利用可能なスペースを基準にしています。

9. 「テンプレート」ページで、「テンプレートなし」を選択し、「終了」をクリックして、ペーパー・レイアウト・ビューにレポート・レイアウトを表示します。次の例のようになります。

図32-8 印刷済フォームのペーパー・レイアウト・ビューの例(メール・ラベルと注文品目詳細情報を含む)

10. レポートを保存します。

32.3.4 レイアウトの調整とサマリーの追加

レポートに表示する要素を追加したので、レイアウトを設定して、印刷済フォームに必要なレコードのみが各ページに表示され、フォーム上の利用可能なスペースに正確な量の情報が表示されるようにします。また、このフォームでは、各ページのサマリーをページの同じ場所に表示する必要があります。

レイアウトを調整しページ・サマリーを追加するには:

1. オブジェクト・ナビゲータで、「M_G_ORDER_ITEMS_GRPFR」をクリックします(次の図を参照)。

図32-9 オブジェクト・ナビゲータで選択された枠

2. ペーパー・レイアウト・ビューでも、同じオブジェクトが選択されます(次の図を参照)。

図32-10 ペーパー・レイアウト・ビューで選択された繰返し枠

3. オブジェクト・ナビゲータで、「M_G_ORDER_ITEMS_GRPFR」の横のプロパティ・アイコンをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「標準レイアウト」で「垂直拡張度」プロパティを「固定」に設定し、注文品目の表示にこの領域のみを使用するようにします。

4. オブジェクト・ナビゲータで、「R_G_CUSTOMER」の横のプロパティ・アイコンをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「繰返し枠」で「ページ当たりの最大レコード数」プロパティを「1」に設定し、各ページで1名の顧客の情報のみを印刷するようにします。

5. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードの横のビュー・アイコンをダブルクリックして、ペーパー・レイアウト・ビューを表示します。

6. ペーパー・レイアウト・ビューで、ツール・パレットの「フィールド」ツールをクリックします。

7. 左から7インチ(18センチメートル)、上から10.25インチ(26センチメートル)の位置から、左から8インチ(20センチメートル)、上から10.5インチ(27センチメートル)の位置まで、領域をドラッグします。

注意:

このフィールドと次に作成する2番目のフィールドは、繰返し枠M_G_ORDER_DATE_GRPFR内に配置しないでください。これらのフィールドが同一ページに収まらない場合、繰返し枠のサイズを変更し、これらのフィールドが同一ページ上で繰返し枠の下に配置されるようにします。

8. 新しいフィールド・オブジェクト(F_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「F_PAGE_TOTAL」に設定します。

- 「フィールド」で、「ソース」プロパティを「CS_PAGE_TOTAL」(第32.2項「レポートのデータ・モデルの手動作成」で作成したサマリー列)に設定します。

9. 前述の手順に従ってペーパー・レイアウト・ビューのF_PAGE_TOTALの真下に別のフィールドを作成し、その「名前」プロパティを「F_ORDER_TOTAL」、「ソース」プロパティを「CS_ORDER_TOTAL」に設定します。

10. 新しいレイアウト・オブジェクトは、次のようになります。

図32-11 ペーパー・レイアウト・ビューの「F_PAGE_TOTAL」フィールドと「F_ORDER_TOTAL」フィールド

11. レポートを保存します。

32.4 ペーパー・デザイン・ビューでのレポートのフォーマット

この項の手順では、ペーパー・デザイン・ビューでレポートをプレビューし、ペーパー・デザイン・ビューの一連のツールを使用して最終的な微調整を行う方法を説明します。ペーパー・デザイン・ビューには実際のデータが表示されるので、レポートを仕上げる際には使用した方が便利です。

ペーパー・デザイン・ビューでレポートをフォーマットするには:

1. ツールバーの「ペーパー・デザイン」ボタンをクリックし、ペーパー・デザイン・ビューを表示します。

2. ペーパー・デザイン・ビューで、「F_PRODUCT_DESCRIPTION」フィールドをクリックします。

ヒント:

このフィールドが見つからない場合は、オブジェクト・ナビゲータでフィールド名を見つけ、それをクリックします。オブジェクト・ナビゲータで項目を選択すると、対応するオブジェクトがペーパー・デザイン・ビューでも選択されます。

3. フォーム上の該当領域のサイズにあわせて、このフィールドのサイズを可能なかぎり拡張します。

4. [Shift]を押しながら4つの数値フィールドをクリックして選択し、ツールバーの「右に整列」ボタンをクリックします。

5. ページの下部で、[Shift]を押しながら2つのフィールド(「F_PAGE_TOTAL」および「F_ORDER_TOTAL」)をクリックし、ツール・パレットの「線カラー」ツールをクリックして、「枠なし」を選択します。

6. [Shift]を押しながら右側の通貨に関する2つの数値フィールドをクリックします。

7. ツールバーの「通貨」ボタンをクリックして、金額にドル記号を付加します。

8. 「カンマ」ボタンをクリックして、999を超える数値にカンマを付加します。

9. 10進桁を追加ボタンを2回クリックして、数値に小数点以下2桁を追加します。

10. オブジェクト・ナビゲータで、[Shift]を押しながら次の3つのオブジェクトをクリックします。

- B_TBP

- F_ORDER_TOTAL

- F_PAGE_TOTAL

11. 「ツール」→「プロパティ・インスペクタ」を選択してプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「拡張レイアウト」で、「オブジェクトの印刷」プロパティを「全ページ」、「基本印刷オン」プロパティを「インクローズ・オブジェクト」に設定します。

12. ペーパー・デザイン・ビューで、印刷済フォームの寸法にあわせてフィールドのサイズを調整します。
レポートは次のようになります。

図32-12 印刷済フォーム・レポートの最終的なプレビュー

注意:

このレポートをさらに完成した形で表示するには、提供されているサンプル・レポートpreprint.rdfを開きます。このレポートを表示するには、レポートを開いてツールバーの「ペーパー・レイアウトを実行」ボタンをクリックします。

13. レポートをフォームに印刷すると、次のようになります。

図32-13 サンプルの印刷済フォームに印刷された最終的なレポート

注意:

ユーザーが作成したレポートのペーパー・デザイン・ビューは、上の図とは異なります。これは、提供されているサンプル・レポートをサンプルの印刷済フォームに印刷したものです。上の図は、そのフォームのスナップショットです。

14. レポートを保存します。

32.5 ページ番号の追加(オプション)

印刷済フォームによっては、ページ番号を印刷する必要があります。この項の手順では、注文品目の数が単一ページを超えたときに表示するページ番号を出力に追加する方法を説明します。

ページ番号をレポートに追加するには:

1. ツールバーの「ペーパー・レイアウト」ボタンをクリックして、ペーパー・レイアウト・ビューを表示します。

2. ツール・パレットの「フィールド」ツールをクリックします。

3. 左から6インチ(15センチメートル)、上から0.25インチ(0.5センチメートル)にある小さな領域を、左から7インチ(18センチメートル)、上から0.5インチ(1.5センチメートル)の位置までドラッグします。

4. 新しいフィールド・オブジェクトF_1をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「F_PAGE_NUMBER」に設定します。

- 「標準レイアウト」で、「水平拡張度」プロパティを「可変」に設定します。

- 「フィールド」で、「ソース」プロパティを「ページ番号」に設定し、「可視」プロパティを「いいえ」に設定します。「ページ番号付け」プロパティ・フィールドをクリックして、「ページ番号付け」ダイアログ・ボックスを表示します。

5. 「ページ番号付け」ダイアログ・ボックスで、次の操作を行います。

- 「ヘッダー・セクション」チェック・ボックスおよび「トレーラ・セクション」チェック・ボックスの選択を解除し、「メイン・セクション」チェック・ボックスが選択されていることを確認します。

- 「リセット位置」リストで、「R_G_Customer」をクリックします。

- 「OK」をクリックします。

6. ペーパー・レイアウト・ビューで、前述の手順に従って、(7.25, 0.25)から(8.25, 0.5)インチ((18.5, 0.5)から(21, 1.5)センチメートル)まで別のフィールドを作成します。

7. 新しいフィールド・オブジェクトをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「F_TOTAL_PAGES」に設定します。

- 「標準レイアウト」で、「水平拡張度」プロパティを「可変」に設定します。

- 「フィールド」で、「ソース」プロパティを「総ページ数」に設定し、「可視」プロパティを「いいえ」に設定します。「ページ番号付け」プロパティ・フィールドをクリックして、「ページ番号付け」ダイアログ・ボックスを表示します。

8. 「ページ番号付け」ダイアログ・ボックスで、次の操作を行います。

- 「ヘッダー・セクション」チェック・ボックスおよび「トレーラ・セクション」チェック・ボックスの選択を解除し、「メイン・セクション」チェック・ボックスが選択されていることを確認します。

- 「リセット位置」リストで、「R_G_Customer」をクリックします。

- 「OK」をクリックします。

これでページ番号フィールドが作成されたので、次にこれらのフィールドが表示されるようにします。

9. ペーパー・レイアウト・ビューで、ツール・パレットの「テキスト」ツールをクリックします。

10. 左から6インチ(15センチメートル)、上から1インチ(2.5センチメートル)にある領域を、左から8インチ(20センチメートル)、上から1.25インチ(3センチメートル)の位置までドラッグします。

11. 四角形の内部をクリックして、&<F_PAGE_NUMBER> of &<F_TOTAL_PAGES>と入力します。

注意:

"&<F_PAGE_NUMBER>"テキストでは、作成したばかりのサマリー・フィールドの現行値に置き換え、現行のページのページ番号を設定します。"&<F_TOTAL_PAGES>"テキストでは、同一名のサマリー・フィールドの値を使用して、レポートの現行の総ページ数に置き換えます。

12. テキスト・オブジェクトが選択されている状態で、「ツール」→「プロパティ・インスペクタ」を選択してプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「B_PAGE_NUMBERS」に設定します。

- 「拡張レイアウト」で、「オブジェクトの印刷」プロパティを「全ページ」、「基本印刷オン」プロパティを「インクローズ・オブジェクト」に設定します。

13. ペーパー・デザイン・ビューで、ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックしてレポートを実行し、レポートをペーパー・デザイン・ビューに表示します。
レポートは次のようになります。Reports Builderでこのレポートが1ページであることが計算され、注文詳細情報の上に"1 of 1"と表示されます。

図32-14 ページ番号が表示された印刷済フォーム・レポートのペーパー・デザイン・ビュー

14. レポートを保存します。

32.6 サマリー

おめでとうございます。印刷済フォームに印刷するレポートは正常に作成されました。この章で学習した内容は次のとおりです。

- 2つの問合せを手動で作成してそれらをリンクする。

- サマリー列を作成する。

- データ・モデルでブレーク・グループを作成する。

- ペーパー・レイアウト・ビューのツールでレイアウトを作成する。

- レポート・ブロック・ウィザードでメール・ラベル・レポートを作成する。

- レポート・ブロック・ウィザードで表形式レポートを作成する。

- ペーパー・レイアウト・ビューのフィールドを使用して、ページ番号を追加する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

33 請求書レポートの作成

この章では、請求書に出力するレポートについて学習します。この章の手順に従うと、図33-1に示すレポート出力を生成できます。

図33-1 請求書レポートの出力

概要

- 請求書レポートは、支払金額が条件付きで印刷されるマスター/ディテール・レポートです。顧客名や住所などの関連情報は、マスター問合せ(問合せが1つのみの場合はグループ)から取得されます。明細項目は、ディテール問合せから取得されます。支払金額は、ページのフッターに印刷されます。

- これらの情報はすべて、印刷済請求書フォーム上の特定の行および列位置に印刷する必要があります。これらの情報を正しくフォーマットするために、第32章「印刷済フォームを使用したレポートの作成」と同じ方法を多数使用します。

- このレポートをフォーマットする際の補助手段として、請求書のTIFFイメージにリンクします。これによって、フィールドをより正確に配置できます。

注意:

この例の多くの概念は、次のサンプル・レポートで使用されています。

- この例では、請求書のイメージをインポートし、ペーパー・レイアウト・ビューでそれをガイドとして使用し、フィールドを配置します。

- 第31章「金額がスペル表記された請求書印刷レポートの作成」では、請求書のイメージをインポートし、ペーパー・レイアウト・ビューでそれをガイドとして使用して、フィールドを配置します。また、数値をスペル表記して返すPL/SQLファンクションの作成方法も学習します。

- 第32章「印刷済フォームを使用したレポートの作成」では、コンピュータで読取り可能なバージョンのフォームを使用できない場合に、印刷済フォームでレポートを印刷するためのフォーマット方法を学習します。このようなレポートは、フォームの正確な位置にデータが印刷されるように設計する必要があります。

データ・リレーションシップ

このレポートのデータは、マスター/ディテール・リレーションシップでリンクされた2つの問合せを使用してフェッチします。また、ブレークと2つのサマリーを定義します。

レイアウト

このレイアウトは、印刷済フォーム・レポートのレイアウトに似ています。ただし、このレイアウトでは、フォームのTIFFイメージにリンクし、それをガイドとして使用して、複数のフィールドの位置を調整します。

使用例

この例では、請求書を顧客別に印刷するレポートを作成します。レポートには次の情報が含まれます。

- 名前、住所、日付、発注書番号などの標準的な支払情報

- 品目番号、説明、価格を含む購入品目のリスト

- すべての購入品目の合計額

印刷済フォームのイメージ(この場合、空白の請求書イメージ)をインポートする方法や、ペーパー・レイアウト・ビューのツールを使用してこのようなフォームでレポートを印刷する方法も学習します。

このサンプル・レポートの作成過程では、次を行います。

- 空のレポートを新規作成するための手動での新規レポートの作成

- データ・リンクが設定された2つの問合せを作成するためのデータ・リンクを含むデータ・モデルの作成

- 請求書に含めるサマリー列と式列の作成

- 請求書情報を挿入するためのレイアウトの準備

- 請求書情報用の新しいフィールドを作成し、請求書フォームの正しい位置に配置することによる請求書情報の挿入

請求書レポートのサンプルを表示するには、サンプル・フォルダinvoiceを開き、Oracle Reportsのサンプルinvoice.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

33.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のOrder Entryサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

33.2 手動での新規レポートの作成

この場合、データ・モデルとレイアウトを別々に作成した方が簡単です。したがって、まず空のレポートを作成してから、問合せを追加し、レイアウトを作成します。

空のレポートを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「新規レポートを手動で作成」を選択して「OK」をクリックします。

33.3 データ・リンクを含むデータ・モデルの作成

複数の問合せを使用するレポートを作成する場合、すべての問合せをデータ・モデル・ビューのデータ・ウィザードで作成する方が簡単です。このレポートでは、グループ間データ・リンクでリンクされた2つの問合せを作成します。

問合せを作成するには:

1. データ・モデル・ビューで、「挿入」→「問合せ」を選択してデータ・ウィザードを表示します。

2. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

3. 「問合せ」ページで、「問合せ名」にQ_Orderと入力し、「次へ」をクリックします。

4. 「データ・ソース」ページで、「SQL問合せ」を選択し、「次へ」をクリックします。

5. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT
ORDER_ID,
ORDER_DATE,
ORDER_TOTAL,
ORDERS.CUSTOMER_ID,
SALES_REP_ID,
C1.CUST_FIRST_NAME,
C1.CUST_LAST_NAME,
C1.CUST_ADDRESS,
C1.CUSTOMER_ID,
C2.CUST_FIRST_NAME,
C2.CUST_LAST_NAME,
C2.CUST_ADDRESS,
C2.CUSTOMER_ID
FROM ORDERS, CUSTOMERS C1, CUSTOMERS C2
WHERE ORDERS.CUSTOMER_ID = C1.CUSTOMER_ID AND
ORDERS.SALES_REP_ID = C2.CUSTOMER_ID

この問合せでは、Orders表をCustomers表に結合し、顧客情報と営業担当者情報を取得します。

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルinvoice_code.txtから、コードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

6. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第33.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

7. 「グループ」ページで「次へ」をクリックします。

8. 「終了」をクリックして、データ・モデル・ビューに最初の問合せを表示します。

9. 前述の手順を2番目の問合せにも繰り返しますが、この場合、問合せ名はQ_Itemとし、次のSELECT文を使用します。

SELECT
O.ORDER_ID,
O.LINE_ITEM_ID,
O.PRODUCT_ID,
O.QUANTITY,
O.UNIT_PRICE,
TRANSLATED_DESCRIPTION,
P.PRODUCT_ID,
O.QUANTITY * O.UNIT_PRICE
FROM ORDER_ITEMS O, PRODUCT_DESCRIPTIONS P
WHERE  O.PRODUCT_ID = P.PRODUCT_ID
AND P.LANGUAGE_ID = 'US'

この問合せでは、Orderの項目をProduct表に結合し、製品の説明を取得します。

10. データ・モデル・ビューで、G_ORDER_IDグループ(マスター問合せQ_ORDER用)のタイトル・バーをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「G_ORDER」に設定します。

11. G_ORDER_ID1グループ(ディテール問合せQ_ITEM用)のタイトル・バーをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「G_LIST」に設定します。

その結果、データ・モデルは次のようになります。

図33-2 データ・モデル・ビューの問合せ

データ・リンクを追加するには:

1. データ・モデル・ビューで、ツール・パレットの「データ・リンク」ツールをクリックします。

2. G_ORDERグループの「ORDER_ID」列をクリックし、G_LISTグループの「ORDER_ID1」列までドラッグします。G_ORDERグループの下からQ_Item問合せに線が描かれるのがわかります。ORDER_IDとORDER_ID1のラベルがこの線の両端に作成され、これらが、G_ORDERにQ_Itemをリンクさせる列であることが示されます。

33.4 サマリー列と式列の作成

小計額、合計額および支払期日用のサマリー列と式列を作成して、請求書に必要な情報を表示します。

請求書のサマリー列と式列を作成するには:

1. ツール・パレットの「サマリー列」ツールをクリックし、データ・モデル・ビューの空き領域をクリックしてサマリー列を作成します。

2. 新しいサマリー列オブジェクトをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「CS_SUB_TOTAL」に設定します。

- 「サマリー」で、「ソース」プロパティを「O_QUANTITY_O_UNIT_PRICE」、「リセット位置」プロパティを「Page」に設定します。

このサマリーは、請求書の各ページの小計額に使用します。

3. 「G_ORDER」グループをクリックし、下の境界線のハンドルを下にドラッグして、グループの下部に空白の領域を作成します。

4. ツール・パレットの「サマリー列」ツールを再度クリックして、「G_ORDER」グループ内の空白の領域をクリックし、2つ目のサマリー列を作成します。

5. 新しいサマリー列オブジェクトをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「CS_TOTAL」に設定します。

- 「サマリー」で、「ソース」プロパティを「O_QUANTITY_O_UNIT_PRICE」、「リセット位置」プロパティを「G_ORDER」に設定します。

このサマリーは、各請求書の合計額に使用します。

6. ツール・パレットの「式列」ツールをクリックし、データ・モデル・ビューの空き領域をクリックして式列を作成します。

7. 新しい式列オブジェクトをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「CF_DUE_DATE」に設定します。

- 「列」で、「データ型」プロパティを「Date」に設定します。

- 「プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。

8. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function CF_DUE_DATEFormula return Date is
today date;
begin
select sysdate into today from dual;
return today + 30;
end;

この式は、支払期日(本日から30日後)の計算に使用します。

9. 「コンパイル」をクリックします。

10. 「閉じる」をクリックします。
その結果、データ・モデルは次のようになります。

図33-3 データ・リンク、サマリー列および式列が表示されたデータ・モデル・ビュー

11. レポートをinvoice_your_initials.rdfという名前で保存します。

33.5 レイアウトの準備

請求書レポートのレイアウトを作成するには、請求書フォームのイメージをインポートし、そのイメージの上で適切なフィールドと枠を作成します。まず、請求書フォームを使用してレイアウトを設定する必要があります。

請求書レポートのレイアウトを準備するには:

1. ツールバーの「ペーパー・レイアウト」ボタンをクリックして、ペーパー・レイアウト・ビューを表示します。

2. ペーパー・レイアウト・ビューで、「挿入」→「イメージ」を選択し、提供されているファイルinvdemo.tifを選択します。イメージを、ペーパー・レイアウト・ビューの左上隅に配置します。

3. 新しいイメージ・オブジェクトをダブルクリックして、プロパティ・インスペクタを表示します。

4. プロパティ・インスペクタの「拡張レイアウト」で、「オブジェクトの印刷」プロパティを「全ページ」に設定します。

5. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードを開き、「メイン・セクション」の横のプロパティ・アイコンをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「セクション」で、「幅」プロパティを「11」、「高さ」プロパティを「8.5」に設定し、請求書イメージに合うように「方向」プロパティを「Landscape」に指定します。

6. ペーパー・レイアウト・ビューで、ツール・パレットの「繰返し枠」ツールをクリックし、請求書イメージの周囲に繰返し枠をドラッグして、イメージが繰返し枠の内側にぴったり収まるようにします。作成する繰返し枠は、このイメージ全体を覆うようにします。

7. 繰返し枠をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「R_ORDER」に設定します。

- 「繰返し枠」で、「ソース」プロパティを「G_ORDER」、「印刷方向」プロパティを「縦」、「ページ当たりの最大レコード数」プロパティを「1」に設定します。

8. ツール・パレットの「枠」ツールをクリックし、R_ORDER繰返し枠の境界線の少し内側に枠を作成します。

9. 枠オブジェクトをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「M_INVOICE」に設定します。

- 「拡張レイアウト」で、「オブジェクトの印刷」プロパティを「全ページ」に設定します。

10. 繰返し枠をクリックし、ツール・パレットの「塗りつぶしカラー」ツールをクリックして、「塗りなし」を選択します。枠に対しても同じ操作を繰り返します。枠および繰返し枠の背後にまだレイヤー化されていますが、請求書イメージが表示されます。

33.6 請求書情報の挿入

これで、請求書イメージのフィールドを作成して、請求書レポートに必要な情報を取得できます。このレポートを印刷すると、フィールド値が請求書フォーム上の正しい位置に印刷されます。次の手順を実行する際は、次の図をガイドとして使用してください(提供されているサンプル・レポートinvoice.rdfをReports Builderで開くこともできます)。

図33-4 請求書レポートのレイアウト

請求書レポートに情報を挿入するには:

1. ペーパー・レイアウト・ビューで、ツール・パレットの「テキスト」ツールをクリックし、請求書イメージ上の「Terms」というラベルが付いている領域でボイラープレート・テキスト・オブジェクトを作成します。ボイラープレート・テキスト・オブジェクトの中に、30 daysと入力します。

2. ツール・パレットの「フィールド」ツールをクリックして、請求書イメージ上の次の各領域でフィールドを作成します。

- Bill To(名前および住所の要素ごとに1つのフィールド):
「名前」プロパティを「F_FIRST_NAME」、「ソース」プロパティを「CUST_FIRST_NAME」に設定します。

「名前」プロパティを「F_LAST_NAME」、「ソース」プロパティを「CUST_LAST_NAME」に設定します。

「名前」プロパティを「F_STREET」、「ソース」プロパティを「C_STREET_ADDRESS」に設定します。

「名前」プロパティを「F_CITY」、「ソース」プロパティを「C_CITY」に設定します。

「名前」プロパティを「F_STATE」、「ソース」プロパティを「C_STATE_PROVINCE」に設定します。

「名前」プロパティを「F_POSTAL」、「ソース」プロパティを「C_POSTAL_CODE」に設定します。

- Ship To(名前および住所の要素ごとに1つのフィールド):
「名前」プロパティを「F_FIRST_NAME1」、「ソース」プロパティを「CUST_FIRST_NAME」に設定します。

「名前」プロパティを「F_LAST_NAME1」、「ソース」プロパティを「CUST_LAST_NAME」に設定します。

「名前」プロパティを「F_STREET1」、「ソース」プロパティを「C_STREET_ADDRESS」に設定します。

「名前」プロパティを「F_CITY1」、「ソース」プロパティを「C_CITY」に設定します。

「名前」プロパティを「F_STATE1」、「ソース」プロパティを「C_STATE_PROVINCE」に設定します。

「名前」プロパティを「F_POSTAL1」、「ソース」プロパティを「C_POSTAL_CODE」に設定します。

- Date: 「名前」プロパティを「F_TODAY」、「ソース」プロパティを「現在の日付」、「書式マスク」プロパティを「MM/DD/RR」に設定します。

- Page: 「名前」プロパティを「F_PAGE」、「ソース」プロパティを「ページ番号」、「ページ番号付け」プロパティ(「ページ番号付け」ダイアログ・ボックス内)の「リセット位置」を「R_ORDER」に設定します。

- Purchase Order Number: 「名前」プロパティを「F_ORDER_NO」、「ソース」プロパティを「ORDER_ID」に設定します。

- Sales Order Number: 「名前」プロパティを「F_ORDER_NO1」、「ソース」プロパティを「ORDER_ID」に設定します。

- Customer Number: 「名前」プロパティを「F_CUST_NO」、「ソース」プロパティを「CUSTOMER_ID」に設定します。

- Due Date: 「名前」プロパティを「F_DUE_DAY」、「ソース」プロパティを「CF_DUE_DATE」に設定します。

- Salesperson (2フィールド。名前に1フィールド、名字に1フィールド):
「名前」プロパティを「F_SALES_REP_FNAME」、「ソース」プロパティを「CUST_FIRST_NAME1」に設定します。

「名前」プロパティを「F_SALES_REP_LNAME」、「ソース」プロパティを「CUST_LAST_NAME1」に設定します。

- Customer Contact (2フィールド。名前に1フィールド、名字に1フィールド):
「名前」プロパティを「F_SALES_REP_FNAME1」、「ソース」プロパティを「CUST_FIRST_NAME1」に設定します。

「名前」プロパティを「F_SALES_REP_LNAME1」、「ソース」プロパティを「CUST_LAST_NAME1」に設定します。

注意:

この例では、顧客担当者と営業担当者は同じ人物であると仮定します。

- Ship Date: 「名前」プロパティを「F_TODAY1」、「ソース」プロパティを「現在の日付」、「書式マスク」プロパティを「MM/DD/RR」に設定します。

- Item No.: 「名前」プロパティを「F_ITEM_NO」、「ソース」プロパティを「LINE_ITEM_ID」に設定します。このフィールドを選択して、ツールバーの「右に整列」ボタンをクリックします。

- Description(列ヘッダーなし): 「名前」プロパティを「F_ITEM_DESC」、「ソース」プロパティを「TRANSLATED_DESCRIPTION」に設定します。

- Quantity Ordered: 「名前」プロパティを「F_QUANTITY」、「ソース」プロパティを「QUANTITY」に設定します。このフィールドを選択して、ツールバーの「右に整列」ボタンをクリックします。

- Unit Price: 「名前」プロパティを「F_UNIT_PRICE」、「ソース」プロパティを「UNIT_PRICE」、「書式マスク」プロパティを「$NNN,NN0.00」に設定します。このフィールドを選択して、ツールバーの「右に整列」ボタンをクリックします。

- Extended Amount: 「名前」プロパティを「F_ITEM_PRICE」、「ソース」プロパティを「O_QUANTITY_O_UNIT_PRICE」、「書式マスク」プロパティを「$NNN,NN0.00」に設定します。このフィールドを選択して、ツールバーの「右に整列」ボタンをクリックします。

- Subtotal: 「名前」プロパティを「F_SUB_TOTAL」、「ソース」プロパティを「CS_SUB_TOTAL」に設定します。

- Total: 「名前」プロパティを「F_TOTAL」、「ソース」プロパティを「CS_TOTAL」に設定します。

3. ツール・パレットの「枠」ツールをクリックし、次のフィールドの周囲に枠を描画して、これらのフィールドをグループ化します。

- Bill To: F_FIRST_NAME、F_LAST_NAME、F_STREET、F_CITY、F_STATEおよびF_POSTAL。枠の「名前」プロパティを「M_BILL_TO」に設定します。

- Ship To: F_FIRST_NAME1、F_LAST_NAME1、F_STREET1、F_CITY1、F_STATE1およびF_POSTAL1。枠の「名前」プロパティを「M_SHIP_TO」に設定します。

- Salesperson: F_SALES_REP_FNAMEおよびF_SALES_REP_LNAME。枠の「名前」プロパティを「M_SALES_REP」に設定します。

- Customer Contact: F_SALES_REP_FNAME1およびF_SALES_REP_LNAME1。枠の「名前」プロパティを「M_CUST_CONTACT」に設定します。

- Item list: F_ITEM_NO、F_ITEM_DESC、F_QUANTITY、F_UNIT_PRICE、F_ITEM_PRICEおよびすべての空白の領域(これらのフィールドの下からリスト領域下部の境界線までの領域)。枠の「名前」プロパティを「M_ORDER_LIST」に設定します。この枠は、ディテール項目リストの繰返し枠の位置およびサイズを設定するために使用します。

注意: 枠を使用すると、名前フィールドの水平方向の可変サイズで他のオブジェクトが押されなくなります。

4. ツール・パレットの「繰返し枠」ツールをクリックし、次のフィールドの周囲に繰返し枠を描画して、これらのフィールドをグループ化します。

- Item list: F_ITEM_NO、F_ITEM_DESC、F_QUANTITY、F_UNIT_PRICEおよびF_ITEM_PRICE(これらのフィールドの下の通常のフィールドを含み空白を含まない)。繰返し枠の「名前」プロパティを「R_ORDER_LIST」、「ソース」プロパティを「G_LIST」に設定します。

5. レポートを保存して、実行します。必要に応じて、請求書イメージのバックグラウンドにあわせてオブジェクトの位置を調整します。最終的なレポート出力は次のようになります。

図33-5 請求書レポートの最終出力

33.7 サマリー

おめでとうございます。請求書レポートは正常に作成されました。この章で学習した内容は次のとおりです。

- データ・リンクが設定された2つの問合せを作成する。

- データ・モデルに2つのサマリー列と1つの式列を追加して、請求書に含める。

- レポート・レイアウトを準備して、請求書イメージ上に情報を追加する。

- フィールドを作成して、請求書フォームの正確な位置に配置する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

34 ランキング・レポートの作成

この章では、データを様々な方法でランク付けすることが可能なレポートについて学習します。この章の手順に従うと、図34-1に示すレポート出力を生成できます。

図34-1 数値とパーセンテージで顧客をランク付けした表形式のレポート出力

概要

データをランク付けするレポートは、ユーザー指定のバインド・パラメータと比較して作成されます。これによって1つのレポートのデータを、カウントやパーセンテージなど、様々な方法でランク付けできるようになります。実行時にランキング条件を設定したり、以前に指定された値をランキング条件のデフォルトとして使用したりすることができます。

データ・リレーションシップ

このレポートでは、データをフェッチする問合せが1つ必要です。データをランク付けするには、次のオブジェクトを作成します。

- 実行時にカットオフ・ポイントを設定するためのバインド・パラメータ。

- レコードがデータベースからフェッチされるたびに1が加算されるバインド・パラメータ。このパラメータの値は、カットオフ用のバインド・パラメータと比較されます。

- カットオフ値内にあるレコードのみを表示するようにカスタマイズしたグループ・フィルタ。パッケージされたフィルタではなくカスタマイズされたフィルタを使用することで、カットオフ値をパラメータ化できます。

レイアウト

このレポートでは、表形式のレイアウト・スタイルを少し修正したものを使用します。

使用例

この例では、上位3件までの顧客と売上全体の75%を占める顧客の名前と購入金額合計を表示するレポートを作成します。また、レポートのエンド・ユーザーが実行時にランキング条件(つまり、すべての顧客のうち上位x件の顧客と上位y%の顧客)を設定できるようにします。

このサンプル・レポートの作成過程では、次を行います。

- データ・モデルと表形式のレイアウトの作成

- ランキング条件を制御するパラメータとグループ・フィルタの作成による、上位顧客数によるランキング・ロジックの作成

- レポート出力にパラメータ値を表示するためのパラメータ用のレイアウト・オブジェクトの追加

- エンド・ユーザーが設定するパラメータのみを表示するパラメータ・フォームの作成

- パーセンテージによるランク付けの追加

ランキング・レポートのサンプルを表示するには、サンプル・フォルダrankingを開き、Oracle Reportsのサンプルrank.rdfを開きます。アクセス方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

34.1 この例の前提条件

この章の例を作成するには、Summit Sporting Goods (SUMMIT)スキーマに対するアクセス権が必要です。このスキーマをインストールするSQLスクリプトをダウンロードするには、「はじめに」の「データ・ソースへのアクセス」を参照してください。

34.2 データ・モデルと表形式のレイアウトの作成

この例のように、単一問合せレポートを作成する場合、レポート・ウィザードを使用して、データ・モデルとレイアウトを同時に作成できます。

データ・モデルとレイアウトを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページでレポートの「タイトル」を入力し、「表形式」を選択して「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

7. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT CUSTNAME CNAME, SUM(AMOUNT) SUM_AMT FROM SALES
GROUP BY CUSTNAME
ORDER BY SUM(AMOUNT) DESC

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルrank_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

8. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第34.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

9. 「フィールド」ページで「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動し、「次へ」をクリックします。

10. 「合計」ページで「次へ」をクリックします。

11. 「ラベル」ページで、ラベルとフィールド幅を次のように設定し、「次へ」をクリックします。

フィールド

ラベル

幅

CNAME

Customer Name

35

SUM_AMT

Total Purchases

15

12. 「テンプレート」ページで「終了」をクリックして、ペーパー・デザイン・ビューでレポート出力をプレビューします。次の例のようになります。

図34-2 ランキング・レポートのペーパー・デザイン・ビュー

34.3 上位顧客数によるランキング・ロジックの作成

レポートにデータ・モデルとレイアウトを作成したら、表示する顧客数を制御するロジックを追加できます。まず、ユーザーが実行時に値を入力できるパラメータを2つ作成します。次に、そのパラメータを使用して表示するデータを制御するグループ・フィルタを作成します。

パラメータを作成してグループ・フィルタを追加するには:

1. オブジェクト・ナビゲータの「データ・モデル」ノードで、「ユーザー・パラメータ」ノードをクリックします。

2. 「編集」→「作成」を選択して、「ユーザー・パラメータ」ノードの下に新しいユーザー・パラメータを作成します。

3. プロパティ・インスペクタが表示されていない場合は、新しいユーザー・パラメータ(P_1)を右クリックして、「プロパティ・インスペクタ」を選択してプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「CUTOFF_CNT」に設定します。

- 「パラメータ」で、「データ型」プロパティを「Number」、「幅」プロパティを「1」、「初期値」プロパティを「3」に設定します。

4. 前述の手順を繰り返して、別のユーザー・パラメータを作成します。プロパティは、次のように設定します。

- 「一般情報」で、「名前」プロパティを「INCR_CNT」に設定します。

- 「パラメータ」で、「データ型」プロパティを「Number」、「幅」プロパティを「3」、「初期値」プロパティを「0」に設定します。

5. オブジェクト・ナビゲータの「データ・モデル」ノードで、「グループ」ノードを開き、「G_CNAME」グループの横のプロパティ・アイコンをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「グループ」で、「フィルタ・タイプ」プロパティを「PL/SQL」に設定し、「PL/SQLフィルタ」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。

6. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function G_CNAMEGroupFilter return boolean is
begin
:incr_cnt:=:incr_cnt+1;
if :incr_cnt <= :cutoff_cnt then
return (TRUE);
else
return(FALSE);
end if;
end;

注意:

提供されているテキスト・ファイルrank_code.txtから、このコードをコピーして貼り付けると、コードを入力できます。このコードはグループ・フィルタ用です。

7. 「コンパイル」をクリックします。

8. 「閉じる」をクリックします。
このフィルタによって、G_CNAME内のレコードがフェッチされるたびにカウンタに1が加算され、そのカウンタ値が指定されているカットオフと比較されます。カウンタ値がカットオフを超えると、レコードはそれ以上フェッチされなくなります。

ヒント:

ペーパー・デザイン・ビューを開いたままでこのロジックを追加した場合は、そのペーパー・デザイン・ビューではレコードは返されません。この問題を解決するには、他のビュー(データ・モデル・ビューなど)の1つを表示してから、ペーパー・デザイン・ビューに戻ります。ランタイム・パラメータ・フォームで、2つのパラメータINCR_CNTおよびCUTOFF_CNTに値を入力するよう求められます。

9. ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックしてランタイム・パラメータ・フォームを表示します。このフォームから、CUTOFF_CNTおよびINCR_CNTのデフォルト値を変更できます。

10. 「レポート実行」ボタンをクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。

11. レポートをrank_your_initials.rdfという名前で保存します。

図34-3 上位3顧客に制限した表形式のレポート出力

34.4 パラメータ用のレイアウト・オブジェクトの追加

リストに表示される顧客数が一目でわかるようにする方法として、レポートにCUTOFF_CNT値を表示する必要があります。このタスクを実行するには、パラメータを参照するボイラープレート・テキスト・オブジェクトを作成します。

1. オブジェクト・ナビゲータで、「ペーパー・レイアウト」ノードの横のビュー・アイコンをダブルクリックして、ペーパー・レイアウト・ビューを表示します。

2. ペーパー・レイアウト・ビューとオブジェクト・ナビゲータが同時に見えるように、両方を横に並べて表示します。

3. オブジェクト・ナビゲータで、「検索」フィールドにM_G_CNAME_GRPFRと入力します。

4. オブジェクト・ナビゲータで「M_G_CNAME_GRPFR」をクリックし、ペーパー・レイアウト・ビューでもそれが選択されるようにします。

5. ペーパー・レイアウト・ビューのタイトル・バーをクリックして、アクティブなウィンドウにします。

6. キーボードの[Ctrl]を押しながら[A]を押して、M_G_CNAME_GRPFRとそのすべての内容を選択します。

注意:

オブジェクト・ナビゲータの「検索」フィールドを使用して、特定のオブジェクトを検索することもできます。ペーパー・レイアウト・ビューが表示されているときにオブジェクト・ナビゲータで項目を選択すると、対応するオブジェクトがペーパー・レイアウト・ビューでも選択されます。

7. [↓]キーを使用して、各項目を約1インチ(2.5センチメートル)下に移動します。

8. ツールバーのフォント・リストから、Arial(欧文)、ポイント・サイズ「10」を選択します。

9. ツール・パレットの「テキスト」ツールをクリックします。

10. ラベル「Customer Name」のすぐ上をクリックし、新しいボイラープレート・テキスト・オブジェクトを作成して、次のテキストを入力します。

Top &CUTOFF_CNT Customers:

11. ペーパー・レイアウト・ビューの空き領域に移動し、マウス・ボタンをクリックしてテキスト・モードを終了します。作成したテキスト・オブジェクトは、選択されたままになっています。この状態で、矢印キーを使用して位置を調整できます。

12. ツールバーの「太字」ボタンをクリックして、新しいテキストを太字にします。

13. 作成したオブジェクトとともに選択されるように、[Shift]を押しながらラベル「Customer Name」と「Total Purchase」をクリックします。

14. ツールバーの「下線」ボタンをクリックします。

15. ペーパー・レイアウト・ビューの空き領域をクリックして、それらすべての選択を解除します。

16. 「F_SUM_AMT」をクリックし、「ツール」→「プロパティ・インスペクタ」を選択してプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「フィールド」で、次のように入力して「書式マスク」プロパティを設定します。
-$NNN,NN0.00

17. ツールバーの「ペーパー・デザイン」ボタンをクリックし、ペーパー・デザイン・ビューを表示します。(ランタイム・パラメータ・フォームが表示されている場合は、ツールバーの「レポート実行」ボタンをクリックします)。

図34-4 パラメータ値が表示された表形式のレポート出力

18. レポートを保存します。

34.5 パラメータ・フォームの作成

デフォルトでは、両方のユーザー・パラメータがランタイム・パラメータ・フォームに表示されます。実際は、ユーザーが設定するのはCUTOFF_CNTのみです。INCR_CNT(各レコードごとに増加するカウンタの量)は、ユーザーが設定できないようにします。ランタイム・パラメータ・フォームにINCR_CNTが表示されないようにするには、独自のパラメータ・フォームを作成します。

パラメータ・フォームを作成するには:

1. 「ツール」→「パラメータ・フォーム・ビルダー」を選択します。

2. 「パラメータ・フォーム・ビルダー」ダイアログ・ボックスで、「INCR_CNT」が見つかるまでパラメータのリストを下にスクロールします。

3. 「INCR_CNT」をクリックして選択を解除します。

4. CUTOFF_CNTのラベルを次のように変更します。
# of Top Customers:

5. 「OK」をクリックします。

6. ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックします。

7. ランタイム・パラメータ・フォームで、「# of Top Customers」に値を入力して、ツールバーの「レポート実行」ボタンをクリックします。ランタイム・パラメータ・フォームで指定した数のレコードが表示されます。また、レコードは購入金額合計が大きい方から順に表示されます。

ヒント:

追加の演習として、CUTOFF_CNTの「初期値」プロパティを変更すると、ランタイム・パラメータ・フォームがどのように変わるかを確認できます。

8. レポートを保存します。

34.6 パーセンテージによるランク付けの追加

顧客をランク付けするもう1つの方法は、売上全体のパーセンテージによるランク付けです。考え方はカウントによるランク付けと同じですが、重要な相違点があります。レコード数とともに変動する合計サマリーのパーセントを計算するためには、すべてのデータをフェッチする必要があるため、不要なデータの選別にグループ・フィルタを使用できません。この場合、繰返し枠でフォーマット・トリガーを使用して、各時点での合計値をカットオフ・パラメータと比較する必要があります。

パーセンテージ計算のためにデータをフェッチするには:

1. オブジェクト・ナビゲータで、「データ・モデル」ノードの横のビュー・アイコンをダブルクリックします。

2. 表示されたデータ・モデル・ビューで、ツール・パレットの「SQL問合せ」ツールをクリックし、問合せQ_1の右にあるデータ・モデル・ビューの空いている場所をクリックして、「SQL問合せ文」ダイアログ・ボックスを表示します。

3. 「SQL問合せ文」フィールドに、次のSELECT文を入力します。

SELECT CUSTNAME CNAME2, SUM(AMOUNT) SUM_AMT2
FROM SALES
GROUP BY CUSTNAME
ORDER BY SUM(AMOUNT) DESC

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルrank_code.txt(パーセンテージ計算用のSELECT文)からコードをコピーして「SQL問合せ文」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「SQL問合せ文」フィールドにコードを入力します。

4. 「OK」をクリックします。データ・モデルは次のようになります。

図34-5 ランキング・レポートのデータ・モデル・ビュー

5. レポートを保存します。

パーセンテージによるカットオフ用のパラメータを作成するには:

1. オブジェクト・ナビゲータの「データ・モデル」ノードで、「ユーザー・パラメータ」ノードをクリックします。

2. 「編集」→「作成」を選択して、「ユーザー・パラメータ」ノードの下に新しいユーザー・パラメータを作成します。

3. プロパティ・インスペクタが表示されていない場合は、新しいユーザー・パラメータ(P_1)を右クリックして、「プロパティ・インスペクタ」を選択してプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「CUTOFF_PCT」に設定します。

- 「パラメータ」で、「データ型」プロパティを「Number」、「幅」プロパティを「2」、「初期値」プロパティを「75」に設定します。

4. データ・モデル・ビューで、グループ・オブジェクトの「G_CNAME2」をクリックし、下部のハンドルをクリックして約0.25インチ(0.5センチメートル)下にドラッグして、グループのサイズを大きくします。

5. ツール・パレットの「サマリー列」ツールをクリックします。

6. SUM_AMT2の下の空白の領域をクリックして、サマリー列を作成します。

7. 新しいサマリー列オブジェクト(CS_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「R_PCT」に設定します。

- 「列」で、「データ型」プロパティを「Number」、「幅」プロパティを「10」に設定します。

- 「サマリー」で、「ファンクション」プロパティを「割合(%)」、「ソース」プロパティを「SUM_AMT2」、「リセット位置」プロパティを「Report」、「計算位置」プロパティを「Report」に設定します。

パーセンテージによる顧客リスト用の第2のレイアウトを作成するには:

1. ツールバーの「ペーパー・レイアウト」ボタンをクリックして、ペーパー・レイアウト・ビューを表示します。

2. ペーパー・レイアウト・ビューで、ツール・パレットの「レポート・ブロック」ツールをクリックします。

3. 既存のレイアウトの約1インチ(2.5センチメートル)下から、既存のレイアウトとほぼ同じサイズになるまでボックスをクリックしてドラッグし、第2のレイアウトのサイズを定義して、レポート・ブロック・ウィザードを表示します。

4. レポート・ブロック・ウィザードの「スタイル」ページで、「表形式」を選択して「次へ」をクリックします。

5. 「グループ」ページで、「使用可能グループ」リストの「G_CNAME2」をクリックし、「縦」をクリックして印刷方向を指定し、「表示グループ」リストに移動して「次へ」をクリックします。

6. 「フィールド」ページで、次のフィールドをクリックしてから「>」ボタンをクリックし、それらのフィールドを「表示フィールド」リストに移動して「次へ」をクリックします。

- CNAME2

- SUM_AMT2

7. 「ラベル」ページで、ラベルとフィールド幅を次のように変更し、「次へ」をクリックします。

フィールド

ラベル

幅

CNAME2

Customer Name

35

SUM_AMT2

Total Purchases

15

8. 「テンプレート」ページで、「テンプレートなし」を選択します(テンプレートを選択した場合は、前のレイアウトのテンプレートが上書きされます)。次に「終了」をクリックして、ペーパー・レイアウト・ビューにレポート・レイアウトを表示します。

9. ツールバーのフォント・リストから、Arial(欧文)、ポイント・サイズ「10」を選択します。

10. ペーパー・レイアウト・ビューで、ツール・パレットの「テキスト」ツールをクリックします。

11. 新しいレイアウトでラベル「Customer Name」のすぐ上をクリックし、新しいボイラープレート・テキスト・オブジェクトに次のテキストを入力します。

Top &CUTOFF_PCT Percent of Sales:

12. ペーパー・レイアウト・ビューの空き領域に移動し、マウス・ボタンをクリックしてテキスト・モードを終了します。作成したテキスト・オブジェクトは、選択されたままになっています。この状態で、矢印キーを使用して位置を調整できます。

13. テキストが太字になっていない場合は、ツールバーの「太字」ボタンをクリックして太字にします。

14. 作成したオブジェクトとともに選択されるように、[Shift]を押しながらラベル「Customer Name」と「Total Purchases」をクリックします。

15. ツールバーの「下線」ボタンをクリックします。

16. ペーパー・レイアウト・ビューの空き領域をクリックして、それらすべての選択を解除します。

17. 新しいフィールド・オブジェクト(F_SUM_AMT2)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「フィールド」で、次のように入力して「書式マスク」プロパティを設定します。

-$NNN,NN0.00

パーセンテージによるカットオフのロジックを追加するには:

1. オブジェクト・ナビゲータで、「検索」フィールドにR_G_CNAME2と入力して繰返し枠を検索します。

2. 「R_G_CNAME2」の横のプロパティ・アイコンをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「拡張レイアウト」で、「フォーマット・トリガー」プロパティ・フィールドをダブルクリックし、PL/SQLエディタを表示します。

3. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function R_G_CNAME2FormatTrigger return boolean is
begin
if :r_pct <= :cutoff_pct then
return(TRUE);
else
return(FALSE);
end if;
end;

注意:

提供されているテキスト・ファイルrank_code.txtから、このコードをコピーして貼り付けると、コードを入力できます。このコードはパーセンテージによるカットオフ用です。

新しいパーセンテージ・パラメータ用にパラメータ・フォームを更新するには:

1. 「ツール」→「パラメータ・フォーム・ビルダー」を選択します。

2. 「パラメータ・フォーム・ビルダー」ダイアログ・ボックスで、「CUTOFF_PCT」が見つかるまでパラメータのリストを下にスクロールし、そのラベルを次のように変更します。
Top Percentage (%):

3. 「OK」をクリックします。

4. ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックします。

5. ランタイム・パラメータ・フォームで、次のように入力します。

- 「# of Top Customers」に5を入力します。

- 「Top Percentage (%)」に80を入力します。

6. ツールバーの「レポート実行」ボタンをクリックします。

図34-6 数値とパーセンテージで顧客を制限した表形式のレポート出力

34.7 サマリー

おめでとうございます。ランキング・レポートは正常に作成されました。この章で学習した内容は次のとおりです。

- データ・モデルと表形式のレイアウトを作成する。

- ランキング条件を制御するパラメータとグループ・フィルタを作成する。

- レポート出力にパラメータ値を表示するレイアウト・オブジェクトを追加する。

- ユーザー設定のパラメータのみを表示するパラメータ・フォームを作成する。

- パーセンテージによるランク付けを追加する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

35 単純な目次と索引を使用したペーパー・レポートの作成

この章では、目次と索引で構成される単純なレポートについて学習します。

注意:

目次または索引の生成は、マトリックス・レポートではサポートされていません。

この章の手順に従うと、図35-1および図35-2に示すようなレポート出力を生成できます。

図35-1 大規模なレポート用の単純な目次

図35-2 大規模なレポート用の単純な索引

概要

- 大規模なペーパー・レポートに目次があると、ユーザーはレポート内を移動しやすくなります。Reports Builderを使用すると、ペーパー・レポートの最初に表示される目次を生成できます。

- 通常、Reports Builderでは、ヘッダー・セクションから開始して、メイン・セクション、トレーラ・セクションの順にレポートがフォーマットされます。このサンプル・レポートで示す機能を使用すると、任意のセクションを最初にフォーマットし、フォーマット時にのみ認識される情報(ページ番号など)を作成して、その情報を前のセクションのフォーマットに使用できます。

- この例では、ビルトイン・プロシージャSRW.SET_FORMAT_ORDERを使用してレポートのメイン・セクションを最初に生成し、その後ヘッダー・セクションとトレーラ・セクションを生成します。これにより、レポートのメイン・セクションでページ番号を作成してから、ヘッダー・セクションの目次にそのページ番号を表示できるようになります。

注意:

SRW.SET_FORMAT_ORDERを使用してレポートのフォーマット順序を変更しても、レポートでは依然として、最初にヘッダー・セクション、次にメイン・セクション、最後にトレーラ・セクションが表示されます。SRW.SET_FORMAT_ORDERを使用すると、レポートのフォーマット順序を変更できますが、レポート・セクションの表示順序は変更できません。

- After Parameter Formトリガーとフォーマット・トリガーを使用して、データベース内に作成した表にページ番号を一時的に格納します。次に、レポートの最初に表示する単純な表形式のレポートを作成して、カテゴリとそのページ番号を一覧表示します。最後に、レポートのトレーラ・セクションにレコードとページ番号のみを表示する単純な索引を作成します。

複数階層を持つ目次の作成の詳細は、第36章「複数階層の目次を使用したペーパー・レポートの作成」を参照してください。

使用例

この例では、何千ものレコードが含まれている顧客データベースのすべての電子メール・アドレスのリストを生成します。必要な顧客の電子メール・アドレスを検索しやすくするために、最初に顧客を分類(ここでは国ごとに分類)し、次に目次を生成します。その後、レポートの索引を作成する方法を学習します。

このサンプル・レポートの作成過程では、次を行います。

- 単純な目次の作成:

- SQL*Plusを使用したTOCデータを格納するデータベース表の作成

- レポート・ウィザードを使用したグループ上レポートの作成

- レポート・セクションの実行順序を変更し、各レコードのページ番号をフェッチするための、PL/SQLエディタを使用したAfter Parameter Formトリガーとフォーマット・トリガーの作成

- 各国名の下にあるデータのページ範囲を計算する式列を持つデータ・モデルでの2番目の問合せの作成

- 国名とページ番号を表示するヘッダー・セクションの表形式のレポート・ブロックを作成するための、レポート・ブロック・ウィザードを使用した、目次を表示するためのレポート・ブロックの作成

- ペーパーを対象とした単純な目次を使用するレポートの実行

- 索引の作成:

- 索引用の情報を格納するデータベース表の作成

- 各顧客レコードのページ番号を生成するためのフォーマット・トリガーの作成

- 索引に必要な情報を取得する別の問合せを作成するためのデータ・モデル・ビューを使用したデータ・モデルへの問合せの追加

- トレーラ・セクションに索引を表示するためのレポート・ブロックの作成

- ペーパーを対象としたレポートの実行。

目次と索引のレポートのサンプルを表示するには、サンプル・フォルダtocindexを開き、Oracle Reportsのサンプルtoc_index.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

35.1 この例の前提条件

この章の例を作成するには、サンプル・ファイルが必要です(前述の「使用例」を参照)。また、Oracle Database付属のSales Historyサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

35.2 単純な目次の作成

この項の手順では、複数のページで構成される大規模なレポートに対して、基本的な目次を作成する方法について説明します。作成する目次は次のようになります。

図35-3 単純な目次

35.2.1 TOCデータを格納するデータベース表の作成

この項の手順では、目次に表示するレコードのページ番号を格納する表をデータベースに作成する方法について説明します。データベースに表を作成する権限があるか不明な場合は、データベース管理者に問い合せてください。

データベースに表を作成するには:

1. SQL*Plusを起動します。

- Windowsの場合、「スタート」メニューで、「プログラム」→「Oracle Application Server - oracle_home_name」→「Application Development」→「SQL Plus」を選択します。

- (UNIXの場合)sqlplusと入力します。

2. 接続文字列sh/sh@database_nameなどを使用して、データベースのSales Historyスキーマに接続します。

3. SQLプロンプトに次の行を入力します。

create table toc_example (topic varchar2(100), page number);

4. [Enter]を押します。
表が作成されたことを示す通知が表示されます。

5. SQL*Plusを終了します。

35.2.2 グループ上レポートの作成

この項の手順では、Reports Builderで単純なグループ上レポートを作成する方法について説明します。このグループ上レポートでは、国名を表示し、各国名の下にその国の顧客と顧客の電子メール・アドレスを表示します。目次は、このレポートに出力される国名に基づいて作成されます。

単純なグループ上レポートを作成するには:

1. Reports Builderで、「ファイル」→「新規」→「レポート」を選択し、手動によるレポートの作成を選択します。

2. 表示されるデータ・モデル・ビューで、キャンバスを右クリックして、ポップアップ・メニューから「レポート・ウィザード」を選択します。

3. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

4. 「スタイル」ページで、「グループ上」を選択し、「次へ」をクリックします。

5. 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。

6. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT ALL COUNTRIES.COUNTRY_NAME,
CUSTOMERS.CUST_LAST_NAME,
CUSTOMERS.CUST_FIRST_NAME,
CUSTOMERS.CUST_email
FROM CUSTOMERS, COUNTRIES
WHERE (CUSTOMERS.COUNTRY_ID = COUNTRIES.COUNTRY_ID)

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルtoc_index_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

7. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第35.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

8. 「グループ」ページで、「COUNTRY_NAME」をクリックし、「>」ボタンをクリックして、このフィールドを「グループ・フィールド」リストに移動します。

9. 「次へ」をクリックします。

10. 「フィールド」ページで、「>>」ボタンをクリックしてすべてのフィールドを「表示フィールド」リストに移動し、「次へ」をクリックします。

11. 「合計」ページで「次へ」をクリックします。

12. 「ラベル」ページで「次へ」をクリックします。

13. 「テンプレート」ページで、「終了」をクリックします。

14. ツールバーの「データ・モデル」ボタンをクリックします。作成したデータ・モデルは次のようになります。

図35-4 グループ上レポートのデータ・モデル

15. ツールバーの「ペーパー・レイアウト」ボタンをクリックします。ペーパー・レイアウト・ビューは次のようになります。

図35-5 グループ上レポートのペーパー・レイアウト・ビュー

16. レポートをtoc_your_initials.rdfという名前で保存します。これで、レポートのデータ・モデルと基本的なレイアウトの作成が完了しました。

35.2.3 After Parameter Formトリガーとフォーマット・トリガーの作成

この項に示す手順に従って、2つのトリガーを作成します。最初のトリガーは、ビルトイン・プロシージャSRW.SET_FORMAT_ORDERを使用してレポートのメイン・セクションを最初にフォーマットし、その後ヘッダー・セクションとトレーラ・セクションをフォーマットします。2番目のトリガーは、それぞれの国名が表示されているページの番号をフェッチして、第35.2.1項「TOCデータを格納するデータベース表の作成」で作成した表にその情報を格納します。

35.2.3.1 After Parameter Formトリガーの作成

After Parameter Formトリガーは、パラメータ・フォームの実行後に実行されるファンクションです。この項では、このトリガーを設定してレポートの実行順序を変更し、メイン・セクションが最初に実行されるようにします。

After Parameter Formトリガーを作成するには:

1. オブジェクト・ナビゲータで、対象のレポート名(TOC_your_initials)の下にある「レポート・トリガー」ノードを開きます。

2. 「AFTER PARAMETER FORM」を右クリックし、ポップアップ・メニューで「PL/SQLエディタ」を選択します。

3. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function AfterPForm return boolean is
begin
srw.set_format_order(srw.main_section, srw.header_section, srw.trailer_     section);
return (TRUE);
end;

注意:

提供されているファイルtoc_index_code.txtからコードをコピーして貼り付けることもできます。

4. 「コンパイル」をクリックします。

5. コードがコンパイルされた後、「閉じる」をクリックします。

35.2.3.2 フォーマット・トリガーの作成

この項では、F_COUNTRY_NAMEフィールドに基づいたフォーマット・トリガーを作成します。このフィールドには国名が表示されます。このフォーマット・トリガーでは、それぞれの国名のページ番号をフェッチします。これにより、ユーザーが目次に表示されている国名に基づいて、レポートの様々な部分に移動できます。

フォーマット・トリガーを作成するには:

1. オブジェクト・ナビゲータで、レポートの「ペーパー・レイアウト」ノードを開き、「メイン・セクション」→「ボディ」→「M_G_1_GRPFR」→「R_G_1」までナビゲートして、「F_COUNTRY_NAME」をクリックします。

ヒント:

このフィールドが見つからない場合は、オブジェクト・ナビゲータの上部にある「検索」フィールドを使用してください。

2. 「ツール」→「プロパティ・インスペクタ」を選択して、このフィールドのプロパティ・インスペクタを表示します。

3. 「拡張レイアウト」で、「フォーマット・トリガー」プロパティ・フィールドをダブルクリックし、PL/SQLエディタを表示します。

4. PL/SQLエディタで、次のコードを入力します。

function F_COUNTRY_NAMEFormatTrigger return boolean is
pageNum number;
begin
-- get current page number
srw.get_page_num(pageNum);
-- insert row into table
insert into toc_example
values (:country_name, pageNum);
return (TRUE);
end;

注意:

提供されているファイルtoc_index_code.txtからコードをコピーして貼り付けることもできます。

5. 「コンパイル」をクリックします。

6. コードがコンパイルされた後、「閉じる」をクリックしてプロパティ・インスペクタを閉じます。

7. レポートを保存します。

35.2.4 データ・モデルでの2番目の問合せの作成

この項の手順では、各国名の下にあるデータのページ範囲を計算する式列を持つ2番目の問合せをデータ・モデルで作成する方法について説明します。この問合せでは、第35.2.1項「TOCデータを格納するデータベース表の作成」で作成したデータベース表から情報をフェッチします。その後、表形式のレイアウトを作成し、この情報を目次に表示します。

式列を持つ2番目の問合せを作成するには:

1. データ・モデル・ビューで、ツール・パレットの「SQL問合せ」ツールをクリックし、問合せQ_1の右にあるデータ・モデル・ビューの空いている場所をクリックして、「SQL問合せ文」ダイアログ・ボックスを表示します。

2. 「SQL問合せ文」フィールドに、次のSELECT文を入力します。

SELECT
TOPIC,
MIN(PAGE) FROMPAGE,
MAX(PAGE) TOPAGE
FROM TOC_EXAMPLE
GROUP BY TOPIC

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルtoc_index_code.txtからコードをコピーして「SQL問合せ文」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「SQL問合せ文」フィールドにコードを入力します。

3. 「OK」をクリックします。作成したデータ・モデルは次のようになります。

図35-6 2番目の問合せを持つデータ・モデル

4. データ・モデル・ビューで、ツール・パレットの「式列」ツールをクリックし、2番目の問合せのグループ(G_TOPIC)内をクリックします。

5. 式列が選択されている状態で、「ツール」→「プロパティ・インスペクタ」を選択してプロパティ・インスペクタを表示します。

6. 「一般情報」で、「名前」プロパティを「TOC_pages」、「データ型」プロパティを「Character」に設定します。

7. 「プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。

8. PL/SQLエディタで、テンプレートを使用して次のコードを入力します。

function TOC_pagesFormula return Char is
begin
if :fromPage = :toPage then
return (:fromPage);
else
return (:fromPage ||'-'|| :toPage);
end if;
end;

注意:

提供されているファイルtoc_index_code.txtからコードをコピーして貼り付けることもできます。

9. 「コンパイル」をクリックします。

10. コードがコンパイルされた後、「閉じる」をクリックします。

11. レポートを保存します。

35.2.5 目次を表示するレポート・ブロックの作成

この項の手順では、レポートのヘッダー・セクションに表形式のレポート・ブロックを作成する方法について説明します。このレポート・ブロックには、目次のヘッダー(この例では国名)と、レポート内でその情報がある場所を示すページ範囲を表示します。

ヘッダー・セクションに表形式のレポート・ブロックを作成するには:

1. ペーパー・レイアウト・ビューで、ツールバーの「ヘッダー・セクション」ボタンをクリックします。

2. ツール・パレットの「レポート・ブロック」ツールをクリックし、ペーパー・レイアウト・ビューで約5インチ(12.5センチメートル)×約1.5インチ(4センチメートル)の長さの領域を描画します。マウス・ボタンを放すと、レポート・ブロック・ウィザードが表示されます。

3. 「スタイル」ページで、「表形式」を選択し、「次へ」をクリックします。

4. 「グループ」ページで、「G_TOPIC」をクリックし、「下」をクリックして、このフィールドを「表示グループ」リストに移動し、「次へ」をクリックします。

5. 「フィールド」ページで、「使用可能フィールド」リストの次の各フィールドをクリックし、「>」ボタンをクリックしてそれらのフィールドを「表示フィールド」リストに移動して、「次へ」をクリックします。

- トピック

- TOC_pages

6. 「ラベル」ページで「次へ」をクリックします。

7. 「テンプレート」ページで、「終了」をクリックします。
ペーパー・レイアウト・ビューでのレポート・ブロックは次のように表示されます。

図35-7 ヘッダー・セクションのペーパー・レイアウト・ビュー

8. レポートを保存します。

35.2.6 ペーパーを対象とした単純な目次を使用するレポートの実行

ペーパーに対してレポートを実行するには:

- ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックします。

注意:

目次(TOC)を生成する場合は、「ペーパー・レイアウトを実行」ボタンをクリックする必要があります。「ペーパー・デザイン」ボタンをクリックしてもフォーマット順序の変更は有効にならないため、TOCは生成されません。

次のような目次がレポートの最初のページに表示されます。

図35-8 レポートの目次ページ

レポート内の様々なページに移動することによって、各国の顧客データを参照できます。たとえば1ページに移動すると、アルゼンチンの顧客の電子メール・アドレスが表示されます。

図35-9 アルゼンチンの顧客の出力結果

注意:

作成したレポートは、提供されているサンプル・ファイルtoc.rdfと比較できます。「プログラム」→「コンパイル」→「すべて」を選択してPL/SQLをコンパイルしてから、ペーパーに対してレポートを実行します。

複数階層を持つ目次の作成の詳細は、第36章「複数階層の目次を使用したペーパー・レポートの作成」を参照してください。

35.3 索引の作成

この項では、レポートの最後に表示する索引を作成します。この索引には、顧客名とその名前が記載されているページ番号が表示されます。索引は、ユーザーが特定の顧客名を探したい場合、参照先のカテゴリ(国名など)がわからない場合に役立ちます。

図35-10 ペーパー・レポート用の索引のサンプル

35.3.1 索引用の情報を格納するデータベース表の作成

この項の手順では、索引に表示する項目のページ番号を格納する表をデータベースに作成する方法について説明します。データベースに表を作成できるかどうか不明な場合は、データベース管理者に問い合せてください。

データベースに表を作成するには:

1. 第35.2.1項「TOCデータを格納するデータベース表の作成」の手順に従い、次のコードを使用して新しいデータベース表を作成します。

create table index_example (term varchar2(100), page number);

2. [Enter]を押します。
表が作成されたことを示す通知が表示されます。

3. SQL*Plusを終了します。

35.3.2 フォーマット・トリガーの作成

この項の手順では、顧客の姓に基づいたフォーマット・トリガーを作成する方法について説明します。ビルトイン・ファンクションSRW.GET_PAGE_NUMを使用して現在の顧客のページ番号を検索し、前の項で作成した表にその番号を挿入します。

フォーマット・トリガーを作成するには:

1. Reports Builderで、レポートtoc_your_initials.rdfを開きます。

2. ツールバーの「ペーパー・レイアウト」ボタンをクリックして、ペーパー・レイアウト・ビューを表示します。

3. ペーパー・レイアウト・ビューで、フィールド「F_CUST_LAST_NAME」を右クリックし、ポップアップ・メニューで「プロパティ・インスペクタ」を選択します。

4. 「拡張レイアウト」で、「フォーマット・トリガー」プロパティ・フィールドをダブルクリックし、PL/SQLエディタを表示します。

5. PL/SQLエディタで、テンプレートを使用して次のコードを入力します。

function F_CUST_LAST_NAMEFormatTrigger return boolean is
PageNum number;
begin
-- get pagenumber
srw.get_page_num(pageNum);
-- insert into table
insert into index_example
values (:Cust_last_name||', '||:Cust_first_name, PageNum);
return (TRUE);
end;

注意:

提供されているテキスト・ファイルtoc_index_code.txtから、このコードをコピーして貼り付けると、コードを入力できます。

6. 「コンパイル」をクリックします。

7. コンパイル・エラーが発生した場合は、作成したコードがサンプルのRDFファイルまたはこの章のコードと同じになるように修正して、再度コンパイルします。

8. コンパイル・エラーがなくなったら、「閉じる」をクリックします。

9. レポートをtoc_index_your_initials.rdfという名前で保存します。

35.3.3 データ・モデルへの問合せの追加

この項の手順では、索引用に個々の顧客名とページ番号を取得する問合せをデータ・モデルに追加する方法について説明します。

問合せを追加するには:

1. データ・モデル・ビューで、ツール・パレットの「SQL問合せ」ツールをクリックし、問合せQ_1の右にあるデータ・モデル・ビューの空いている場所をクリックして、「SQL問合せ文」ダイアログ・ボックスを表示します。

2. 「SQL問合せ文」フィールドに、次のSELECT文を入力します。

SELECT SUBSTR(TERM,1,1) INITIAL_LETTER, TERM, PAGE FROM INDEX_EXAMPLE ORDER BY TERM

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルtoc_index_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

3. 「OK」をクリックします。

4. データ・モデル・ビューに表示される新しい問合せで、「INITIAL_LETTER」列をクリックし、この列を問合せの残りの部分の上にドラッグします。それにより、データ・モデルは次のようになります。

図35-11 索引のデータ・モデル・ビュー

5. レポートを保存します。

35.3.4 トレーラ・セクションに索引を表示するためのレポート・ブロックの作成

この項の手順では、レポートのトレーラ・セクションに索引情報を表示する方法について説明します。

トレーラ・セクションにレポート・ブロックを作成するには:

1. ペーパー・レイアウト・ビューで、ツールバーの「トレーラ・セクション」ボタンをクリックします。

2. 「挿入」→「レポート・ブロック」を選択します。

3. 「スタイル」ページで、「グループ上」ラジオ・ボタンを選択し、「次へ」をクリックします。

4. 「グループ」ページで、「G_2」(「INITIAL_LETTER」列を格納する新しいグループ名)をクリックし、「縦」をクリックして印刷方向を指定します。

5. 「使用可能グループ」リストで、「G_INITIAL_LETTER」をクリックして「下」をクリックします。

6. 「次へ」をクリックします。

7. 「フィールド」ページで、「INITIAL_LETTER」をクリックし、「>」ボタンをクリックして、このフィールドを「表示フィールド」リストに移動します。

8. 「TERM」と「PAGE」を「表示フィールド」リストに移動します。

9. 「次へ」を2回クリックして、「終了」をクリックします。

10. レポートを保存します。

35.3.5 ペーパーを対象としたレポートの実行

ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックします。レポートの最後のページに索引が表示されます。2402ページを選択します。この例ではこのページは次のようになります

注意:

目次(TOC)を生成する場合は、「ペーパー・レイアウトを実行」ボタンをクリックする必要があります。「ペーパー・デザイン」ボタンをクリックしてもフォーマット順序の変更は有効にならないため、TOCは生成されません。

図35-12 レポートの索引ページ

注意:

実際のレポートに表示される2402ページのデータは、スキーマに含まれるデータの量と型によっては、前述の例と異なる場合があります。

35.4 サマリー

おめでとうございます。目次と索引を使用したレポートが正常に作成されました。この章で学習した内容は次のとおりです。

- 大規模なペーパー・レポートの目次(TOC)と索引を作成する。

- ビルトイン・プロシージャSRW.SET_FORMAT_ORDERを使用して、レポート・セクションの実行順序を変更する。

- ビルトイン・プロシージャSRW.GET_PAGE_NUMを使用して、個々のレコードのページ番号を取得する。

- 必要なページ番号を格納する新しい表をデータベースに作成する。

- レポート・ウィザードを使用して、単純なグループ上レポートを作成する。

- レポートに必要な情報を取得する単純なデータ・モデルを手動で作成する。

- 索引に必要なページ番号を生成するフォーマット・トリガーを作成する。

- レポート・ブロック・ウィザードを使用して、レポートのトレーラ・セクションに索引を表示するグループ・レポートを作成する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

36 複数階層の目次を使用したペーパー・レポートの作成

この章では、複数階層の目次があるレポートについて学習します。

注意:

目次の生成は、マトリックス・レポートではサポートされていません。

この章の手順に従うと、図36-1および図36-2に示すようなレポート出力を生成できます。

図36-1 複数階層の目次

図36-2 レポートのメイン・カテゴリとサブカテゴリのサンプル・ページ

概要

- この章では、レポートの基本的なデータ・モデルとレイアウトの作成方法を理解していることを前提とし、目次の作成方法について重点的に説明します。データ・モデルとペーパー・レイアウトの作成方法がわからない場合は、Oracle Reportsオンライン・ヘルプを参照してください。また、特定の手順を確認するには、このマニュアルの該当する章を参照してください。

- 大規模なペーパー・レポートを作成する場合、目次(TOC)を作成することによって、ユーザーが各ページの情報間を移動しやすくなります。第35章では、顧客情報を国別に分類し、目次に国名とページ範囲を表示する基本的な目次の作成方法を学習しました。また、これらの情報の索引を作成する方法についても学習しました。

- この章では、複数階層を使用した目次の作成方法について学習します。この階層によって、さらに情報を分類し、ユーザーが特定の情報を見つけやすくすることができます。

- 第35章と同様に、After Parameter Formトリガーでビルトイン・プロシージャSRW.SET_FORMAT_ORDERを使用することによって、ヘッダー・セクションとトレーラ・セクションの生成前にレポートのメイン・セクションを生成します。これにより、レポートのメイン・セクションでページ番号を作成してから、ヘッダー・セクションの目次にそのページ番号を表示できるようになります。

注意:

SRW.SET_FORMAT_ORDERを使用してレポートのフォーマット順序を変更しても、レポートでは依然として、最初にヘッダー・セクション、次にメイン・セクション、最後にトレーラ・セクションが表示されます。SRW.SET_FORMAT_ORDERを使用すると、レポートのフォーマット順序を変更できますが、レポート・セクションの表示順序は変更できません。

- また、レポート内のサブカテゴリに基づいたフォーマット・トリガーも作成します。このフォーマット・トリガーでは、ビルトイン・パッケージSRW.GET_PAGE_NUMを使用して各レコードのページ番号を取得し、作成したデータベース表にその番号を一時的に格納します。さらにこのフォーマット・トリガーでは、指定した各サブカテゴリのページ番号も取得します。最後にSQL問合せを使用して、レポートの最初に表示される複数階層を使用した目次に、必要な情報を表示します。

Oracle ReportsのSRWビルトイン・パッケージの詳細は、Oracle Reportsのオンライン・ヘルプを参照してください。

使用例

ここでは、ある会社が販売しているすべての衣料品を掲載した長大なペーパー・カタログを例にとります。このカタログでは、単純なレポートにすべての項目が一覧表示されています。製品の種類が以前よりもはるかに多くなったため、現在のカタログのレポートは700ページを超えています。そのため、部門(男性用、女性用など)ごとに衣料品を分類する複数階層を使用した目次を作成し、各カテゴリの下にそのカテゴリの各アイテムを一覧表示することにします。

このサンプル・レポートの作成過程では、次を行います。

- SQL*Plusを使用したTOCデータを格納するデータベース表の作成(第1層と第2層のカテゴリとページ番号)。

- レポート・セクションの実行順序を変更し、各カテゴリ、サブカテゴリおよびレコードのページ番号をフェッチするための、PL/SQLエディタを使用したAfter Parameter Formトリガーとフォーマット・トリガーの作成。

- 作成した表に格納されている情報を取得するためのデータ・モデルでの2番目の問合せの作成。

- ヘッダー・セクションに2階層のヘッダーを表示するグループ上レポート・ブロックを作成するための、レポート・ブロック・ウィザードを使用した、目次を表示するレポート・ブロックの作成。また、レポートの各ヘッダーのページ番号を表示するフィールドをレイアウトに追加します。

- ペーパーを対象とした複数階層の目次を使用するレポートの実行。

複数階層の目次があるレポートのサンプルを表示するには、サンプル・フォルダmultileveltocを開き、multilevel_toc.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。この章で使用されているサンプル・ファイルのリストと説明を表36-1に示します。

表36-1 レポートのサンプル・ファイル

ファイル

説明

multileveltoc\multilevel_source.rdf

レポートの基本的なペーパー・レイアウトとデータ・モデルを格納するソース・ファイル。

multileveltoc\multilevel_toc.rdf

複数階層の目次を使用したレポートの最終RDFバージョン。

multileveltoc\multilevel_code.txt

このレポートで使用する各種SQL文。

36.1 この例の前提条件

この章の例を作成するには、サンプル・ファイルが必要です(前述の「使用例」を参照)。また、Oracle Database付属のSales Historyサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

36.2 TOCデータを格納するデータベース表の作成

この項の手順では、レポートのメイン・カテゴリとサブカテゴリのページ番号を格納する表をデータベースに作成する方法について説明します。データベースに表を作成できるかどうか不明な場合は、データベース管理者に問い合せてください。

データベースに表を作成するには:

1. SQL*Plusを起動します。

- Windowsの場合、「スタート」メニューで、「プログラム」→「Oracle Application Server - oracle_home_name」→「Application Development」→「SQL Plus」を選択します。

- (UNIXの場合)sqlplusと入力します。

2. 接続文字列sh/sh@database_nameなどを使用して、データベースのSales Historyスキーマに接続します。

3. SQLプロンプトに次の行を入力します。

create table toc_multilevel (main_topic varchar2(100), sub_topic varchar2(100), page number);

4. [Enter]を押します。
表が作成されたことを示す通知が表示されます。

5. SQL*Plusを終了します。

36.3 After Parameter Formトリガーとフォーマット・トリガーの作成

この項に示す手順に従って、2つのトリガーを作成します。最初のトリガーは、ビルトイン・プロシージャSRW.SET_FORMAT_ORDERを使用してレポートのメイン・セクションを最初にフォーマットし、その後ヘッダー・セクションとトレーラ・セクションをフォーマットします。2番目のトリガーは、各カテゴリ、サブカテゴリおよびレコードのページ番号をフェッチして、第36.2項「TOCデータを格納するデータベース表の作成」で作成した表にその情報を格納します。

36.3.1 After Parameter Formトリガーの作成

After Parameter Formトリガーは、パラメータ・フォームの実行後に実行されるファンクションです。この項では、このトリガーを設定してレポートの実行順序を変更し、メイン・セクションが最初にフォーマットされるようにします。

After Parameter Formトリガーを作成するには:

1. Reports Builderで、提供されているmultilevel_source.rdfファイルを開きます。

2. オブジェクト・ナビゲータで、対象のレポート名(MULTILEVEL_SOURCE)の下にある「レポート・トリガー」ノードを開きます。

3. 「AFTER PARAMETER FORM」を右クリックし、ポップアップ・メニューで「PL/SQLエディタ」を選択します。

4. PL/SQLエディタで、テンプレートを使用して次のコードを入力します。

function AfterPForm return boolean is
begin
srw.set_format_order(srw.main_section, srw.header_section, srw.trailer_section);
return (TRUE);
end;

注意:

提供されているファイルmultilevel_code.txtからコードをコピーして貼り付けることもできます。

5. 「コンパイル」をクリックします。

6. コードがコンパイルされた後、「閉じる」をクリックします。

7. レポートをmultilevel_your_initials.rdfという名前で保存します。

36.3.2 フォーマット・トリガーの作成

この項では、F_PROD_SUBCATEGORYフィールドに基づいたフォーマット・トリガーを作成します。このフィールドには、サブカテゴリとして製品名が表示されます。このサブカテゴリは、製品部門を表すメイン・カテゴリの下に置かれます。このフォーマット・トリガーでは、それぞれの製品名のページ番号をフェッチします。これにより、ユーザーが目次に表示されている製品部門名とそれに続く製品名に基づいて、レポートの様々な部分に移動できるようになります。

フォーマット・トリガーを作成するには:

1. オブジェクト・ナビゲータで、レポートの「ペーパー・レイアウト」ノードを開き、「メイン・セクション」→「ボディ」→「M_G_PROD_CATEGORY_GRPFR」→「R_G_PROD_CATEGORY」→「M_G_PROD_SUBCATEGORY_GRPFR」→「R_G_PROD_SUBCATEGORY_GPRFR」までナビゲートして、「F_PROD_SUBCATEGORY」をクリックします。

ヒント:

このフィールドが見つからない場合は、オブジェクト・ナビゲータの上部にある「検索」フィールドを使用してください。

2. 「ツール」→「プロパティ・インスペクタ」を選択して、このフィールドのプロパティ・インスペクタを表示します。

3. 「拡張レイアウト」で、「フォーマット・トリガー」プロパティ・フィールドをダブルクリックし、PL/SQLエディタを表示します。

4. PL/SQLエディタで、テンプレートを使用して次のコードを入力します。

function F_PROD_SUBCATEGORYFormatTrigge return boolean is
pageNum number;
myCount number;
begin
-- get page number
srw.get_page_num(pageNum);
-- check table for duplicates
select count(*)
into myCount
from toc_multilevel
where main_topic = :PROD_CATEGORY and
sub_topic = :PROD_SUBCATEGORY;
-- if no duplicates, insert row
if myCount = 0 then
insert into toc_multilevel
values (:PROD_CATEGORY, :PROD_SUBCATEGORY, pageNum);
end if;
return (TRUE);
end;

注意:

提供されているファイルmultilevel_code.txtからコードをコピーして貼り付けることもできます。

5. 「コンパイル」をクリックします。

6. コードがコンパイルされた後、「閉じる」をクリックしてプロパティ・インスペクタを閉じます。

7. レポートを保存します。

36.4 データ・モデルでの2番目の問合せの作成

この項の手順では、第36.2項「TOCデータを格納するデータベース表の作成」で作成した表に格納されている情報を取得する2番目の問合せをデータ・モデルで作成する方法について説明します。この問合せでは、レポートのヘッダー・セクションの目次の生成に必要なデータをフェッチします。

問合せを作成するには:

1. データ・モデル・ビューで、ツール・パレットの「SQL問合せ」ツールをクリックし、問合せQ_1の右にあるデータ・モデル・ビューの空いている場所をクリックして、「SQL問合せ文」ダイアログ・ボックスを表示します。

2. 「SQL問合せ文」フィールドに、次のSELECT文を入力します。

SELECT * FROM TOC_MULTILEVEL

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルmultilevel_code.txtからコードをコピーして「SQL問合せ文」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「SQL問合せ文」フィールドにコードを入力します。

3. 「OK」をクリックします。

4. 新しい問合せで、「MAIN_TOPIC」列をクリックし、問合せの残りの部分の上にある別のグループにそのままドラッグします。

5. ツール・パレットの「サマリー列」ツールをクリックし、新しいグループ・オブジェクト内をクリックしてサマリー列を作成します。

6. 新しいサマリー列オブジェクトをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「Subcategory_Page」に設定します。

- 「サマリー」で、「ファンクション」プロパティを「最小値」、「ソース」プロパティを「PAGE」に設定します。

作成したデータ・モデルは次のようになります。

図36-3 複数階層のTOCを使用したレポートのデータ・モデル

7. レポートを保存します。

36.5 目次を表示するレポート・ブロックの作成

この項の手順では、レポートのヘッダー・セクションにグループ上レポート・ブロックを作成する方法について説明します。このレポート・ブロックは、目次に2階層のヘッダーを表示します。また、レポートの各ヘッダーのページ番号を表示するフィールドをレイアウトに追加します。

ヘッダー・セクションにグループ上レポート・ブロックを作成するには:

1. ペーパー・レイアウト・ビューで、ツールバーの「ヘッダー・セクション」ボタンをクリックします。

2. ツール・パレットの「レポート・ブロック」ツールをクリックし、約6インチ(15センチメートル)×約1.5インチ(4センチメートル)の長さの領域を描画します。マウス・ボタンを放すと、レポート・ブロック・ウィザードが表示されます。

3. レポート・ブロック・ウィザードの「スタイル」ページで、「グループ上」を選択して「次へ」をクリックします。

4. 「グループ」ページで、「G_MAIN_TOPIC」をクリックし、「下」をクリックして、このフィールドを「表示グループ」リストに移動します。

5. 「使用可能グループ」リストで、「G_1」をクリックし、「下」をクリックして、このグループを「表示グループ」リストに移動します。

6. 「次へ」をクリックします。

7. 「フィールド」ページで、「使用可能フィールド」リストの次の各フィールドをクリックし、「>」ボタンをクリックしてそれらのフィールドを「表示フィールド」リストに移動して、「次へ」をクリックします。

- MAIN_TOPIC

- SUB_TOPIC

- PAGE

8. 「ラベル」ページで、すべてのラベルを削除し、「次へ」をクリックします。

9. 「テンプレート」ページで、「終了」をクリックします。
ペーパー・レイアウト・ビューでのレポート・ブロックは次のように表示されます。

図36-4 ヘッダー・セクションのペーパー・レイアウト・ビュー

10. ツール・パレットの「フィールド」ツールをクリックし、「PAGE」フィールドの上、「F_MAIN_TOPIC」の横にフィールドを作成します。

11. 新しいフィールド・オブジェクトをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「フィールド」で、「ソース」プロパティを「Subcategory_Page」に設定します。

- 「サマリー」で、「リセット位置」プロパティを「G_1」に設定します。

12. レポートを保存します。

36.6 ペーパーを対象とした複数階層の目次を使用するレポートの実行

この項の手順では、ペーパー・デザイン・ビューで多少の変更を行い、レポートを実行する方法について説明します。

レポートを変更し、ペーパーに実行するには:

1. ペーパー・レイアウト・ビューで、フィールド(F_1)のフォントを「Arial」、太字に変更します。

2. 「塗りつぶしカラー」を任意の色(たとえば「Beige」)に変更し、「線カラー」を枠なしに変更します。

3. ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックします。

注意:

目次(TOC)を生成する場合は、「ペーパー・レイアウトを実行」ボタンをクリックする必要があります。「ペーパー・デザイン」ボタンをクリックしてもフォーマット順序の変更は有効にならないため、TOCは生成されません。

次のような目次がレポートの最初のページに表示されます。

図36-5 レポートの目次ページ

この例では、製品部門BOYSのサブカテゴリ、SHIRTSは22ページから始まっており、次のサブカテゴリ、SHOESは38ページから始まっています。レポートの22から38ページのいずれかのページに移動すると、サブカテゴリSHIRTSが表示されます。

注意:

ページ番号は、レポートで使用するデータによって異なります。

図36-6 製品部門BOYS、サブカテゴリSHIRTSの出力結果

レポート内の様々なページに移動することによって、各部門およびサブカテゴリのデータを参照できます。

注意:

作成したレポートは、提供されているサンプル・ファイルmultilevel_toc.rdfと比較できます。「プログラム」→「コンパイル」→「すべて」を選択してPL/SQLをコンパイルしてから、ペーパーに対してレポートを実行します。

36.7 サマリー

おめでとうございます。複数階層の目次を使用したレポートが正常に作成されました。この章で学習した内容は次のとおりです。

- 大規模なペーパー・レポートで使用する複数階層の目次を作成する。

- ビルトイン・プロシージャSRW.SET_FORMAT_ORDERを使用して、レポート・セクションのフォーマット順序を変更する。

- 指定したカテゴリおよびサブカテゴリのページ番号をフェッチするフォーマット・トリガーを作成する。

- レポート・ブロック・ウィザードを使用して、目次を表示するためのグループ上レポートの単純なレイアウトを作成する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

37 レポートの一括処理と配布

Oracle Reportsでは、1つのレポートを同時に複数の宛先に配布できます。この機能を利用して、レポートを1つだけ作成し、それを任意のフォーマット(PDFやHTMLなどのレイアウト・ドリブン形式とXMLやデリミタなどのデータ・モデル・ドリブン形式)で複数の宛先に配布できます。

この例では、提供されている単純なレポートを変更して、各グループを個別のレポートに一括処理します。次に、サンプルの配布XMLファイルを変更して、個々のレポートを添付ファイルとする電子メールを各宛先に送信します。また、複数の電子メールに1つのファイル(レポート全体)を添付して同じ電子メール・アドレスに送信します。

概要

Oracle Reportsでは、1つのレポートを同時に複数の宛先に配布できます。配布機能を使用すると、レポートが実行されたときにそのレポートが電子メールの宛先、ポータル、プリンタまたはその他の場所に配布されるように設定できます。また、様々な形式や宛先についてデータを取り出すのは一度だけで済むため、パフォーマンスを向上させることもできます。さらに、1回のジョブ・リクエストで複数の宛先にレポートを公開することができるため、メンテナンスの手間も軽減されます。これをさらに調整して、ヘッダー・セクションを一部の受信者に、メイン・セクションを別の受信者に、そしてレポート全体をまったく異なる受信者に送信できます。

一括処理と配布の詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の拡張配布の作成に関する項を参照してください。

使用例

この例では、ある製造会社のレポート開発者として、月次情報を会社の各倉庫に配布する必要があるとします。既存のレポートを変更して、各倉庫IDに基づいて一括処理し、倉庫ごとに個別のPDFレポートが作成されるようにします。その後に、提供されている配布XMLファイルを編集して、各レポートを添付した電子メールをそれに該当する倉庫に送信します。

このサンプル・レポートの作成過程では、次を行います。

- 倉庫グループに対する既存のレポートを一括処理するための設定

- 配布XML定義の編集

- レポートがdistribution.xmlファイルに定義された宛先に電子メールで送信されるようにするための、PDFフォーマットでのレポートの実行

サンプル配布レポートを表示するには、サンプル・フォルダdistributionを開き、配布するレポートの場合はsource\inventory_report_dist.rdfを、一括処理するレポートの場合はresult\inventory_report_dist.rdfを開きます。これらのレポートの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。この章で使用されているサンプル・ファイルのリストと説明を表37-1に示します。

表37-1 レポートのサンプル・ファイル

ファイル

説明

distribution\source\
distribution.xml

レポートの配布プロパティを制御するXMLファイル。

distribution\source\
inventory_report_dist.rdf

一括処理および配布のために変更するソース・レポート。

distribution\result\
inventory_report_dist.rdf

一括処理および配布する変更済レポート。

distribution\result\REP_*.pdf

レポートを配布および一括処理する際に生成されるPDF。

注意:

この例のために提供されているdistribution.xmlファイルは、このサンプル・レポートの作成専用です。より包括的なdistribution.xmlがOracle Reportsに同梱されており、ORACLE_HOME\samples\demoディレクトリにあります。このファイルは独自の目的のために再利用できるので、ファイルを一から作成する必要はありません。

37.1 この例の前提条件

この章の例を作成するには、サンプル・ファイルが必要です(前述の「使用例」を参照)。また、Oracle Database付属のOrder Entryサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

37.2 既存のレポートを一括処理するための設定

この章のために、一括処理に使用できるRDFファイルがあらかじめ用意されています。この項では、繰返し枠を削除し、メイン・セクションの「繰返し」プロパティを設定してレポートを一括処理するように設定し、各倉庫IDのデータが一括処理されるようにします。このようにして、各倉庫のデータをレポートとして、該当する倉庫の電子メールIDに配布できます。

注意:

「繰返し」プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。

レポートを一括処理するように設定するには:

1. Reports Builderで、「ファイル」→「開く」を選択します。

2. 作成例のソース・ファイルが置かれたディレクトリまでナビゲートし、ファイルinventory_report_dist.rdfを開きます。
オブジェクト・ナビゲータにレポートが表示されます。

3. オブジェクト・ナビゲータで、レポート名の下にある「ペーパー・レイアウト」ノードの横のビュー・アイコンをダブルクリックし、ペーパー・レイアウト・ビューを表示します。

4. ペーパー・レイアウト・ビューで、最も外側にある繰返し枠(R_G_WAREHOUSE_ID)を選択し、これを削除します。

図37-1 繰返し枠の削除

関連項目:

枠および繰返し枠の詳細は、Oracle Reportsオンライン・ヘルプを参照してください。

5. オブジェクト・ナビゲータで、「メイン・セクション」ノードを右クリックし、「プロパティ・インスペクタ」を選択して、メイン・セクションのプロパティ・インスペクタを表示します。

- 「セクション」で、「繰返し」プロパティをG_WAREHOUSE_IDに設定します。

6. レポートをinventoryreport_dist_your_initials.rdfという名前で保存します。
これで、レポートを倉庫IDに基づいて一括処理するよう設定する処理が完了しました。

37.3 配布XML定義の編集

Oracle Reportsの配布XMLファイルを使用して、配布の詳細を指定できます。たとえば、電子メールを通じて配布する場合は、受信者、返信先、件名などの詳細を指定できます。

この項では、配布XMLファイルの変更方法を説明します。配布の実施に必要な情報を入力する場所はすでに示しました。

レポートを配布する場合は、次のいずれかの作業が必要です。

- ソース・レポート(たとえばinventory_report_dist.rdf)と配布XMLファイル(たとえばdistribution.xml)が同じディレクトリにあることを確認します。
または

- Reports Serverからレポートを実行する場合は、宛先をXMLファイルのパスに設定します。(これは、第37.4項「レポートの実行」で説明します。)

注意:

配布の詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「拡張配布の作成」を参照してください。

配布XMLファイルを編集するには:

1. メモ帳などのテキスト・エディタで、提供されているサンプル・ファイルdistribution.xmlを開きます。

2. プレースホルダ・テキスト<YourFilePath>を検索し、このテキストを生成されるPDFの格納先となる場所の名前で置き換えます。
例: プレースホルダ・テキストを次の場所の名前で置き換えます。

d:\temp\

これにより、パスが次のように変更されます。

d:\temp\Rep_%amp;&lt;city&gt;.pdf

このフル・パスを使用することで、生成されたPDFファイルがd:\tempに配置されます。

3. プレースホルダ・テキスト<OriginEmailAddress>を検索し、このテキストを送信者の電子メール・アドレスで置き換えます。

4. プレースホルダ・テキスト<OriginEmailAddress>のすべてのインスタンスに対して手順3を実行します。

5. プレースホルダ・テキスト<DestinationEmailAddress>を検索し、このテキストを受信者の電子メール・アドレスで置き換えます。

6. プレースホルダ・テキスト<DestinationEmailAddress>のすべてのインスタンスに対して手順5を実行します。

注意:

この例では、静的電子メール・アドレスに電子メールを送信する方法を示します。ただし、レポートを様々な電子メール・アドレスに送信する場合は、データ・モデルに受信者フィールドを作成する必要があります。さらに、distribution.xmlのex2セクションで、プレースホルダ・テキスト<DestinationEmailAddress>を&amp;&lt;recipient&gt;で置き換えます。これで、distribution.xmlファイルの最初のセクション(ex1)を削除できます。

7. XMLファイルを、inventoryreport_dist_your_initials.rdfを保存したディレクトリに保存します。

注意:

XMLファイルの場所は実行時に指定できるため、XMLファイルを必ずしもRDFと同じディレクトリに保存する必要はありません。distribution.xmlとRDFをReports Pathに配置するか、コマンドラインURLで完全なパスを入力するか、いずれかを行う必要があります。

これで配布XMLファイルのカスタマイズが完了しました。このカスタマイズによって、個々の倉庫のレポートがすべて1つの電子メールに添付されて本社に送信され、各レポートが1つずつ添付された複数の電子メールが個々の倉庫に送信されるようになります。

37.4 レポートの実行

Webブラウザを使用してレポートを配布できます。次のコマンドをブラウザの「位置」フィールドに入力します。

http://host:port/reports/rwservlet?REPORT=your_path/inventory_report_dist_your_
initials.rdf&USERID=your_login_ID&SERVER=your_server_name&DISTRIBUTE=YES&
DESTINATION=your_path/distribution.xml

意味は次のとおりです。

your_pathはRDFファイルとdistribution.xmlファイルがある場所です。your_login_IDは、サンプルRDFで使用したサンプル・スキーマのログイン情報です。

SMTPメール・サーバーはインストール・プロセスで設定されます。インストール時にサーバーを指定しなかった場合は、電子メールの宛先へレポートを配布する前に、手動でメール・サーバーを設定できます。送信メール・サーバーは、サーバー構成ファイルのpluginParamを使用して指定します。

EXAMPLE:
<pluginParam name="mailServer">smtp01.mycorp.com</pluginParam>

メール・サーバーの設定の詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「Oracle Reports Servicesの構成」を参照してください。

レポートを実行すると、倉庫IDに基づいて倉庫ごとにファイルが作成され、指定のディレクトリに配置されます。レポートが配布されるときは、これらのファイルすべてが添付された1通の電子メールが1つのアドレスに送信されます。

distribution.xmlファイルに複数の電子メール・アドレスを設定した場合は、各倉庫(つまり各電子メール・アドレス)にその倉庫のレポートを含むファイルが1つ添付された電子メールが1つ送信されます。

37.5 サマリー

おめでとうございます。レポートは無事に配布されています。この章で学習した内容は次のとおりです。

- レイアウト内のグループに一括処理されるように既存のレポートのレイアウトを変更する。

- distribution.xmlファイルを変更して、電子メールでレポートを配布する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

38 PDF出力用のマルチバイト・キャラクタを含むレポートの作成

この章では、マルチバイト・キャラクタを含むレポートについて説明します。この章の手順に従うと、図38-1および図38-2に示すようなPDFレポート出力を生成できます。

図38-1 日本語でのマルチバイト・キャラクタ・セットUTF8のレポートの出力

図38-2 ポーランド語での同じマルチバイト・キャラクタ・セットUTF8のレポートの出力

概要

- Oracle Reportsに組み込まれているマルチバイト・キャラクタ・サポートによって、グローバルな企業は任意の言語でレポートを公開できます。簡体字中国語、繁体字中国語、日本語、韓国語などのマルチバイト文字およびUnicodeで表示されるテキストのレポートを生成できます。

- Oracle Reportsでは、PDFを含む様々な出力フォーマットでマルチバイト・キャラクタがサポートされています。この章では、UTF8キャラクタ・セットを使用してマルチバイト・キャラクタ・セット・レポートを作成し、PDF出力を生成します。

- Oracle Reportsを使用して、移植可能なPDFファイルを生成できます。フォントのサブ設定やフォント埋込みなどのPDF機能によって、特別なフォントがインストールされていないエンド・ユーザーのコンピュータでも表示できるPDFファイルを生成できます。

注意:

PDF出力を表示するには、コンピュータにAcrobat Readerをインストールする必要があります。

- PDFのフォント埋込みを使用する場合、PDFファイルにフォント・セット全体を組み込みます。

- Oracle ReportsでのPDFのフォント埋込みは、シングルバイトのType1フォント用であり、TrueTypeフォント用ではありません。したがって、特定のTrueTypeフォントをレポートに組み込む場合は、最初に、使用可能なサード・パーティ製ツールのいずれかを使用してこれらのフォントをType1フォントに変換する必要があります。

ヒント:

出力PDFファイルにフォントを埋め込む前にフォントに必要なライセンスを所有していることを確認してください。

- PDFのフォントのサブ設定とフォント埋込みは相互に排他ですが、PDFのフォントのサブ設定は、PDFのフォント埋込みの一種です。PDFのフォントのサブ設定は、シングルバイト・フォントでもマルチバイト・フォントでも機能するため、マルチバイト・レポートの作成に適しています。

- フォントのサブ設定では、PDF出力ファイルに、ドキュメントに表示される文字の情報のみが含まれるようになります。したがって、この機能のほうが、ファイル・サイズの点でより効率的な出力が生成されます。フォント埋込みとサブ設定のいずれを使用しても、コンピュータに特定のフォントをインストールする必要がなくなります。

注意:

詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「Oracle ReportsでのPDFの使用」を参照してください。

使用例

この例では、米国、日本およびポーランドに事務所を置いて、国際的な取引を行っています。この組織では、現地の責任者が倉庫の在庫を管理しています。様々な場所にある事務所では、それぞれ適した言語で製品リストを印刷する必要があります。マルチバイト・キャラクタを含むPDFフォーマットのレポートを作成し、Webおよびペーパー出力します。

このサンプル・レポートの作成過程では、次を行います。

- レポート・ウィザードを使用したマルチバイト・レポートの問合せおよびペーパー・レイアウトの作成

- UTF8 TrueTypeフォントを使用したレポートでのマルチバイト・キャラクタの表示

- レポートのPDFドキュメントの作成

サンプルのマルチバイト・キャラクタ・セット・レポートを表示するには、サンプル・フォルダmultibyteを開き、Oracle Reportsのサンプルmultibyte_utf8.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

38.1 この例の前提条件

この章の例を作成するには、サンプル・ファイルが必要です(前述の「使用例」を参照)。また、Oracle Database付属のOrder Entryサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。またシステムにAcrobat Readerをインストールする必要があります。

注意:

Oracle Reportsには、UNIX上でのUTF-8キャラクタ・セットとマルチバイト・フォントの使用に関していくつかの制限があるため、このレポートはWindowsでのみ作成することをお薦めします。UNIX上でマルチバイト・レポートをデプロイするには、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「クロス・プラットフォームにおける移植の問題の解決」を参照してください。

レポートを実行する前に、次の設定手順を実行します。

1. WindowsレジストリのORACLEキーのKEY_OHで、NLS_LANGをAMERICAN_AMERICA.UTF8に設定します。

ヒント:

レジストリ・キーを変更するとシステムが不安定になることがあるため、編集する前にレジストリをバックアップしてください。

2. uifont.aliファイルを開き、それを編集してTrueTypeフォント・ファイル名を指定します。[PDF:Subset]セクションで、"Arial Unicode MS" = "ARIALUNI.TTF"と入力します。その行を挿入した後は、uifont.aliファイルは次のようになります。

図38-3 編集してTrueTypeフォント・ファイル名を挿入したuifont.aliファイル

「図38-3 編集してTrueTypeフォント・ファイル名を挿入したuifont.aliファイル」の説明

注意:

WindowsおよびUNIX上では、uifont.aliファイルはORACLE_INSTANCE\config\
FRCommonComponent\frcommon\guicommon\tk\adminにあります。uifont.aliファイルは、Oracle Reportsによって使用されるフォント・エイリアスを定義し、クロス・プラットフォーム開発に大変便利です。このファイルによって、特定のフォントを使用できない場合にかわりに使用するフォントを定義できます。詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「Oracle ReportsでのPDFの使用」でフォント関連の機能に関する項を参照してください。

3. WindowsレジストリのOracleキーおよびIDS_HOMEで、ARIALUNI.TTF TrueTypeフォント・ファイルの場所をREPORTS_PATHの値に追加します。たとえば、C:\WINNT\Fontsを追加します。

注意:

TrueTypeフォント・ファイルARIALUNI.TTFがC:\WINNT\Fontsにインストールされていない場合は、インストールします。

38.2 マルチバイト・レポートの問合せおよびペーパー・レイアウトの作成

レポートは、レポート・ウィザードを使用して作成するか、または手動で作成できます。

この例のレポートを作成するには、レポート・ウィザードを使用します。ウィザードを使用して、レポートのレイアウト、スタイル、フィールドおよびテンプレートの詳細を指定します。また、ランタイム・ユーザー・パラメータによる条件を含むSQL問合せも設定できます。このパラメータによって、ユーザーは、印刷されるレポート出力の言語を指定できます。

簡単なレポートを作成するには:

1. Oracle Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 次のページで、「Webおよびペーパー・レイアウトの両方を作成」が選択されていることを確認し、「次へ」をクリックします。

5. 「スタイル」ページで次の操作を行います。

- 「タイトル」にレポートのタイトルを入力します。たとえば、製品リストなどです。

- 「表」が選択されていることを確認します。

- 「次へ」をクリックします。

6. 「データ・ソース」ページで、「SQL問合せ」が選択されていることを確認し、「次へ」をクリックします。

7. 「データ」ページで「クエリー・ビルダー」をクリックします。

8. データ表選択ダイアログ・ボックスで、「PRODUCT_DESCRIPTIONS」をクリックし、「インクルード」をクリックします。

9. 「閉じる」をクリックします。

10. クエリー・ビルダーに表が表示されます。次の列名の左側をクリックし、それらを選択します。

- PRODUCT_ID

- LANGUAGE ID

- TRANSLATED_NAME

- TRANSLATED_DESCRIPTION

11. 「OK」をクリックします。

12. 「データ・ソース定義」フィールドに、問合せが次のように表示されます。

SELECT ALL PRODUCT_DESCRIPTIONS.PRODUCT_ID,
PRODUCT_DESCRIPTIONS.LANGUAGE_ID,
PRODUCT_DESCRIPTIONS.TRANSLATED_NAME,
PRODUCT_DESCRIPTIONS.TRANSLATED_DESCRIPTION
FROM PRODUCT_DESCRIPTIONS

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルutf8_code.txtからコードをコピーして「データ・ソース定義」フィールドに貼り付けます。

- 前述の手順で説明されているように、「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

13. 「データ・ソース定義」フィールドで、問合せのFROM句の後にwhere language_id = :p_lang_idと入力します。これによって、where句が問合せ定義に追加されます。where句によって、ユーザーが実行時に選択した言語に基づいてデータが制限されます。
問合せは次のようになります。

SELECT ALL PRODUCT_DESCRIPTIONS.PRODUCT_ID,
PRODUCT_DESCRIPTIONS.LANGUAGE_ID,
PRODUCT_DESCRIPTIONS.TRANSLATED_NAME,
PRODUCT_DESCRIPTIONS.TRANSLATED_DESCRIPTION
FROM PRODUCT_DESCRIPTIONS
where language_id = :p_lang_id

注意:

式:p_lang_idは、コロンが前に付いている場合はパラメータとして処理されます。パラメータが存在しない場合、Oracle Reports Builderによってパラメータが作成されます。その後は、オブジェクト・ナビゲータの「データ・モデル」ノードの「ユーザー・パラメータ」セクションでこのパラメータにアクセスできます。

14. 「次へ」をクリックします。
Oracle Reports Builderには、追加のパラメータが作成されたことを示す次のメッセージが表示されます。

Note: The query 'Q_1' has created the bind parameter(s) 'P_LANG_ID'.

15. 「OK」をクリックします。

16. 「フィールド」ページで次の操作を行います。

- 「使用可能フィールド」リストの「PRODUCT_ID」をクリックし、「>」ボタンをクリックして、このフィールドを「表示フィールド」リストに移動します。

- 「TRANSLATED_NAME」をクリックし、「>」ボタンをクリックして、このフィールドを「表示フィールド」リストに移動します。

- 「TRANSLATED_DESCRIPTION」をクリックし、「>」ボタンをクリックして、このフィールドを「表示フィールド」リストに移動します。

17. 「次へ」をクリックします。

18. 「合計」ページで「次へ」をクリックします。

19. 「ラベル」ページで「次へ」をクリックします。

20. 「テンプレート」ページで「Beige」が選択されていることを確認し、「終了」をクリックします。
ユーザー・パラメータを参照したため、Oracle Reports Builderによって「ランタイム・パラメータ・フォーム」が表示されます。

21. JAと入力し、「レポート実行」ボタンをクリックして、レポートを実行します。
レポート出力がペーパー・デザイン・ビューに表示されます。次の例のようになります。

図38-4 デフォルト設定の日本語文字がないレポートのペーパー・デザイン・ビュー

ヒント:

結果が表示されない場合、指定した条件でデータベースからデータが取得されるように、値JAが大文字で入力されていることを確認してください。

UTF8 TrueTypeフォントが選択されていないため、日本語文字はまだ表示されません。

22. レポートをmultibyteutf8_your_initials.rdfという名前で保存します。

注意:

レポートを設計するときは、予防策としてレポートを頻繁に異なるファイル名で保存しておくことをお薦めします。そうすれば、いくつかの変更を修正する必要が生じたり、エラーが発生した場合に、前に保存したファイルに戻り、その時点から修正することができます。

38.3 レポートでのマルチバイト・キャラクタの表示

レポートは正常に作成され、実行されました。次に、フォントをUTF8マルチバイト・キャラクタ・セットTrueTypeフォントに変更し、レポート出力で選択した言語の文字が表示されるようにする必要があります。

フォントをマルチバイト・キャラクタTrueTypeフォントに変換するには:

1. ペーパー・デザイン・ビューで、[Shift]キーを押しながら、「Translated Name」と「Translated Description」ラベルの下の値をクリックし、これらの2つの列のすべての値を選択します。それらのプロパティを同時に変更できるようになります。

2. ツールバーのフォント・ボックスから「Arial Unicode MS」を選択します。
レポートが実行され、レポート出力のペーパー・デザイン・ビューが日本語文字で表示されます。次の例のようになります。

図38-5 日本語文字を含むレポートのペーパー・デザイン・ビュー

同じレポートを別の言語で実行するには:

同じレポートを異なるランタイム・パラメータで再度実行し、別の言語で出力を表示するには、次の手順を実行します。

1. ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックするか、「プログラム」→「ペーパー・レイアウトを実行」を選択します。

2. ランタイム・パラメータ・フォームで、値PLを入力し、「レポート実行」ボタンをクリックし、レポートを実行します。
レポート出力のペーパー・デザイン・ビューが、ポーランド語文字で表示されます。次の例のようになります。

図38-6 ポーランド語キャラクタを含むレポートのペーパー・デザイン・ビュー

38.4 レポートのPDFドキュメントの作成

Oracle Reports Builderでは、PDFフォーマットでのマルチバイト・キャラクタがサポートされています。レポートのPDFファイルを生成すると、次のことが可能です。

- 移植可能なフォーマットでのレポート出力の作成

- PDFのフォントのサブ設定とPDFのフォント埋込み機能の使用

ヒント:

ファイルを生成する前に必ず次の手順を実行してください。

- NLS_LANGのレジストリ・エントリをAMERICAN_AMERICA.UTF8に変更します。

- uifont.aliファイルを編集します。

- REPORTS_PATHレジストリ・エントリを編集します。

詳細は、第38.1項「この例の前提条件」を参照してください。

PDFファイルを生成するには:

1. Oracle Reports Builderで、「ファイル」→「ファイルへ出力」→「PDF」を選択します。

2. レポートをmultibyteutf8_your_initials.pdfという名前で保存します。

3. 表示されたランタイム・パラメータ・フォームで、値PLを(これとまったく同じように)入力し、「レポート実行」ボタンをクリックしてレポートを実行します。
「レポート進捗」ダイアログ・ボックスが表示され、PDF出力の印刷ステータスが表示されます。このダイアログ・ボックスは、PDFが作成されると閉じます。

4. このPDFファイル(multibyteutf8_your_initials.pdf)を見つけて、ダブルクリックしてファイルを開きます。

次の例のようになります。

図38-7 ポーランド語文字を含むレポートのPDFファイル

注意:

このPDFファイルは、Unicodeフォントをインストールしていなくても、どのコンピュータでも開くことができ、まったく同じように表示されます。これは、PDFファイルにレポートで使用されるフォントが組み込まれているためです。

デフォルトでは、PDF出力の文字の輪郭がなめらかになっていないことに注意してください。Acrobat Readerの「ラインアートのスムージング」設定で文字の輪郭をなめらかに表示できます。

38.5 サマリー

おめでとうございます。企業内の任意のキャラクタ・セットをサポートするレポートが正常に作成されました。Oracle Reports Builderを使用して、フォントのサブ設定を使用した移植可能なPDFファイルを生成しました。

この章で学習した内容は次のとおりです。

- レポート・ウィザードを使用したマルチバイト・レポートの問合せとペーパー・レイアウトの作成

- UTF8 TrueTypeフォントを使用したマルチバイト・キャラクタの表示

- レポートの移植可能なPDFファイルの作成

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

第VI部

PL/SQLおよびJavaを使用したレポートの作成

この部の各章では、PL/SQLコードまたはJavaを使用したレポートの作成手順を示します。PL/SQL、PL/SQLライブラリ、REFカーソルおよびバーコードをレポートに組み込むことができます。また、パラメータ・フォームを含むJSPベースのWebレポートを作成できます。

- 第40章「PL/SQLを含むレポートの作成」

PL/SQLレポートでは、外部PL/SQLライブラリおよびレポート内のPL/SQLを使用して、フォーマットの変更や列値に対する計算を実行できます。たとえば、フォーマット・トリガーでPL/SQLプロシージャを使用することによって、ブレーク・レポートと同じような空白をレコード間に挿入したり、各従業員の報酬合計を計算することがきます。

- 第41章「REFカーソルを使用したペーパー・レポートの作成」

REFカーソルを使用したペーパー・レポートは、問合せの管理に役立ちます。(REFカーソルは、PL/SQL問合せから参照できるPL/SQLカーソル・データ型です。)たとえば、作成した多数の問合せをレポートで再利用する場合は、レポート・データ・モデル内でREFカーソルを使用することで、それらの問合せにアクセスできます。

- 第42章「JSPベースのWebレポートに対する単純なパラメータ・フォームの作成」

JSPベースのWebレポートにパラメータ・フォームを追加することで、レポートに表示するデータを決定するユーザー入力を実行時に受け入れるよう、このレポートを変更できます。

- 第43章「バーコードを使用したレポートの作成」

バーコードJavaBeanを使用して、ペーパー・レポートやWebレポートにバーコードを追加できます。Oracle Reports Builderでは、指定したデータに基づくバーコードがバーコードJavaBeanによって自動で生成されます。たとえば、バーコードを使用すると、発注コードに基づくバーコードを生成することで発注の追跡が可能になります。

- 第44章「アクセス可能なJSPベースのWebレポートの作成」

Oracle ReportsおよびWebアクセシビリティ・ガイドラインで定義された標準を使用すると、スクリーン・リーダーなどの補助テクノロジに対応した出力を生成するレポートを作成できます。Oracle Reportsは、この作業をサポートするプロパティとタグを提供します。

39 グラフを使用したレポートの作成

この章では、Oracle Reports 11gリリース1 (11.1.1)の新しいタイプのグラフおよびOracle Reports Builderでサポートされる新機能について学習します。

39.1 グラフおよびグラフ・ウィザードについて

グラフ・ウィザードでは、ペーパーベースとJSPベースの両方のWebレポートに、様々な種類のグラフを簡単に追加できます。Oracle Reports Builderは、ウィザードの各ページで指定された情報を使用して、グラフを表すXML定義を作成し、実行時に結果のグラフの外観を表示します。

表39-1は、Oracle Reports 11gリリース1 (11.1.1)の新しいグラフ機能、およびそれと同等の10gリリース2 (10.1.2)の機能を示しています。

表39-1 11gの機能と10gの機能との比較

11gの新機能および拡張機能

10gの同等機能

新しいタイプのグラフ: 新しいタイプのファンネル・グラフ、拡張円グラフおよび曲線グラフを使用して、より多様なグラフを作成できます。

- ファンネル・グラフを作成するには、グラフ・ウィザードを使用して、「スタイル」パネルでファンネル・グラフ・スタイルを選択します。

- 曲線グラフを作成するには、第4.9.8.2項「グラフの追加」の手順に従って単純な折れ線グラフを作成し、グラフのXML定義に次のものを追加します。

<SeriesItems>
<Series id="0" markerType="MT_CURVE_LINE"/>
</SeriesItems>

該当なし。

既存のグラフのタイプの機能拡張:

グラフ・ウィザードでの数値書式設定および時間軸上での不規則な時間間隔のプロットがサポートされます。

- グラフ・ウィザードで数値書式設定がサポートされるため、データ・モデルに関係なくグラフで数値の書式を設定できます。
数値書式を設定するには、グラフ・ウィザードを使用して(「Yフォーマット」パネル→「軸ラベルのフォーマット」ボタン→「数値」タブ)Y軸の値を書式設定します。

- 不規則な時間間隔のプロットがサポートされるため、制限なしに時間データをプロットできます。詳細は、「不規則な時間間隔のプロット」を参照してください。

時間データのプロットに制限があります。

SVG (Scalable Vector Graphic)イメージのサポート。SVGにより高い解像度を実現し、グラフ出力においてファイルのサイズが小さくなります。解像度を下げることなくグラフ・イメージの出力を拡大できます。

PNG、JPGおよびGIF出力フォーマットのみがサポートされます。

新しいチャート・スタイル: グラフ・ウィザードのスタイル・パネルで、事前定義された新しいスタイルがサポートされます。

数個のチャート・スタイルのみがサポートされます。

グラフ・ウィザードを使用してグラフの属性値およびレイアウトの作成や編集ができますが、グラフ・ウィザードでは指定できない属性もあります。グラフ・ウィザードでは指定できない部分に関してグラフのXML定義をカスタマイズするには、グラフの「グラフ設定」プロパティ(ペーパーベースのレポートの場合)またはWebソース・ビュー(JSPベースのWebレポートの場合)で、XMLを直接編集します。使用できる全属性のリストは、DTDファイルgraph.dtdにあります。

注意:

graph.dtdは次の場所にあります。

- MWHome\oracle_common\modules\oracle.adf.view_11.1.1\dvt-jclient.jar

- Oracle Technology Network (OTN)のGetting Started with Oracle Reports: Oracle Reports製品ページ(http://www.oracle.com/technology/products/reports/index.html)で、「Getting Started」をクリックし、「Getting Started with Oracle Reports」ホーム・ページを表示します。左側にあるトピックのリストの中から「Index」をクリックします。「Collateral Type」リストで「Documentation」を選択し、「Search」をクリックします。表示されたリストの中から「Documented Graph DTD」を探します。

使用に関する注意

- グラフ・ウィザードでグラフのタイトル、サブタイトル、脚注または軸タイトルを指定する場合、字句参照を(ユーザー・パラメータ、システム・パラメータおよび列に対して)テキストに挿入して、実行時に値を表示できます。

- グラフに日付を指定する場合、グラフに表示される日付値の書式は、レポート出力の他のフィールドでの書式と異なる場合があります。

- 以前のリリースでは、グラフ・ウィザードの「タイプ」パネルの「3D効果」チェック・ボックスで、グラフを立体表示するかどうかを指定できました。この効果を現在のリリースに実装するには、次の棒グラフの例で太字で示しているように、グラフのXML定義を編集する必要があります。

<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>

- 以前のバージョンのOracle Reportsで作成され、Oracle Graphics 6iチャートが含まれるレポートでも、同じマシンの別のORACLE_HOMEにOracle Graphics 6iランタイムをインストールすれば、引き続き実行できます。ただし、この構成はサポート対象外であり、オラクル社ではこの構成によりバグが発生しても修正を行いません。

プライマリ・グラフ・タイプ

一般的なグラフの場合は、次のプライマリ・グラフ・タイプでデータを最適に表現できます。

- 棒グラフ

- 折れ線グラフ

- 面グラフ

- 円グラフ

- ファンネル・グラフ

- 複合グラフ

セカンダリ・グラフ・タイプ

次のタイプは、特定のデータ型に関連付けられた特殊用途(特殊なグラフ)に使用されたり、独特のデータを表示する方法として使用されます。

- 散布図

- バブル・グラフ

- レーダー・グラフ

- 極座標グラフ

- パレート・グラフ

- 株価グラフ

- 3次元グラフ

- 曲線グラフ

第39.3項「新しいタイプのグラフ」を参照してください。

アクセス

ペーパー・レポートに対するグラフ・ウィザードを表示するには:

- 「ペーパー・レイアウト」ビューで、「挿入」→「グラフ」を選択します。

- ペーパー・レイアウト・ビューで、メイン領域(キャンバス領域)を右クリックし、「グラフ・ウィザード」選択します。

JSPベースのWebレポートに対するグラフ・ウィザードを表示するには:

- 「Webソース」ビューで、「挿入」→「グラフ」を選択します。

再実行

ペーパー・レポートに含まれている既存のグラフに対してグラフ・ウィザードを再実行するには:

1. ペーパー・レイアウト・ビューで、グラフをクリックします。

2. グラフ・ウィザードを再実行モードで表示するには、次のいずれかの操作を行います。

- グラフを右クリックして「グラフ・ウィザード」を選択します。

- グラフをクリックし、「編集」→「設定」を選択します。

JSPベースのWebレポートに含まれている既存のグラフに対してグラフ・ウィザードを再実行するには:

「Webソース」ビューで、<rw:graph>タグと</rw:graph>タグの間の位置の場所にカーソルを置き、「編集」→「設定」を選択します。

グラフ・ウィザードの使用

ウィザードのタブ・ページのフィールドに関するヘルプを参照するには、タブ・ページの下部にある「ヘルプ」をクリックします。

関連項目

第4.9.8.2項「グラフの追加」

第4.9.8.3項「グラフの編集」

第4.9.8.4項「グラフ・ハイパーリンクの追加」

39.2 新機能と利点

Oracle Reportsを使用すると、ペーパーベースおよびJSPベースのWebレポートに、多様なグラフを簡単に追加できます。

Oracle Reports 11gリリース1 (11.1.1)では、次の機能がサポートされます。

- SVG (Scalable Vector Graphic)イメージのサポート。

- 不規則な時間間隔のプロット。詳細は、「不規則な時間間隔のプロット」を参照してください。

- グラフ・ウィザードでの新しいチャート・スタイル。詳細は、「新しいチャート・スタイル」を参照してください。

- グラフ・ウィザードでの数値書式設定のサポート。

新しいタイプのグラフおよび新機能によって、Reports Builderでは次の利点が実現されます。

- グラフの種類が増えて、多様な用途に使用できます。

- 解像度を低下させずに、グラフ・イメージの出力を向上できます。

- 制限なしに時間データをプロットできます。

- データ・モデルに関係なくグラフで数値の書式を設定できます。

不規則な時間間隔のプロット

Oracle Reports 11gリリース1 (11.1.1)では、時間軸上での不規則な時間間隔のプロットがサポートされます。詳細は、「図39-1 不規則な時間間隔のプロット」を参照してください。

図39-1 不規則な時間間隔のプロット

新しいチャート・スタイル

Oracle Reports 11gリリース1 (11.1.1)では、次の新しいチャート・スタイルがサポートされます。

- オータム

- モノクロ

- アース

- エグゼキュティブ

- 会計

- 投影

- レガッタ

詳細は、「図39-2 新しいチャート・スタイル」を参照してください。

図39-2 新しいチャート・スタイル

39.3 新しいタイプのグラフ

Oracle Reports 11gリリース1 (11.1.1)では、次のタイプのグラフがサポートされます。

- ファンネル・グラフ

- 曲線グラフまたは近似曲線グラフ

- 拡張円グラフ

39.3.1 ファンネル・グラフ

ファンネル・グラフは、プロセスの段階に関連するデータを視覚的に表したものです。ファンネルの指定段階の値がそのスライス部分の割当てに近付くにつれ、そのスライス部分が塗りつぶされていきます。ファンネルでは、ターゲットの値と実際の値、および色分けされたレベルを表す3次元チャートがレンダリングされます。詳細は、図39-3 ファンネル・グラフを参照してください。

図39-3 ファンネル・グラフ

39.3.2 曲線グラフまたは近似曲線グラフ

曲線グラフまたは近似曲線グラフでは、曲線として、一連のデータ・ポイントとしてまたは線でつながれたデータ・ポイントとしてデータが表されます。曲線グラフのデータには、グループのメンバーごとに2つ以上のポイントが必要です。詳細は、図39-4 曲線グラフを参照してください。

図39-4 曲線グラフ

39.3.3 拡張円グラフ

円グラフは、1つ以上の円の扇型円弧としてデータが表され、円がカットされたパイのように見えます。拡張円グラフでは、データ値、パーセントおよびテキスト・ラベルの組合せを追加できます。

40 PL/SQLを含むレポートの作成

この章では、PL/SQLを含むレポートについて説明します。この章の手順に従うと、図40-1に示すレポート出力を生成できます。

図40-1 PL/SQLレポートの出力

概要

- PL/SQLをレポートに取り込むには、様々な方法があります。これまでに、簡単なPL/SQL式を使用して値を計算する式列を作成したり、PL/SQLを使用して条件に応じてメール・ラベルの書式を決めるフォーマット・トリガーを作成しています。ここでは、外部ライブラリ、ローカル・ファンクションおよびプロシージャを作成します。

- 外部PL/SQLライブラリは、名前付きPL/SQLファンクションとプロシージャを含むモジュールです。これらはデータベースまたはファイルに格納でき、任意のレポートから参照できるだけでなく他のOracle製品からも参照できます。外部ライブラリを使用することで、レポート、フォーム、グラフなどで、頻繁に使用するPL/SQL構文を何度も入力する必要がなくなります。このため、同じPL/SQLコードを複数保持するという問題も回避できます。

- ローカルPL/SQLは、名前付きPL/SQLファンクションとプロシージャで構成され、レポート定義に格納されます。ローカルPL/SQLを参照できるのは、レポート内のオブジェクト(グループ・フィルタ、式列、フォーマット・トリガーなど)のみです。ただし、1つの場所にPL/SQLを保持できるという点では、利便性は変わりません。

データ・リレーションシップ

このレポートでは、1つの問合せを使用します。また、外部ライブラリに格納されているファンクション、レポートレベルのファンクション、2つの式列、および空白を挿入する前に表示するレコード数を決めるパラメータを追加します。

レイアウト

このレポートでは、表形式のレイアウト・スタイルを少し修正したものを使用します。

使用例

この例では、外部PL/SQLライブラリとPL/SQLをレポートで使用して、フォーマットを変更してレコード間に間隔を追加したり、各従業員の報酬合計を計算します。データ・モデル・ビューで問合せを手動で作成し、ペーパー・レイアウト・ビューでレポートのレイアウトを変更します。式列、サマリー列、およびサマリー列とユーザー・パラメータを使用するフォーマット・トリガーを作成します。

このサンプル・レポートの作成過程では、次を行います。

- このレポートで使用するPL/SQLライブラリの作成。

- レポート定義の作成:

- 問合せの作成。

- ボーナスを計算する式列の作成。

- 報酬合計を計算するレポートレベルのファンクションの作成。

- 報酬合計用の第2の式列の作成。

- レポート・ブロック・ウィザードを使用したレポート・レイアウトの作成。

- レコード間への垂直間隔の追加:

- ユーザー・パラメータの作成。

- レコード数をカウントするサマリー列の作成。

- レイアウトの変更。

- フォーマット・トリガーの作成。

- ペーパーを対象としたレポートの実行。

PL/SQLレポートのサンプルを表示するには、サンプル・フォルダplsqlを開き、Oracle Reportsのサンプルplsql.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。

40.1 この例の前提条件

この章の例を作成するには、Oracle Database付属のHuman Resourcesサンプル・スキーマ(HR)に対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

40.2 新しいPL/SQLライブラリの作成

この項の手順では、新しいPL/SQLライブラリを作成し、次にライブラリに含まれるファンクションを作成する方法について説明します。

ライブラリを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「新規レポートを手動で作成」を選択して「OK」をクリックします。

3. オブジェクト・ナビゲータで、「ファイル」→「新規」→「PL/SQLライブラリ」を選択します。
オブジェクト・ナビゲータのレポート名の下の「PL/SQLライブラリ」ノードの下に、新しいライブラリが表示されます。

4. このノードが開かれていない場合は、新しいライブラリのノードを開いて、「プログラム・ユニット」と連結ライブラリという2つのサブノードを表示します。

5. 「プログラム・ユニット」ノードをクリックして、「編集」→「作成」を選択します。

6. 新規プログラム・ユニット・ダイアログ・ボックスで、「名前」フィールドにBONUS_PAYと入力します。

7. 「ファンクション」を選択し、「OK」をクリックしてPL/SQLエディタを表示します。

8. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

FUNCTION BONUS_PAY(JOB_ID IN CHAR, SAL IN NUMBER, COMM_PCT IN NUMBER) RETURN NUMBER IS
BEGIN
IF JOB_ID != 'SA_REP' THEN
RETURN (SAL * 0.15);
ELSE
IF SAL * COMM_PCT >= 500 THEN
RETURN ((SAL + SAL * COMM_PCT) * 0.15);
ELSE
RETURN ((SAL + SAL * COMM_PCT) * 0.10);
END IF;
END IF;
END;

注意:

提供されているテキスト・ファイルplsql_code.txtから、このコードをコピーして貼り付けると、コードを入力できます。

9. 「コンパイル」をクリックします。

10. コンパイル・エラーが発生した場合は、作成したコードがサンプルのRDFファイルまたはこの章のコードと同じになるように修正して、再度コンパイルします。

11. コンパイル・エラーがなくなったら、「閉じる」をクリックします。
新しいファンクションがオブジェクト・ナビゲータに表示されます。

12. 「ファイル」→「保存」を選択して、新しいファンクションを保存します。

13. ライブラリ保存ダイアログ・ボックスで、bonus.pllと入力して「ファイル・システム」が選択されていることを確認し、「OK」をクリックします。

14. オブジェクト・ナビゲータで、作成した「MODULE1」レポートの下にある連結ライブラリ/ノードをクリックします。必ずこのノードを選択してください。「PL/SQLライブラリ」ノードの下にあるノードではありません。

15. 「編集」→「作成」を選択します。

16. 連結ライブラリ・ダイアログ・ボックスで、「library」フィールドにbonus.pllと入力します。

注意:

bonus.pllを別のディレクトリに保存した場合は、「参照」をクリックして、ファイル・システム上の保存場所を見つけます。参照する前に「ファイル・システム」が選択されていることを確認します。

17. ライブラリ名が「library」フィールドに表示されたら、連結をクリックしてライブラリを連結します。

注意:

名前にパスが含まれるライブラリを連結すると、パス名は移植できないことが通知され、パスを削除するオプションを選択できます。パス指定をそのまま使用した場合、その特定の場所でのみライブラリが検索されます。そのため、ライブラリを移動すると、Reports Builderではライブラリが見つからなくなります。パスを削除した場合は、ライブラリを移動しても、標準の検索パスを使用してライブラリが検索されます。

この時点で、オブジェクト・ナビゲータのオブジェクト構造は次のようになっています。

図40-2 オブジェクト・ナビゲータ

18. レポートをplsqlreport_your_initials.rdfという名前で保存します。

40.3 レポート定義の作成

この項の手順では、レポートを定義する問合せと式列を作成し、作成したbonus.pll外部PL/SQLライブラリのコードをコールする方法について説明します。

ファンクションに依存する式列などもあるため、説明されている順序に従ってオブジェクトを作成することをお薦めします。

40.3.1 問合せの作成

この項の手順では、レポートに必要なデータを取得する問合せを作成する方法について説明します。

問合せを作成するには:

1. オブジェクト・ナビゲータで、「データ・モデル」ノードの横のビュー・アイコンをダブルクリックして、データ・モデル・ビューを表示します。

2. データ・モデル・ビューで、「挿入」→「問合せ」を選択してデータ・ウィザードを表示します。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「問合せ」ページで、問合せ名はデフォルトのままにして、「次へ」をクリックします。

5. 「データ・ソース」ページで、「SQL問合せ」を選択し、「次へ」をクリックします。

6. 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。

SELECT FIRST_NAME, LAST_NAME, JOB_ID, SALARY,COMMISSION_PCT
FROM EMPLOYEES
ORDER BY LAST_NAME

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルplsql_code.txtからコードをコピーして、「データ・ソース定義」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「データ・ソース定義」フィールドにコードを入力します。

7. 「次へ」をクリックします。

注意:

データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第40.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。

8. 「グループ」ページで「次へ」をクリックします。

9. 「終了」をクリックして、データ・モデル・ビューに最初の問合せを表示します。次の例のようになります。

図40-3 PL/SQLレポートのデータ・モデル・ビュー

10. レポートを保存します。

40.3.2 ボーナスを計算する式列の作成

この項の手順では、PL/SQLファンクションを使用して、各従業員のボーナスを計算する式列を作成する方法について説明します。

BONUS式列を作成するには:

1. データ・モデル・ビューで、グループ「G_FIRST_NAME」をクリックします。次に、グループに列を追加できるように、下部にあるサイズ変更ハンドルをクリックして下方向にドラッグします。次の例のようになります。

図40-4 G_FIRST_NAMEが拡張されたデータ・モデル

2. ツール・パレットの「式列」ツールをクリックし、「G_FIRST_NAME」グループ内でクリックして式列を作成します。

図40-5 名前付けされていない式列を含むデータ・モデル

3. 新しい式列オブジェクト(CF_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「BONUS」に設定します。

- 「プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。

4. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function BONUSFormula return Number is
begin
return BONUS_PAY(:JOB_ID, :SALARY, :COMMISSION_PCT);
end;

注意:

提供されているテキスト・ファイルplsql_code.txtから、このコードをコピーして貼り付けると、コードを入力できます。このコードはBonus式列用です。

5. 「コンパイル」をクリックします。

注意:

コンパイル・エラーが発生した場合は、入力したコードと提供されているコードを比較してください。

6. コンパイル・エラーがない場合は、「閉じる」をクリックして、データ・モデル・ビューにレポートのデータ・モデルを表示します。次の例のようになります。

図40-6 BONUS式列作成後のデータ・モデル

7. レポートを保存します。

40.3.3 報酬合計を計算するレポートレベルのファンクションの作成

この項の手順では、営業担当者の報酬合計(列SALARYの値にCOMMとBONUSを加算)と残りの従業員の報酬合計(SALARYにBONUSを加算)を返すファンクションを記述する方法について説明します。

1. オブジェクト・ナビゲータで、「プログラム・ユニット」ノードをクリックし、「編集」→「作成」を選択します。

2. 新規プログラム・ユニット・ダイアログ・ボックスで、「名前」フィールドにFINAL_CALCと入力します。

3. 「ファンクション」を選択し、「OK」をクリックします。

4. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

FUNCTION FINAL_CALC RETURN NUMBER IS
BEGIN
IF :JOB_ID = 'SA_REP' THEN
RETURN (:BONUS + :SALARY + :COMMISSION_PCT * :SALARY);
ELSE
RETURN (:BONUS + :SALARY);
END IF;
END;

注意:

提供されているテキスト・ファイルplsql_code.txtから、このコードをコピーして貼り付けると、コードを入力できます。このコードはFinal Calc用です。

5. 「コンパイル」をクリックします。

6. エラーが発生せずにコードがコンパイルされたら、「閉じる」をクリックします。
新しいファンクションFINAL_CALCが次のようにオブジェクト・ナビゲータに表示されます。

図40-7 FINAL_CALCファンクション作成後のオブジェクト・ナビゲータ

7. レポートを保存します。

40.3.4 報酬合計用の第2の式列の作成

この項の手順では、報酬合計を計算する別の式列を作成する方法について説明します。レポートレベルのファンクションFINAL_CALCによって計算される値が、列TOTAL_COMPに割り当てられます。式列の作成方法について不明な点がある場合は、第40.3.2項「ボーナスを計算する式列の作成」を参照してください。

TOTAL_COMP式列を作成するには:

1. データ・モデル・ビューで、前述の手順に従って、BONUS式列の下に第2の式列を作成します。

2. 新しい式列オブジェクト(CF_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「TOTAL_COMP」に設定します。

- 「プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。

3. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function TOTAL_COMPFormula return Number is
begin
return FINAL_CALC;
end;

注意:

提供されているテキスト・ファイルplsql_code.txtから、このコードをコピーして貼り付けると、コードを入力できます。このコードはTotal Comp式列用です。

4. 「コンパイル」をクリックします。

5. エラーが発生せずにコードがコンパイルされたら、「閉じる」をクリックして、データ・モデル・ビューにレポートのデータ・モデルを表示します。次の例のようになります。

図40-8 BONUS式列とTOTAL_COMP式列作成後のデータ・モデル

6. レポートを保存します。

40.4 レポート・ブロック・ウィザードを使用したレポート・レイアウトの作成

必要な式列とファンクションの作成が終了したら、レポートのレイアウトを作成できます。

レポート・レイアウトを作成するには:

1. ツールバーの「ペーパー・レイアウト」ボタンをクリックして、ペーパー・レイアウト・ビューを表示します。

2. 「ペーパー・レイアウト」ビューで、「挿入」→「レポート・ブロック」を選択します。

3. レポート・ブロック・ウィザードの「スタイル」ページで、「表」を選択して「次へ」をクリックします。

4. 「グループ」ページで、「使用可能グループ」リストの「G_FIRST_NAME」をクリックし、「下へ」をクリックして印刷方向を指定し、「表示グループ」リストに移動して「次へ」をクリックします。

5. 「フィールド」ページで、「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動します。「表示フィールド」リストの内容は次のようになります。

図40-9 「表示フィールド」リスト

注意:

フィールドが正しい順序で表示されていない場合は、該当のフィールド名をクリックしてリスト内の適切な位置にドラッグします。

6. 「次へ」をクリックします。

7. 「ラベル」ページで、ラベルを次のように変更し、「次へ」をクリックします。

フィールド

ラベル

COMMISSION_PCT

Commission

TOTAL_COMP

Total Compensation

8. 「テンプレート」ページで「終了」をクリックして、ペーパー・レイアウト・ビューにレポート・レイアウトを表示します。次の例のようになります。

図40-10 PL/SQLサンプル・レポートのペーパー・レイアウト・ビュー

9. ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックしてレポートを実行し、ペーパー・デザイン・ビューに表示します。

10. ペーパー・デザイン・ビューで、ツールバーの「フレックス・オフ」ボタンをクリックします。

11. 「Last Name」ラベルを削除します。

12. 「First Name」ラベルのテキストを「Name」に変更します。

13. 新しい「Name」ラベルの幅を姓名用の両列にまたがるように調整します。

14. 姓名用の両列の間に1文字分の空白が表示されるように、両列のサイズを調整します。

15. オブジェクト・ナビゲータで、「F_FIRST_NAME」フィールドの横のプロパティ・アイコンをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「標準レイアウト」で、「垂直拡張度」プロパティを「固定」に設定し、「水平拡張度」プロパティを「可変」に設定します。

16. 「F_LAST_NAME」フィールドに対して、同じ手順を繰り返します。

17. ツールバーの「ペーパー・レイアウト」ボタンをクリックして、ペーパー・レイアウト・ビューを表示します。

18. ペーパー・レイアウト・ビューで、ツール・パレットの「枠」ツールをクリックします。

19. 「F_FIRST_NAME」フィールドと「F_LAST_NAME」フィールドを囲む枠を描画します。

20. 枠を選択した状態で、「ツール」→「プロパティ・インスペクタ」を選択してプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「M_NAME」に設定します。

21. ペーパー・レイアウト・ビューで、ツールバーの「フレックス・オフ」が選択されていることを確認します。

22. 枠を選択し、その枠がF_FIRST_NAMEとF_LAST_NAMEフィールドの両方を囲むまで、「レイアウト」→「背面へ」を選択します。

ヒント:

オブジェクト・ナビゲータでフィールドを確認しながら、「レイアウト」→「背面へ」を選択できます。2つのフィールドが「M_NAME」のサブノードになったら、操作を停止します。

操作が完了すると、オブジェクト・ナビゲータは次のようになります。

図40-11 M_NAME繰返し枠作成後のオブジェクト・ナビゲータ

23. ツールバーの「ペーパー・デザイン」ボタンをクリックして、ペーパー・デザイン・ビューにレポートを表示します。

24. ペーパー・デザイン・ビューで、次の列の下の値を[Shift]キーを押しながらクリックします。

- Salary

- Commission

- Bonus

- Total Compensation

25. ツールバーの「通貨」ボタンをクリックして、数値に"$"(日本語環境では"\")を追加します。

26. 「10進桁を追加」ボタンを2回クリックして、数値に小数点以下2桁を追加します。

27. [Shift]キーを押しながら、「Salary」、「Commission」、「Bonus」および「Total Compensation」の列ヘッダーをクリックし、それらを選択します。

28. 「右揃え」ボタンをクリックして、列を右揃えにします。
レポートの表示は次のようになります。

図40-12 変更したレポートのペーパー・デザイン・ビュー

29. レポートを保存します。

40.5 レコード間への垂直間隔の追加

レポートをより見やすくするために、特定数のレコード間に空白を追加できます。このためには、まず、空白を挿入する前に表示するレコード数を決定するパラメータを作成します。次に、レコード数をカウントするサマリー列をデータ・モデルに作成します。さらに、垂直拡張度が可変になるように、レポートのペーパー・レイアウトを変更します。最後に、ユーザー指定のレコード数の間に空白を挿入するフォーマット・トリガーを作成します。

40.5.1 ユーザー・パラメータの作成

この項で作成するパラメータによって、空白を挿入する前に表示するレコード数が決定されます。このパラメータはユーザー・パラメータであるため、実行時にその値を変更できます。

ユーザー・パラメータを作成するには:

1. オブジェクト・ナビゲータの「データ・モデル」ノードで、「ユーザー・パラメータ」ノードをクリックします。

2. 「編集」→「作成」を選択して、「ユーザー・パラメータ」ノードの下に新しいユーザー・パラメータを作成します。

3. プロパティ・インスペクタが表示されていない場合は、新しいユーザー・パラメータ(P_1)を右クリックして、「プロパティ・インスペクタ」を選択してプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「SPACE」に設定します。

- 「パラメータ」で、「データ型」プロパティを「Number」、「初期値」プロパティを「5」に設定します。

注意:

ユーザー・パラメータに初期値を指定することで、パラメータを変更せずにレポートを実行でき、5つのレコードごとに空白が挿入されます。

ユーザー・パラメータがオブジェクト・ナビゲータに表示されます。

図40-13 オブジェクト・ナビゲータのユーザー・パラメータ

4. レポートを保存します。

40.5.2 レコード数をカウントするサマリー列の作成

この項では、従業員レコードの数をカウントするサマリー列をデータ・モデルに作成します。この情報は、空白を挿入する場所を決定するためのフォーマット・トリガーで使用されます。

サマリー列を作成するには:

1. オブジェクト・ナビゲータで、「データ・モデル」ノードの横のビュー・アイコンをダブルクリックして、データ・モデル・ビューを表示します。

2. データ・モデル・ビューで、ツール・パレットの「サマリー列」ツールをクリックし、G_FIRST_NAMEグループのTOTAL_COMP式列の下をクリックして、新しいサマリー列を作成します。

図40-14 新しいサマリー列作成後のデータ・モデル

3. 新しいサマリー列オブジェクト(CS_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「CNT_COLUMN」に設定します。

- 「サマリー」で、「ファンクション」プロパティを「カウント」、「ソース」プロパティを「FIRST_NAME」に設定します。

4. レポートを保存します。

40.5.3 レイアウトの変更

Reports Builderで垂直間隔を挿入できるようにするには、レポートのレイアウトを変更する必要があります。

垂直拡張度を追加するには:

1. ツールバーの「ペーパー・レイアウト」ボタンをクリックして、ペーパー・レイアウト・ビューを表示します。

2. ツールバーの「フレックス・オン」ボタンをクリックします。

3. ペーパー・レイアウト・ビューで、G_FIRST_NAMEに関連付けられている繰返し枠をクリックします。

注意:

ペーパー・レイアウト・ビューで繰返し枠が見つからない場合は、オブジェクト・ナビゲータで「R_G_FIRST_NAME」をクリックします。関連付けられている繰返し枠が、ペーパー・レイアウト・ビューで選択されます。

4. 枠の中央ハンドルをクリックして枠を下方向にドラッグし、追加の空白を作成します。この追加の空白は、レコード間に挿入される空白よりも少し大きくします。

5. 繰返し枠を選択した状態で、「ツール」→「プロパティ・インスペクタ」を選択してプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「標準レイアウト」で、「垂直拡張度」プロパティを「可変」に設定します。

6. ペーパー・レイアウト・ビューで、ツール・パレットの「四角形」ツールを選択し、新しく作成した空白でフィールドの下に四角形を描画します。

7. 新しい四角形には塗りつぶしも線も選択せず、見えないようにしてください。
次のイメージは、見えない四角形を作成した新しいレイアウトを示します。

図40-15 垂直間隔を追加したレイアウト

8. レポートを保存します。

40.5.4 フォーマット・トリガーの作成

レイアウトを調整したら、前の項で作成した新しいボイラープレート四角形を基にフォーマット・トリガーを作成できます。このフォーマット・トリガーによって、ユーザー・パラメータで指定されたレコード数ごとに、その後に空白が表示されます。

ボイラープレート四角形にフォーマット・トリガーを作成するには:

1. ペーパー・レイアウト・ビューで四角形を選択した状態でキーボードの[F11]を押して(または、「ツール」→「PL/SQLエディタ」を選択して)、PL/SQLエディタを表示します。

2. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function B_1FormatTrigger return boolean is
begin
If :CNT_COLUMN mod :SPACE = 0 then
return(TRUE);
else
return(FALSE);
end if;
end;

注意:

提供されているテキスト・ファイルplsql_code.txtから、このコードをコピーして貼り付けると、コードを入力できます。このコードはフォーマット・トリガー用です。

3. 「コンパイル」をクリックします。

4. エラーが発生せずにコードがコンパイルされたら、「閉じる」をクリックします。

5. レポートを保存します。

40.6 ペーパーを対象としたレポートの実行

空白を挿入してフォーマット・トリガーを作成したら、レポートには5レコードごとに(またはパラメータ・フォームで指定した任意のレコード数ごとに)空白が挿入されます。

レポートを実行するには:

- ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックします。パラメータ・フォームが表示されたら、ツールバーの「実行」ボタンをクリックします。

次のようなレポートがペーパー・デザイン・ビューに表示されます。

図40-16 最終的なPL/SQLサンプル・レポート

40.7 サマリー

おめでとうございます。外部PL/SQLライブラリを使用して従業員のボーナスを計算するレポートは、正常に作成されました。この外部PL/SQLライブラリは、単純に参照するだけで他のレポートでも使用できます。この章で学習した内容は次のとおりです。

- 外部PL/SQLライブラリを作成し、使用する。

- レポート・ウィザードでデフォルト・レイアウトを作成する。

- ユーザー指定のレコード数の間に垂直間隔を追加する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

41 REFカーソルを使用したペーパー・レポートの作成

この章では、PL/SQLデータ型REFカーソルを含むレポートについて説明します。この章の手順に従うと、図41-1に示すレポート出力を生成できます。

図41-1 REFカーソル・レポートの出力

概要

- REFカーソルは、問合せの中でデータをフェッチするために使用するPL/SQLデータ型です。各REFカーソル問合せは、強く型付けされたREFカーソルを返すPL/SQLファンクションに関連付けられています。PL/SQLファンクションでは、REFカーソルがオープンされ、REFカーソル型と一致するSELECTリストが含まれたSELECT文と関連付けられている必要があります。次のことを行うときに問合せの基準としてREFカーソルを使用します。次の場合は、REFカーソルで問合せを行います。

- より簡単なSQLの管理

- レポート内での文字パラメータの使用の回避

- 他のアプリケーションとのデータ・ソースの共有

- 制御とセキュリティの向上

- サブプログラム内のロジックのカプセル化

- REFカーソルの実装にストアド・プログラム・ユニットを使用する場合は、Oracleデータベースにそのプログラム・ユニットを同時に格納できるという利点があります。

- Reports Builderでは、REFカーソルを使用して問合せを容易に管理できます。たとえば、作成した多数の問合せをレポートで再利用する場合は、レポート・データ・モデル内でREFカーソルを使用することで、それらの問合せにアクセスできます。

- 図41-2には、レポートのREFカーソル問合せにSELECT文を使用するレポートを作成する様子が示されています。また、データベース内のパッケージにSELECT文を格納できることも示されています。データベースのパッケージはレポートからコールできるので、多数のレポートでパッケージを再使用できます。

図41-2 REFカーソルの例の概要

使用例

この例では、REFカーソルを使用して各部門における従業員とその職務上の地位に関する情報を表示する詳細なペーパー・レポートを作成する方法について説明します。データ・モデル・ビューを使用して複数問合せデータ・モデルを作成した後に、レポート・ウィザードを使用してレポート・レイアウトを作成します。データ・モデル・ビューで、詳細な調整を手動で行います。

このサンプル・レポートの作成過程では、次を行います。

- REFカーソルを定義するパッケージ仕様部を作成することによるREFカーソル型の定義。

- REFカーソルを使用するREFカーソル問合せの作成。

- 意味のある名前になるようにオブジェクトの名前を変更することによるデータ・モデルの調整。

- REFカーソル問合せ間のリレーションシップを作成するためのREFカーソル問合せ間のリンクの作成。

- データを詳細に説明するサマリー列の追加。

- レポート・ウィザードを使用したレイアウトの作成。

- REFカーソル型を定義するパッケージへのSELECT文の移動。

- 他のレポートがコードを共有できるようにするための、ライブラリへのパッケージの移動。

REFカーソルを使用したサンプル・レポートを表示するには、サンプル・フォルダrefcursorを開き、ref_emp68.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。この章で使用されているサンプル・ファイルのリストと説明を表41-1に示します。

表41-1 レポートのサンプル・ファイル

ファイル

説明

refcursor\ref_emp*.rdf

RDFの様々な段階。この章の各項を読み終わるたびにこのファイルを参照すると参考になります。ファイルref_emp68.rdfが最終的なレポートです。

refcursor\refcursor_code.txt

この章で作成するPL/SQLコード。このファイルを基準として、作成したコードが正しいことを確認するか、単にこのファイルからコードをコピーしてReports Builderに貼り付けます。

41.1 この例の前提条件

この章のサンプルを作成するには、提供されたサンプル・ファイルと、Oracleデータベースで提供されるHuman Resourcesサンプル・スキーマ(HR)へのアクセスが必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

注意:

Oracle Reports 11gリリース1 (11.1.1)でREF CURSOR問合せを使用するには、データベース・バージョンが10.1.0.5 (10.1の場合)または10.2.0.2以上(10.2の場合)以上である必要があります。

11gリリース1 (11.1.1)データベースまたはOracle Forms Servicesクライアントと10.1または10.2データベースとの相互運用性を保つためには、10.1.0.5 (10.1の場合)または10.2.0.2 (10.2の場合)のいずれかのレベルのパッチ・セットが最低限必要です。

10.1または10.2の環境で適切なレベルのパッチが適用されていないと、次のような状況で10.1または10.2のPL/SQLのユニットまたはビューを参照しようとしたときに、PLS-801[55916]エラーにより失敗します。

- 11gリリース1 (11.1.1)データベース上で、PL/SQLユニット、無名ブロック、トリガー、コール文またはSQL文が、10.1または10.2データベース上のPL/SQLユニットを、データベース・リンクを介してコールする。

- 11gリリース1 (11.1.1)データベース上で、PL/SQLユニット、無名ブロック、トリガーまたはコール文が、10.1または10.2データベース上のビューをデータベース・リンクを介して参照するか、ビューがPL/SQLファンクションまたはオブジェクト・タイプを直接または間接的に参照する。

- Oracle Forms Services 11gリリース1 (11.1.1)クライアントが、10.1または10.2データベース内のPL/SQLユニットを、RPCを使用してコールする。

41.2 REFカーソル型の定義

REFカーソル問合せを作成するには、まず、REFカーソルを定義するパッケージ仕様部を作成します。その後で、REFカーソルを使用する問合せを作成します。この項の手順では、REFカーソルを定義するパッケージ仕様部を作成します。

REFカーソル型を定義するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「新規レポートを手動で作成」を選択して「OK」をクリックします。

3. オブジェクト・ナビゲータで、新しいレポート・ノード(MODULEx)の下の「プログラム・ユニット」ノードをクリックします。

4. ツールバーで「作成」ボタンをクリックして、「新規プログラム・ユニット」ダイアログ・ボックスを表示します。

5. 新規プログラム・ユニット・ダイアログ・ボックスで、「名前」フィールドにconcl_cvと入力します。

6. 「パッケージ仕様」を選択し、「OK」をクリックしてPL/SQLエディタを表示します。

7. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

PACKAGE concl_cv IS
type conclass_rec is RECORD
(EMPLOYEE_ID NUMBER(6),
FIRST_NAME VARCHAR2(20),
LAST_NAME VARCHAR2(25),
EMAIL VARCHAR2(25),
PHONE_NUMBER VARCHAR2(20),
HIRE_DATE DATE,
JOB_ID VARCHAR2(10),
SALARY NUMBER(8,2),
DEPARTMENT_ID NUMBER(4));
type conclass_refcur is REF CURSOR return conclass_rec;
END;

このパッケージ仕様部では、次の2つのことを行います。

- データベースから選択するデータを記述するレコード(conclass_rec)を定義します。

- レコードによって記述されたフォーマットでデータを返すREFカーソルを定義します。

注意:

提供されているファイルrefcursor_code.txtを開き、そのコードをコピーしてPL/SQLエディタに貼り付けることができます。

8. 「コンパイル」をクリックします。

9. コンパイル・エラーが発生した場合は、構文エラーのコードをチェックして必要に応じてコンパイルを再実行します。

10. 「閉じる」をクリックします。

11. 手順3から8を繰り返して、さらに次の2つのパッケージ仕様部を作成します。

- パッケージ仕様部名: cont_cv

PACKAGE cont_cv IS
type container_rec is RECORD
(EMPLOYEE_ID NUMBER(6),
START_DATE DATE,
END_DATE DATE,
JOB_ID VARCHAR2(10),
DEPARTMENT_ID NUMBER(4));
type container_refcur is REF CURSOR return container_rec;
END;

- パッケージ仕様部名: port_cv

PACKAGE port_cv IS
type portdesc_rec is RECORD
(DEPARTMENT_ID NUMBER(4),
DEPARTMENT_NAME VARCHAR2(30));
type portdesc_refcur is REF CURSOR return portdesc_rec;
END;

注意:

提供されているファイルrefcursor_code.txtを開き、そのコードをコピーしてPL/SQLエディタに貼り付けることができます。

12. 「ファイル」→「別名保存」を選択します。このレポートにref61_your_initials.rdfという名前を付けて、任意のディレクトリに保存します。

注意:

レポートの設計段階では、レポートを異なるファイル名で頻繁に保存することをお薦めします。そうすれば、エラーが生じたり、変更した内容に問題がある場合でも、前に保存したファイルに簡単に戻ることができるので、その時点からの修正を加えるだけで済みます。

41.3 REFカーソル問合せの作成

REFカーソルを定義するパッケージ仕様部を作成したら、この項で説明する手順に従い問合せを定義できます。

REFカーソル問合せを作成するには:

1. オブジェクト・ナビゲータで、「データ・モデル」ノードの横のビュー・アイコンをダブルクリックして、データ・モデル・ビューを表示します。

2. データ・モデル・ビューで、ツール・パレットの「REFカーソル問合せ」ツールをクリックします。

3. データ・モデル・ビューの空き領域をクリックして、新しいREFカーソル問合せのPL/SQLエディタを表示します。

4. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function q_portdescRefCurDS return port_cv.portdesc_refcur is temp_portdesc port_cv.portdesc_refcur;
begin
open temp_portdesc for select department_id, department_name from
departments;
return temp_portdesc;
end;

注意:

提供されているファイルrefcursor_code.txtを開き、そのコードをコピーしてPL/SQLエディタに貼り付けることができます。

5. 「コンパイル」をクリックします。

6. コンパイル・エラーが発生した場合は、構文エラーのコードをチェックして必要に応じてコンパイルを再実行します。

7. 「閉じる」をクリックします。

8. データ・モデル・ビューで、新しいREFカーソル問合せオブジェクト(QR_1)をダブルクリックして、プロパティ・インスペクタを表示します。

- 「一般情報」で、「名前」プロパティを「q_portdesc」に設定します。

ヒント:

オブジェクトには常に意味のある名前を付けることをお薦めします。特に、多数のオブジェクトのあるレポートを作成するときには、意味のある名前を付けておくと便利です。後にレイアウトを作成するとき、意味のある名前の問合せおよびグループが存在すると便利です。

9. 前述の手順を繰り返して、さらに次の2つの問合せを作成します。

- 問合せ名: q_container

function q_containerRefCurDS return cont_cv.container_refcur is
temp_container cont_cv.container_refcur;
begin
open temp_container for
select employee_id,
start_date,
end_date,
job_id,
department_id
from job_history;
return temp_container;
end;

- 問合せ名: q_conclass

function q_conclassRefCurDS return concl_cv.conclass_refcur is
temp_concl concl_cv.conclass_refcur;
begin
open temp_concl for
select employee_id,
first_name,
last_name,
email,
phone_number,
hire_date,
job_id,
salary,
department_id
from employees;
return temp_concl;
end;

注意:

提供されているファイルrefcursor_code.txtを開き、そのコードをコピーしてReports Builderに貼り付けることができます。

データ・モデルは次のようになります。

図41-3 3つの問合せを持つデータ・モデル

10. レポートをref_62_your_initials.rdfという名前で保存します。

注意:

提供されているファイルref_emp62.rdfを開き、データ・モデルを表示して作成結果と比較できます。

41.4 データ・モデルの調整

この項では、データ・モデル内の一部のオブジェクトの名前を変更して、オブジェクトに意味のある名前を指定します。また、ブレーク・グループも作成します。

データ・モデルを調整するには:

1. データ・モデル・ビューで、グループG_EMPLOYEE_IDのタイトル・バーを約4インチ(10センチメートル)下にドラッグしてグループ全体を移動します。

2. 「JOB_ID」という名前の列をクリックし、そのままG_EMPLOYEE_IDの外側上部までドラッグして新規のブレーク・グループを作成します。次の図を参照してください。

図41-4 グループを持つ問合せ

3. 「JOB_ID」を含む新規グループのタイトル・バーをダブルクリックして、プロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「G_conlabel」に設定します。

4. データ・モデル・ビューにおいて、データ・モデルは次のようになります。

図41-5 グループを持つデータ・モデル

注意:

提供されているファイルref_emp63.rdfを開き、データ・モデルを表示して作成結果と比較できます。

5. レポートをref_63_yourinitials.rdfという名前で保存します。

41.5 REFカーソル問合せ間のリンクの作成

現時点では、作成した問合せの間に関連性はありません。問合せ間にリレーションシップを構築するには、グループ間データ・リンクを作成する必要があります。この項の手順では、リンクを作成します。

REFカーソル問合せ間にリンクを作成する手順は次のとおりです。

1. データ・モデル・ビューで、ツール・パレットの「データ・リンク」ツールをクリックします。

2. G_DEPARTMENT_IDのタイトル・バーをクリックし、G_EMPLOYEE_IDのタイトル・バーまでリンクをドラッグします。

3. 「q_container」をダブルクリックして、PL/SQLエディタを表示します。

4. PL/SQLエディタで、SELECT文のWHERE句にコードを追加して、主キーおよび外部キーとして使用する列を指定します。
from job_historyの後に次のコードを追加します。

where :department_id = department_id;

セミコロン(;)の前にWHERE句があることを確認します。

:department_idは、G_DEPARTMENT_IDのDEPARTMENT_IDを参照するバインド変数であることに注意してください。

5. 「コンパイル」をクリックします。

6. コンパイル・エラーが発生した場合は、構文エラーのコードをチェックして必要に応じてコンパイルを再実行します。

7. 「閉じる」をクリックします。

8. データ・モデル・ビューで、ツール・パレットの「データ・リンク」ツールをクリックします。

9. G_EMPLOYEE_IDのタイトル・バーをクリックし、G_EMPLOYEE_ID1のタイトル・バーまでリンクをドラッグします。

10. 「q_conclass」をダブルクリックして、PL/SQLエディタを表示します。

11. PL/SQLエディタでSELECT文にWHERE句を追加します。
カーソルをFROM EMPLOYEESとセミコロン(;)の間に挿入し、[Enter]または[Return]を押して新しい行を作成します。その後、次のコードを追加します。

where :employee_id = employee_id;

セミコロン(;)の前にWHERE句があることを確認します。

:employee_idは、G_EMPLOYEE_IDのEMPLOYEE_ID列を参照するバインド変数であることに注意してください。

12. 「コンパイル」をクリックします。

13. コンパイル・エラーが発生した場合は、構文エラーのコードをチェックして必要に応じてコンパイルを再実行します。

14. 「閉じる」をクリックします。

15. データ・モデルは次のようになります。

図41-6 リンクを持つデータ・モデル

注意:

提供されているファイルref_emp64.rdfを開き、データ・モデルを表示して作成結果と比較できます。

16. レポートをref_64_your_initials.rdfという名前で保存します。

41.6 サマリー列の追加

現在、問合せが完成しリンクが作成されています。この項の手順では、データを集計する列を作成します。

サマリー列を追加するには:

1. データ・モデル・ビューで、ツール・パレットの「サマリー列」ツールをクリックします。

2. G_EMPLOYEE_IDグループの内側をクリックして、サマリー列を作成します。

3. 新しいサマリー列オブジェクト(CS_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「CS_classcount」に設定します。

- 「サマリー」で、「ファンクション」プロパティを「カウント」、「ソース」プロパティを「employee_id」、および「リセット位置」プロパティを「G_department_id」に設定します。

これで、従業員数をカウントするサマリーが作成されました。レポートのレイアウト内ではサマリーを使用しませんが、後で他に対するソースとしてサマリーを使用します。

4. 前述の手順を繰り返して、次の特性を持つサマリーを作成します。

表41-2 サマリーの特性

作成グループ

名前

ファンクション

ソース

リセット位置

G_conlabel

CS_conlabel_classcount

合計

CS_classcount

G_conlabel

G_department_id

CS_port_count

合計

CS_conlabel_classcount

G_DEPARTMENT_ID

これらのサマリーについてはまだ学習していません。これらのサマリーの目的は、レポート・レイアウトを作成してライブ・データをプレビューするときに説明します。

データ・モデルは次のようになります。

図41-7 サマリー列を持つデータ・モデル

注意:

作成結果を、提供されているファイルref_emp65.rdfと比較することもできます。

5. レポートをref_65_your_initials.rdfという名前で保存します。

41.7 レイアウトの作成

作業データ・モデルはすでにあるので、この項の手順ではレイアウトを作成します。

ペーパー・レイアウトを作成するには:

1. オブジェクト・ナビゲータで、レポート名を右クリックして「レポート・ウィザード」を選択します。

2. レポート・ウィザードの「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択します。

3. 「スタイル」ページで、「タイトル」フィールドにMy Employeesと入力して、「グループ上」を選択します。

4. 「グループ」ページで、「使用可能フィールド」リストで次のフィールドをクリックし、「下へ」をクリックして、印刷方向を指定してこれらのフィールドを「グループ・フィールド」リストに移動します。

- G_conlabel

- G_DEPARTMENT_ID

- G_EMPLOYEE_ID

5. 「フィールド」ページで、次のフィールドをクリックしてから「>」ボタンをクリックし、それらのフィールドを「表示フィールド」リストに移動します。

- DEPARTMENT_NAME

- EMPLOYEE_ID

- START_DATE

- END_DATE

- JOB_ID

- CS_port_count

6. 「ラベル」ページで、ラベルとフィールド幅を次のように変更します。

表41-3 「ラベル」ページのフィールドの説明

フィールド

ラベル

幅

DEPARTMENT_NAME

Department

30

EMPLOYEE_ID

Employee ID

8

START_DATE

Start Date

9

END_DATE

End Date

9

JOB_ID

Job ID

10

CS_port_count

Total:

12

7. 「テンプレート」ページで、「事前定義テンプレート」を選択し、「Beige」をクリックします。次に「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次の例のようになります。

図41-8 REFカーソル・レポートのペーパー・デザイン・ビュー

注意:

提供されているファイルref_emp66.rdfを開き、ペーパー・デザイン・ビューを表示して作成結果と比較できます。

8. レポートをref_66_your_initials.rdfという名前で保存します。

41.8 パッケージへのSELECT文の移動

現行のレポート構成では、REFカーソル問合せによって使用されるSELECT文はレポート内に置かれています。多くの場合、REFカーソル型を定義するパッケージ内にSELECT文を配置しておくと有利です。これにより、同じSELECT文を使用するレポートそれぞれにSELECT文を直接入力しなくても、パッケージを簡単に参照できます。SELECT文を変更(たとえば、句を修正または追加)する必要がある場合は、パッケージ内でSELECT文を1回更新するのみです。各レポートで更新する必要はありません。

この項の手順では、REFカーソル型を定義するパッケージSELECT文を移動します。

SELECT文をパッケージに移動するには:

1. オブジェクト・ナビゲータで、レポートの「プログラム・ユニット」ノードをクリックします。

2. ツールバーで「作成」ボタンをクリックして、「新規プログラム・ユニット」ダイアログ・ボックスを表示します。

3. 新規プログラム・ユニット・ダイアログ・ボックスで、「名前」フィールドにcont_cvと入力します。

4. 「パッケージ本体」を選択し、「OK」をクリックして新しいプログラム・ユニットのPL/SQLエディタを表示します。

5. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

PACKAGE BODY cont_cv IS
function query_container (p_department_id number)
return container_refcur is tempcv_container cont_cv.container_
refcur;
begin
open tempcv_container for
select employee_id,
start_date,
end_date,
job_id,
department_id
from job_history
where  :department_id=department_id;
return tempcv_container;
end;
END;

注意:

提供されているファイルrefcursor_code.txtを開き、そのコードをコピーしてReports Builderに貼り付けることができます。

6. 「コンパイル」をクリックします。

7. コンパイル・エラーが発生した場合は、構文エラーのコードをチェックして必要に応じてコンパイルを再実行します。

8. 「閉じる」をクリックします。

9. これでファンクションが定義されました。このファンクションをパッケージ仕様部に追加して、参照できるようにします。他のプログラム・ユニットがパッケージ本体内のファンクションを認識するのは、パッケージ仕様部にファンクションが記述されている場合のみです。

10. オブジェクト・ナビゲータで、「CONT_CV(パッケージ仕様部)」オブジェクトをダブルクリックしてPL/SQLエディタを表示します。

11. PL/SQLエディタで、END;文の上に次の行を入力します。

function query_container (p_department_id number) return container_refcur;

12. 「閉じる」をクリックします。

13. 「プログラム」→「コンパイル」→「すべて」を選択します。

14. 終了したら、「OK」をクリックします。

15. オブジェクト・ナビゲータの「プログラム・ユニット」ノードで、「Q_CONTAINERREFCURDS」オブジェクトをダブルクリックしてPL/SQLエディタを表示します。

16. PL/SQLエディタで、コードを次のように編集します。

function Q_containerRefCurDS return cont_cv.container_refcur is
temp_container cont_cv.container_refcur;
begin
temp_container:=cont_cv.query_container (:department_id);
return temp_container;
end;

終了すると、問合せのロジックはすべて、query_containerという名前のファンクション内に置かれます。これ以降query_containerを変更するときは、この問合せおよびこの問合せを参照するその他の問合せを変更します。

注意:

提供されているファイルrefcursor_code.txtを開き、そのコードをコピーしてReports Builderに貼り付けることができます。

17. 「コンパイル」をクリックします。

18. コンパイル・エラーが発生した場合は、構文エラーのコードをチェックして必要に応じてコンパイルを再実行します。

19. 「閉じる」をクリックします。

20. ツールバーの「ペーパー・デザイン」ボタンをクリックして、ペーパー・デザイン・ビューにレポートを表示します。

21. レポートをref_67_your_initials.rdfという名前で保存します。

演習(オプション):

レポート内の他の2つの問合せについても、前述の手順を繰り返します。

41.9 ライブラリへのパッケージの移動

同一のREFカーソル型およびSELECT文を使用する多数のレポートが存在する場合は、ファイルに格納されているPL/SQLライブラリ内に作成したプログラム・ユニットを移動することにより、別のレポートでコードを容易に共有できます。この項の手順では、プログラム・ユニットをPL/SQLライブラリに移動します。

パッケージをライブラリに移動するには:

1. オブジェクト・ナビゲータで、「PL/SQLライブラリ」ノードをクリックし、ツールバーの「作成」ボタンをクリックして新しいライブラリを追加します。

2. 「ファイル」→「別名保存」を選択します。

3. DEPT_CONTAINERをライブラリとして入力します。

4. 「ファイルシステム」が選択されていることを確認します。

5. 「OK」をクリックします。

6. 次に示すレポートのプログラム・ユニットを、新規に作成した「DEPT_CONTAINER」ライブラリの「プログラム・ユニット」ノードにドラッグ・アンド・ドロップします。

- CONCL_CV(パッケージ仕様部)

- CONT_CV(パッケージ仕様部)

- CONT_CV(パッケージ本体)

- PORT_CV(パッケージ本体)

7. DEPT_CONTAINERを保存します。

8. ペーパー・デザイン・ビューが開いている場合は、閉じてください。

9. オブジェクト・ナビゲータで、レポートの「プログラム・ユニット」ノードの下にあるCONCL_CV(パッケージ仕様部)、CONT_CV(パッケージ仕様部)、CONT_CV(パッケージ本体)およびPORT_CV(パッケージ本体)を削除します。

注意:

レポートからパッケージを削除するときにペーパー・デザイン・ビューが開いていると、エラーが発生する場合があります。

10. レポートの連結ライブラリ・ノードをクリックし、ツールバーの「作成」ボタンをクリックして新しい連結ライブラリを追加します。

11. 「参照」をクリックしてDEPT_CONTAINERライブラリを検索します。このライブラリのファイル拡張子は、.PLLです。DEPT_CONTAINERを見つけて選択し、「開く」をクリックします。

12. 連結をクリックします。

13. 「プログラム」→「コンパイル」→「すべて」を選択します。

14. 「OK」をクリックして「コンパイル」ウィンドウを閉じます。

15. ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックして、レポートを実行し、ペーパー・デザイン・ビューにレポートを表示します。

16. レポートをref_68_your_initials.rdfという名前で保存します。

41.10 サマリー

おめでとうございます。REFカーソル問合せのサンプル・レポートが完成しました。この章で学習した内容は次のとおりです。

- REFカーソルを定義するパッケージ仕様部を作成する。

- REFカーソル問合せを作成する。

- REFカーソル問合せ間のデータ・リンクを作成する。

- データを説明するサマリーを作成する。

- レポート・レイアウトを作成する。

- SELECT文をパッケージに移動する。

- パッケージをPL/SQLライブラリに移動する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

42 JSPベースのWebレポートに対する単純なパラメータ・フォームの作成

この章では、単純なパラメータ・フォームを含むJSPベースのWebレポートについて説明します。ペーパー・レポートに対するパラメータ・フォームを作成する場合は、Oracle Reportsオンライン・ヘルプを参照してください。この章の手順に従うと、図42-1および図42-2に示すようなレポート出力を生成できます。

図42-1 JSPパラメータ・フォーム

注意:

この図のJSPパラメータ・フォームでは、ユーザーが部門のリストからいずれかの部門を選択してデータベースに接続し、選択したパラメータに基づいてレポートを実行できます。

図42-2 ユーザー・パラメータに基づくJSPベースのWebレポート

注意:

この図のJSPベースのWebレポートでは、JSPパラメータ・フォームで選択された部門に基づいたグラフと表形式のレポートが表示されます。このレポートの作成方法は、『Oracle Reportsチュートリアル』を参照してください。

概要

- この例では、JavaServer Pages (JSP)を使用して、JSPベースのWebレポートに対するHTMLパラメータ・フォームを作成します。WebレポートのJSPおよびパラメータ・フォームの概念に関する情報は、第2.2.1項「JavaServer Pages (JSP)とサーブレットについて」および第1.9.4項「Webレポートのパラメータ・フォームについて」を参照してください。

- この例では、ごく単純なパラメータ・フォームの作成方法を説明します。このパラメータ・フォームではニーズに対応できない場合は、Oracle Technology Network (OTN)で高度な例を参照してください。Oracle Reportsのページ(http://www.oracle.com/technology/products/reports/index.html)で、「Getting Started」をクリックして「Getting Started with Oracle Reports」ホームページを表示します。左側にあるトピックのリストの中から「Index」をクリックします。「Collateral Type」リストで、「Examples」を選択し、「Search」をクリックします。表示された例のリストから、「Building a JSP-based Web Report with a Parameter Form」をクリックします。

使用例

この例では、部門ごとに従業員の給与を棒グラフで示すJSPベースのWebレポートと、従業員の詳細を示す表形式のレポートがあるとします。顧客から、すべての部門のデータを読み取らなくてもすむよう、特定の部門の従業員情報を実行時に表示できるようにしてほしい、との要望がありました。この例の手順では、このJSPベースのWebレポートにJSPパラメータ・フォームを追加する方法について説明します。

この例では、『Oracle Reportsチュートリアル』で作成されたレポートを使用します。この例で使用するWebレポートの作成方法を確認するには、チュートリアルに示されている手順を参照してください。

このサンプル・レポートの作成過程では、次を行います。

- テキスト・エディタまたはHTMLエディタを使用して、HTMLでパラメータ・フォームを作成する。

- データ・モデル・ビューおよびWebソース・ビューを使用して、Reports BuilderでHTMLパラメータ・フォームを変更し、JSPとして保存する。

- データ・モデル・ビューを使用して、ユーザー・パラメータを受け入れるようターゲット・レポートの問合せを変更するように、ターゲット・レポートを設定する。

- JSPパラメータ・フォームとターゲット・レポートを配布する。

単純なパラメータ・フォームを含むサンプルのJSPベースのWebレポートを表示するには、サンプル・フォルダsimplejsppfを開き、results\emprev_param.jspを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。この章で使用されているサンプル・ファイルのリストと説明を表42-1に示します。

表42-1 レポートのサンプル・ファイル

ファイル

説明

simplejsppf\source\
paramform.html

HTMLパラメータ・フォームのサンプル。サンプルの値リスト、フィールドおよびボタンが1つずつ含まれています。

simplejsppf\results\
aramform.jsp

このJSPベースのWebレポートには、Reports Builderで行うパラメータ・フォームに対する変更が含まれています。

simplejsppf\results\
emprev_final.jsp

パラメータ・フォームのターゲット・レポートとなる、ソースWebレポート。

simplejsppf\results\
emprev_param.jsp

JSPパラメータ・フォームを使用した、最終的なJSPベースのWebレポート。

注意:

『Oracle Reportsチュートリアル』の作業を完了している場合は、第6章の終わりで作成したemprevb_your_initials.jspファイルも使用できます。

42.1 この例の前提条件

この章の例を作成するには、サンプル・ファイルが必要です(前述の「使用例」を参照)。また、Oracle Database付属のHuman Resourcesサンプル・スキーマ(HR)へのアクセスが必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

42.2 HTMLでのパラメータ・フォームの作成

この項の手順では、単純なHTMLを使用して単純なパラメータ・フォームを作成する方法について説明します。作成後、Reports BuilderでこのHTMLパラメータ・フォームを変更し、JSPベースのWebレポートからこのフォームをコールできるようにします。

独自のHTMLファイルを作成するかわりに、SourceディレクトリにあるサンプルのHTMLファイルparamform.htmlを開いてソース・コードを表示することもできます。

HTMLで単純なパラメータ・フォームを作成するには:

1. テキスト・エディタまたはHTMLエディタで、フォームを含むHTMLページを作成します。このフォームには、値リスト、フィールドおよびボタンを1つずつ格納します。このフォームのコードは次のようなものになります。

<form name="form1" method="post" action="">
<h2>Parameter Form</h2>
<p>Choose a department from the list, then click the <b>Run Report</b>
button to show salary details for each employee in that department.</p>
<select name="p_department" size="1">
<option value="1">a</option>
</select>
<br>
<input type="text" name="userid" value="hr/hr@db-connect">
<br>
<input type="submit" name="Submit" value="Run Report">
</form>

注意:

上のコードをそのまま使用するのではなく、userid値を変更して、使用するデータ・ソースの接続情報を反映させる必要があります。また、simplejsppf/scriptsディレクトリにある、提供されているファイルsimplejsppf_code.txtからHTMLコードをコピーして貼り付け、テキスト・エディタかHTMLエディタを使用してコードの該当部分を変更することもできます。

2. HTMLファイルをparamform_your_initials.htmlという名前で保存します。WebブラウザでこのHTMLファイルを表示すると、次のような画面が表示されます。

図42-3 HTMLパラメータ・フォームのサンプル

42.3 Reports BuilderでのHTMLパラメータ・フォームの変更

この項では、作成した値リスト(LOV)にデータ・ソースからの値が移入されるよう、Reports BuilderでHTMLパラメータ・フォームを変更する方法を学習します。Oracle ReportsのJSPタグを使用することによって、パラメータ・フォームでデータ・モデルの要素にアクセスできるようにします。

42.3.1 パラメータ・フォームに対するデータ・モデルの手動での作成

この項の手順では、パラメータ・フォームの単純なデータ・モデルを作成する方法について説明します。

データ・モデルを作成するには:

1. Reports Builderで、作成したHTMLファイルparamform_your_initials.htmlを開きます。

2. オブジェクト・ナビゲータで、「データ・モデル」ノードの横のアイコンをダブルクリックして、データ・モデル・ビューを表示します。

3. 表示されたデータ・モデル・ビューで、ツール・パレットの「SQL問合せ」ツールをクリックし、データ・モデル・ビューの空き領域をクリックして「SQL問合せ文」ダイアログ・ボックスを表示します。

4. 「SQL問合せ文」フィールドに、次のSELECT文を入力します。

select department_name, department_id
from departments
order by department_name

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルsimplejsppf_code.txtからコードをコピーして、「SQL問合せ文」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「SQL問合せ文」フィールドにコードを入力します。

5. 「接続」をクリックし、Human Resourcesサンプル・スキーマ(HR)の接続情報を入力します。

6. 「OK」をクリックします。作成したデータ・モデルは次のようになります。

図42-4 パラメータ・フォームのデータ・モデル・ビュー

7. レポートをparamform_your_initials.jspという名前で保存します。

42.3.2 パラメータ・フォームでの動的LOVの作成

この項では、パラメータ・フォームの既存の値リスト(LOV)にデータが取り込まれるよう、Webソースを変更する方法を学習します。このデータは、前の項で作成したデータ・モデルに依存します。また、コードを確認して、各要素がどのように動作するかを説明します。

Reports Builderでパラメータ・フォームのLOVを変更するには:

1. ツールバーの「Webソース」ボタンをクリックして、Webソース・ビューを表示します。

2. Webソース・ビューで、次のコードを検索します。

<select name="p_department" size="1">
<option value="1">a</option>
</select>

注意:

上のコードでは、LOVは静的値を返します。表示名は「a」で、値は「1」です。

LOVは現在静的であるため、データ・モデルに基づいてデータを動的に取得するよう、このHTML要素を変更する必要があります。

3. Webソース・ビューで、上のコードを次のように変更します。

<select name=" p_department">
<rw:foreach id="fn" src="G_department_name">
<option value="<rw:field id="f_deptId" src="department_id"/>"><rw:field
id="deptname1" src="department_name"/></option>
</rw:foreach>
</select>

注意:

コードは手動で入力できます。また、提供されているファイルsimplejsppf_code.txtからコードをコピーして貼り付けることもできます。

4. レポートを保存します。

コードのJSP要素の確認:

上のコードでOracle ReportsのJSPタグを使用することによって、パラメータがデータ・モデルのフィールドに基づくようにし、データをパラメータ・フォームのLOVに取り込みます。各要素を確認してください。

- <option>: LOVの表示名は、データ・モデルのdepartment_nameフィールドの値によって置き換えられます。ユーザーがパラメータ・フォームを表示すると、部門名がリストに表示されます。

- <rw:field>: この要素は、g_department_nameグループの各要素にアクセスします。

- <rw:foreach>: この要素は、データ・モデルのg_department_nameグループに基づいて結果を繰り返し処理します。

- src: このパラメータは<rw:foreach>と<rw:field>の両方の要素で使用されます。<rw:foreach>要素の場合、srcは、データ・モデルのグループ名(G_department_name)に一致する必要があります。<rw: field>要素の場合、参照されるフィールド(department_name)に一致する必要があります。

- id: このパラメータには任意の値を入力できますが、一意の値を指定する必要があります。このパラメータも、<rw:foreach>と<rw:field>の両方の要素に適用されます。

注意:

これらのJSP要素とそのパラメータの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。

コードをこのように変更することで、前の項で作成したデータ・モデルに基づき、LOVの戻り値属性がdepartment_idフィールドに置き換えられました。これで、値リストから部門名を選択すると、関連する部門IDが返されるようになります。この戻り値は表示されません。

42.3.3 パラメータ・フォーム・レポートのWebに対する実行

Webソースの変更と確認が完了したので、パラメータ・フォームをWebブラウザで表示します。

1. ツールバーの「Webレイアウトを実行」ボタンをクリックします。

注意:

デフォルトのブラウザとしてNetscape 7.0を使用し、ブラウザにレポートが表示されない場合は、レジストリ・キーHKEY_CURRENT_USERS\Software\Oracle\Toolkit\Tkbrowserをブラウザのデフォルトの場所に設定します。BrowserNameおよびBrowserPathのキーに正しい値が指定されていることを確認してください。たとえば、BrowserName=Netscape 7、BrowserPath=C:\Program Files\Netscape\Netscape\Netscp.exeになります。

2. パラメータ・フォームが次のような外観でWebブラウザに表示されます。

図42-5 値が含まれるパラメータ・フォーム

注意:

変更後のパラメータ・フォームでは、部門の値リストが「a」から「Accounting」に変わっていることがわかります。

3. 「Department」リストをクリックして、リストに部門名がどのように移入されているか確認します。「レポート実行」ボタンはクリックできますが、このボタンのアクションをまだ定義していないで、このボタンをクリックしても何も起こりません。

42.4 ターゲット・レポートの設定

パラメータの設定が完了したので、次の手順では、パラメータを受け入れるようターゲット・レポートを設定します。その後、パラメータ・フォームのアクションを定義します。ユーザーが「レポート実行」ボタンをクリックすると、部門パラメータとユーザーIDパラメータの値に基づいてターゲット・レポートが実行されます。

この項で使用するターゲット・レポートは『Oracle Reportsチュートリアル』のサンプル・レポートです。『Oracle Reportsチュートリアル』の作業を完了し、emprevb.jspを作成してある場合は、この項でそのレポートを使用できます。このレポートを作成していない場合は、提供されているサンプル・ファイルemprev_final.jspを使用してください。この項では、このレポートの作成手順については説明しません。

JSPベースのWebレポートのサンプルを作成する方法の詳細は、Oracle Reportsのオンライン・ヘルプを参照してください。

ターゲット・レポートを設定するには:

1. Reports Builderで、提供されているファイルemprev_final.jspを開きます。

2. オブジェクト・ナビゲータで、「データ・モデル」ノードの横のアイコンをダブルクリックします。

3. 表示されたデータ・モデル・ビューで、問合せ(Q_1)をダブルクリックして「SQL問合せ文」ダイアログ・ボックスを表示します。

4. コードの最終行を見つけます。

WHERE (EMPLOYEES.MANAGER_ID = EMPLOYEES_A1.EMPLOYEE_ID)
AND EMPLOYEES.DEPARTMENT_ID = 100

5. 2番目のWHERE句を変更して、最終行を次のようにします。

WHERE (EMPLOYEES.MANAGER_ID = EMPLOYEES_A1.EMPLOYEE_ID)
AND EMPLOYEES.DEPARTMENT_ID = :P_DEPARTMENT

ヒント:

変更したコードは、太字のテキストの部分です。

6. 「OK」をクリックします。

7. バインド・パラメータが作成されたことを示す注意が表示されます。「OK」をクリックします。

8. レポートをemprev_param_your_initials.jspという名前で保存します。

42.5 JSPパラメータ・フォームとターゲット・レポートの配布

JSPパラメータ・フォームとターゲットのJSPベースのWebレポートを配布するには、paramform_your_initials.jspおよびemprev_final_your_initials.jspをアプリケーション・サーバーの配布ディレクトリにコピーする必要があります。ターゲット・レポートを目的のディレクトリに配置したら、レポートの場所をポイントするようパラメータ・フォームを変更します。

JSPベースのWebレポートの配布の詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』を参照してください。

JSPパラメータ・フォームおよびターゲット・レポートを設定および配布するには:

1. JSPパラメータ・フォームとWebレポート(paramform_your_initials.jspとemprev_param_your_initials.jsp)を次のディレクトリにコピーします。
$DOMAIN_HOME\servers\WLS_REPORTS\tmp\_WL_user\reports_11.1.1.2.0\dir_name\war

dir_nameは、各デプロイメント・インスタンスに対してランダムに生成されるディレクトリ名です。

注意:

BEA_HOMEは、Reports Builderがインストールされているディレクトリです。

2. Reports Builderで、ファイル$DOMAIN_HOME\servers\WLS_REPORTS\tmp\_WL_user\reports_11.1.1.2.0\dir_name\war\paramform_your_initials.jspを開きます。

3. Webソース・ビューで、ユーザーが「レポート実行」をクリックしたら、選択されたパラメータに基づいてemprev_param_your_initials.jspレポートが実行されるよう、フォームのアクションを変更します。コードは次のようになります。

<form name="form1" method="post" action="/reports/rwservlet">
<input type="hidden" name="report" value="reportname.rdf">
<input type="hidden" name="destype" value="destype">
<input type="hidden" name="desformat" value="desformat">
<input type="hidden" name="userid" value="db_connect_string">
<input type="submit" name="Submit" value="Submit">
</form>

注意:

- 上のコードでは、action属性は、レポートが前述の手順で指定したディレクトリに配置されていることを前提としています。

- この章で作成したパラメータ・フォームは、Webレポートのかわりにペーパー・レポートを実行するときにも使用できます。そのためには、次のコードを使用します。

<form name="form1" method="post"
action="/reports/rwservlet?report=report
_name.jsp&destype=destype&desformat=desformat">

- JSPベースのWebレポートおよびペーパー・レポートの配布の詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』を参照してください。

4. レポートを保存します。

5. Oracle WebLogic Serverインスタンスを起動します。

- Windowsの場合、次のディレクトリに進みます。

- ORACLE_HOME\Middleware_HOME\user_projects\domains\<your_domain>

「startWebLogic.cmd」をダブルクリックします。

「<your_domain>」は、ユーザーが作成したドメインです。

- UNIXの場合は、次のシェル・スクリプトを起動します。

ORACLE_HOME/Middleware_HOME/user_projects/domains/<your_domain>/startWebLogic.sh

「<your_domain>」は、ユーザーが作成したドメインです。

ヒント:

Oracle WebLogic Serverインスタンスは、Java EEのコンテナが初期化されると起動されます。

6. Webブラウザで、パラメータ・フォームのURLを次のように入力します。

http://computer name:port/reports/paramform_your_initials.jsp?userid=userid/password@database name

この例では、次を使用します。

http://mycomputer-pc:8888/reports/paramform_your_initials.jsp?userid=hr/hr@orcl

注意:

URLに入力する接続文字列は、第42.3.1項「パラメータ・フォームに対するデータ・モデルの手動での作成」でデータ・モデルの作成に使用したデータベースを対象としたものです。この例の本来の目的に焦点を絞るため、接続文字列の受渡しには平文を使用しています。セキュリティの詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』の「Oracle Reports Servicesの保護」を参照してください。

7. 「シングル・サインオン」ログイン・ページが表示された場合、シングル・サインオン・ユーザー名とパスワードを入力します。OracleAS Single Sign-Onの詳細は、『Oracle Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド』を参照してください。

8. パラメータ・フォームが表示されたら、リストから部門を選択します。たとえば、「Finance」を選択します。

9. ログインIDフィールドに、emprev_param_your_initials.jspレポートで使用するデータベース・スキーマの接続文字列を入力します。たとえば、hr/hr@orclと入力します。

図42-6 選択項目のあるJSPパラメータ・フォーム

10. 「レポート実行」をクリックします。

11. 上部にグラフがある、次のような従業員給与レポートが表示されます。

図42-7 ユーザー・パラメータに基づく従業員レポートのサンプル

注意:

作成したレポートが正しい外観で表示されているかどうかがわからない場合は、提供されているファイルparamform.jspとemprev_param.jspを使用し、この項の全手順に従ってパラメータ・フォームとWebレポートを配布してみてください。

42.6 サマリー

おめでとうございます。既存のWebレポートに対するJSPパラメータ・フォームが完成しました。この章で学習した内容は次のとおりです。

- HTMLで単純なパラメータ・フォームを作成する。

- Reports Builderで単純なパラメータ・フォームにデータ・モデルを追加する。

- ユーザー・パラメータを受け入れるよう、既存のJSPベースのWebレポートを変更する。

- Oracle WebLogic Serverを使用して、JSPパラメータ・フォームを含むJSPベースのWebレポートをテストおよび配布する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

43 バーコードを使用したレポートの作成

この章では、バーコードを含むレポートについて学習します。この章の手順に従うと、図43-1に示すレポート出力を生成できます。

図43-1 バーコードJavaBeanのWebレポート出力

概要

- バーコードJavaBeanを使用することにより、発注や従業員IDの追跡などを容易にするバーコードを表示したレポートを作成できます。

- JavaBeansを使用したペーパー・レポートまたはWebレポートを作成できます。ペーパー・レポートの場合は、PL/SQLのビジネス・ロジックからJavaBeanをコールできるように、Java Importerを使用してPL/SQLラッパーを作成する必要があります。JSPベースのWebレポートの場合は、レポートからJavaBeanをコールします。Reports Builderでは、JavaBeanによって自動的にバーコードが生成されます。

注意:

Java Importer、ORA_JAVAビルトイン・パッケージの詳細は、Oracle Reportsオンライン・ヘルプのリファレンスに関する項にあるJava Importerに関するトピックを参照してください。

- バーコードJavaBeanの詳細は、Oracle Technology Network (OTN)で学習できます。Oracle Reportsのページ(http://www.oracle.com/technology/products/reports/index.html)で、「Getting Started」をクリックして「Getting Started with Oracle Reports」ホームページを表示します。左側にあるトピック・セクションのリストで、「任意のフォーマット」をクリックします。サブトピックのリストが表示されたら、「PL/SQL-Java Bridge」をクリックします。

使用例

この例では、ペーパー出力用とWeb用の2つのレポートを作成します。ペーパー・レポートには、ある会社の複数の品目を注文したある顧客に対する請求書が表示されます。バーコードは、注文の追跡情報を示します。

これらのサンプル・レポートの作成を通して、次を行います。

- ペーパー出力用バーコード・レポートの作成:

- バーコードJavaBeanを追加するための、Java Importerを使用したReports BuilderへのJavaクラスのインポート。

- プログラム・ユニット・エディタを使用した情報を格納するパッケージの作成。

- バーコードJavaBeanをレポート用に設定するための、Before Reportトリガーの作成。

- スキーマからデータを取得するための、データ・モデル・ビューでの問合せの作成。

- バーコード・イメージを取得する式列の作成。

- 発注合計額を返す式列の作成。

- レポートのレイアウトの作成。

- Web用バーコード・レポートの作成:

- 既存のHTMLファイルにおける問合せの作成。

- レポート用にバーコード・データをコールするための、データ・モデルにおける3つの式列の作成。

- Webソース・ビューのJSPコードの編集による、バーコードJavaBeanの初期化とそのプロパティの設定。

- ブラウザで出力を表示するための、Webに対するレポートの実行。

バーコードを含むサンプル・ペーパー・レポートを表示するには、サンプル・フォルダbarcodebeanpaperを開き、result\shipping_manifest.pdfを開きます。バーコードを含むサンプルのWebベースJSPレポートを表示するには、サンプル・フォルダbarcodebeanwebを開き、result\shipping_manifest_web.jspを開きます。これらのレポートの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。この章で使用されているサンプル・ファイルのリストと説明を表43-1に示します。

表43-1 レポートのサンプル・ファイル

ファイル

説明

barcodebeanpaper\result\
shipping_manifest.pdf

バーコードを含んだペーパー・レポートの最終PDFバージョン。

barcodebeanpaper\result\
shipping_manifest.rdf

バーコードを含んだペーパー・レポートの最終RDFバージョン。

barcodebeanpaper\scripts\
oraclebarcode.jar

バーコードJavaBean。

barcodebeanpaper\scripts\
barcode_code.txt

この章で使用されるすべてのコード。このファイルからコードをコピーして貼り付けると、入力する手間が省けます。

barcodebeanpaper\source\
shipping_manifest.rdf

サンプル・ペーパー・レポートのソース・ファイル。Reports BuilderでこのRDFを実行すると、ペーパー・レポートの最終結果がペーパー・デザイン・ビューに表示されます。

barcodebeanweb\result\
shipping_manifest_web.jsp

バーコードを含んだWebレポートの最終JSPバージョン。

barcodebeanweb\result\
shipping_manifest_web.rdf

バーコードを含んだWebレポートの最終RDFバージョン。

barcodebeanweb\result\
assets

JSPが実行されたときにOracle Reportsによって生成されたイメージ。

barcodebeanweb\scripts\
sql.txt

入力する必要がある問合せのSQL。

barcodebeanweb\scripts\
barcode_code.txt

この章で使用されるすべてのコード。このファイルからコードをコピーして貼り付けると、入力する手間が省けます。

barcodebeanweb\source\
shipping_label.html

Webレポートのベースとして使用するHTMLページ。

barcodebeanweb\source\
shipping_manifest_web.rdf

サンプルWebレポートのソース・ファイル。Reports BuilderでWebに対してこのRDFを実行すると、Webレポートの最終結果がブラウザに表示されます。

barcodebeanweb\source\
assets\*

JSPベースのWebレポートをWeb上で正しく表示するために必要なイメージとその他のファイル。

barcodebeanweb\source\
assets\blaf_beige_logo.gif

JSPベースのWebレポートで使用するイメージ。

43.1 この例の前提条件

この章の例を作成するには、サンプル・ファイルが必要です(前述の「使用例」を参照)。また、付属のOrder Entryサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

43.1.1 REPORTS_CLASSPATH環境変数の更新

JavaBean(ペーパーベース・レポート用またはJSPベースのWebレポート用)を使用する前に、いくつかの手順を実行する必要があります。

この項では、REPORTS_CLASSPATH環境変数をJavaBeanの場所で更新します。Reports Builderを起動すると、この新しいクラス・パスからバーコードBeanの場所が認識されます。

注意:

この項の手順を実行しておかないと、提供されている完成済レポート(ShippingManifestPaper.rdfおよびShippingManifestWeb.rdf)も実行できません。

1. REPORTS_CLASSPATH環境変数を探します。

- Windowsの場合は、コマンド・プロンプトから「regedit」と入力してレジストリを開き、REPORTS_CLASSPATH環境変数を探します。レジストリを変更する前に、バックアップを作成しておくことをお薦めします。

- UNIXの場合は、ORACLE_HOME/bin/reports.shでREPORTS_CLASSPATH環境変数を探します。

2. oraclebarcode.jarファイルの場所を、REPORTS_CLASSPATHの既存のエントリに付け加えます。たとえば、次のようになります。

- Windowsの場合:

Examples\BarcodeBeanPaper\scripts\oraclebarcode.jar

- UNIXの場合:

Examples/barcodebeanpaper/scripts/oraclebarcode.jar

注意:

パスは、ファイルの場所に応じて変更してください。Oracle Technology Network (http://www.oracle.com/technology/products/reports/)からファイルをダウンロードする場合は、このパスをさらに編集する必要がある場合があります。また、Windowsレジストリの編集時には、エントリをセミコロン(;)で必ず区切ってください。その際、セミコロンの前後に空白は入れません。

これでレポートを作成する準備が完了しました。ペーパーベース・バーコード・レポートを作成する方法を学習するには、第43.2項「ペーパー出力用バーコード・レポートの作成」を参照してください。Web用のJSPベース・バーコード・レポートを作成する方法を学習するには、第43.3項「Web用バーコード・レポートの作成」を参照してください。

43.2 ペーパー出力用バーコード・レポートの作成

この項では、バーコードJavaBeanをインポートしてから、特定の顧客に対する請求書を表示するペーパーベースのレポートを作成します。この請求書には、顧客の住所、注文内容および注文の追跡番号を表すバーコードが表示されます。このバーコードをスキャンすることで、注文の状態を確認できます。

43.2.1 Reports BuilderへのJavaクラスのインポート

バーコードJavaBeanを使用してペーパー・レポートを作成するには、まず2つのJavaクラスをReports Builderにインポートする必要があります。これらのJavaクラスをインポートすると、Reports Builderによってレポートの作成に必要なパッケージが自動的に作成されます。

注意:

Webレポートを作成する場合は、JavaBeanをコールするJSPコードを作成するため、この作業が不要となります。

Javaクラスをインポートするには:

1. Reports Builderを起動します。

注意:

新しいREPORTS_CLASSPATHを使用するには、ここでReports Buildeを起動する必要があります。

2. 「取消」をクリックして、「ようこそ」ダイアログ・ボックスを閉じます。

3. 「プログラム」→「Javaクラスをインポート」を選択して「Javaクラスのインポート」ダイアログ・ボックスを表示します。

4. 「Javaクラスの選択」で、次のクラスにナビゲートします。

oracle.apps.barcode.util.BarCodeConstants

注意:

このクラスがリスト内に見つからない場合は、Reports Builderを一度終了し、REPORTS_CLASSPATHの設定に誤りがないか確認してください。その後、Reports Builderを再起動します。

5. クラスを選択して「インポート」をクリックします。

6. パッケージが作成されたら、2つ目のJavaBeanであるoracle.apps.barcode.BarCodeMakerをインポートします。

7. 「閉じる」をクリックします。

8. オブジェクト・ナビゲータで、「MODULE 1」というレポートの下の「プログラム・ユニット」ノードをクリックします。Reports Builderによって、パッケージ仕様部とパッケージ本体が2つずつ(BARCODECONSTANTSとBARCODEMAKER)作成されたことがわかります。

43.2.2 情報を格納するパッケージの作成

このレポートでは、情報を格納するパッケージを作成する必要があります。

情報を格納するパッケージを作成するには:

1. オブジェクト・ナビゲータで、新規レポートの下の「プログラム・ユニット」ノードをクリックします。

2. ツールバーで「作成」ボタンをクリックして、「新規プログラム・ユニット」ダイアログ・ボックスを表示します。

3. 「新規プログラム・ユニット」ダイアログ・ボックスで、globalsと入力します。

4. 「パッケージ仕様」を選択し、「OK」をクリックしてPL/SQLエディタを表示します。

5. PL/SQLエディタで、次のコードを入力します。

PACKAGE globals IS
bcobj ora_java.jobject;
barcode_to_use varchar2(256);
tempdir varchar2(100);
directory_sep varchar2(2);
END;

注意:

提供されているテキスト・ファイルbarcode_code.txtから、このコードをコピーして貼り付けることによっても、コードを入力できます。

6. 「コンパイル」をクリックして、コードにエラーがないことを確認します。

注意:

コードがコンパイルされない場合は、提供されているコードを正確に入力したかどうかを確認してください。

7. コードがコンパイルされた後、「閉じる」をクリックします。

8. オブジェクト・ナビゲータで、レポート名(「MODULE 1」など)をクリックします。

9. レポートをshippingmanifest_your_initials.rdfという名前で保存します。

これで、レポートのグローバル情報を格納するパッケージの作成が完了しました。

43.2.3 Before Reportトリガーの作成

Before Reportトリガーを使用して、レポートの実行前に実行される特定のタスクを実行できます。ここでは、レポートで使用するバーコードのタイプ、およびバーコード・イメージを保存する一時ディレクトリを定義します。

Before Reportトリガーを作成するには:

1. オブジェクト・ナビゲータで、「SHIPPINGMANIFEST_your_initials」の下の「レポート・トリガー」ノードを展開し、「Before Report」の横のアイコンをダブルクリックして、PL/SQLエディタを表示します。

2. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function BeforeReport return boolean is
begin
globals.barcode_to_use := BarCodeConstants.BAR_CODE_128;
globals.bcobj := barcodemaker.new();
return (TRUE);
end;

値BarCodeConstants.BAR_CODE_128を有効な任意の値に変更することによって、使用するバーコードのタイプを変更できます。どの値が有効かを知るには、オブジェクト・ナビゲータの「プログラム・ユニット」ノードでBarCodeConstantsパッケージ仕様部を開き、パッケージの内容を確認します。

注意:

提供されているテキスト・ファイルbarcode_code.txtから、このコードをコピーして貼り付けると、コードを入力できます。

3. 「コンパイル」をクリックして、コードにエラーがないことを確認します。

注意:

エラーがある場合は、必要なJavaクラスをインポートしたかどうかを確認して、入力したコードと前述のコードを詳細に比較します。コードを変更した場合は、再度そのコードをコンパイルします。

4. コードがコンパイルされたら、「閉じる」をクリックします。「Before Report」トリガーの横のノード・アイコンが変わったことがわかります。

5. レポートを保存します。

これで、レポートを実行したときにバーコード・タイプを設定するトリガーの作成が完了しました。

43.2.4 データ・モデル・ビューでの問合せの作成

この項では、レポートがサンプル・スキーマからデータを取得するために使用する問合せを手動で作成します。

問合せを作成するには:

1. オブジェクト・ナビゲータで、「SHIPPINGMANIFEST_your_initials」の下にある「データ・モデル」ノードの横のビュー・アイコンをダブルクリックして、レポートのデータ・モデル・ビューを表示します。

2. データ・モデル・ビューで、ツール・パレットの「SQL問合せ」ツールをクリックし、データ・モデル・ビューの空いている場所をクリックして、「SQL問合せ文」ダイアログ・ボックスを表示します。

3. 「SQL問合せ文」フィールドに、次のSELECT文を入力します。

SELECT ALL CUSTOMERS_A1.CUST_FIRST_NAME,
CUSTOMERS_A1.CUSTOMER_ID, CUSTOMERS_A1.CUST_LAST_NAME,
CUSTOMERS_A1.CUST_ADDRESS.STREET_ADDRESS,
CUSTOMERS_A1.CUST_ADDRESS.POSTAL_CODE,
CUSTOMERS_A1.CUST_ADDRESS.CITY,
CUSTOMERS_A1.CUST_ADDRESS.STATE_PROVINCE,
CUSTOMERS_A1.CUST_ADDRESS.COUNTRY_ID, ORDERS.ORDER_ID,
ORDERS.ORDER_DATE,
ORDERS.ORDER_TOTAL, ORDER_ITEMS.LINE_ITEM_ID,
PRODUCTS.PRODUCT_NAME,
ORDER_ITEMS.UNIT_PRICE, ORDER_ITEMS.QUANTITY,
COUNTRIES.COUNTRY_NAME
FROM CUSTOMERS CUSTOMERS_A1, ORDER_ITEMS, ORDERS,
PRODUCTS, HR.COUNTRIES
WHERE ((ORDER_ITEMS.ORDER_ID = ORDERS.ORDER_ID)
AND (ORDERS.CUSTOMER_ID = CUSTOMERS_A1.CUSTOMER_ID)
AND (ORDER_ITEMS.PRODUCT_ID = PRODUCTS.PRODUCT_ID)
AND (CUSTOMERS_A1.CUST_ADDRESS.COUNTRY_ID =
HR.COUNTRIES.COUNTRY_ID))
AND ORDERS.ORDER_ID = :P_ORDER_ID
ORDER BY order_ID, line_item_ID

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルbarcode_code.txtからコードをコピーして「SQL問合せ文」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「SQL問合せ文」フィールドにコードを入力します。

4. 「OK」をクリックします。
サンプル・スキーマが格納されているデータベースに接続されていない場合は、ここでログインする必要があります。接続文字列がわからない場合は、データベース管理者に問い合せてください。この例では、Order Entryサンプル・スキーマを使用します。

5. バインド・パラメータp_order_idが作成されたことを示すメッセージが表示された後、「OK」をクリックします。

6. 作成したデータ・モデルで、[Shift]キーを押しながら次の列すべてを一度に選択し、現行の問合せの下にドラッグして、ディテール・グループを作成します。

- LINE_ITEM_ID

- PRODUCT_NAME

- UNIT_PRICE

- QUANTITY

結果のデータ・モデルは次のようになります。

図43-2 問合せのデータ・モデル

43.2.5 バーコード・イメージを取得する式列の作成

この項では、JavaBeanと通信してバーコードを作成し、生成されたイメージのファイル名を返す式列を作成します。

式列を作成するには:

1. データ・モデル・ビューで、ツール・パレットの「式列」ツールをクリックします。

2. マスター・グループ(G_CUST_FIRST_NAME)内をクリックして、新しい式列を作成します。

3. 新しい式列オブジェクト(CF_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「ImageFilename」に設定します。

- 「列」で次の操作を行います。

- 「データ型」プロパティを「Character」に設定します。

- 「幅」プロパティを500に設定します。

- 「ファイルからの読込み」プロパティを「はい」に設定します。

- 「ファイル形式」プロパティを「イメージ」に設定します。

- 「プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。

4. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function ImageFilenameFormula return VarChar2 is
myFileName varchar2(500);
result varchar2(500);
barcodeData VarChar2(50) := :customer_ID || :order_ID;
begin
myFileName := srw.create_temporary_filename;
barcodemaker.setBarWidthInch(globals.bcobj, 0.005);
barcodemaker.setBaseCodeData(globals.bcobj,barcodeData);
barcodemaker.setBarCodeType(globals.bcobj,globals.barcode_to_use);
barcodemaker.setFullPath(globals.bcobj, myFileName);
barcodemaker.renderBarCode(globals.bcobj);
return(myFileName);
end;

注意:

提供されているテキスト・ファイルbarcode_code.txtから、このコードをコピーして貼り付けると、コードを入力できます。

5. 「コンパイル」をクリックして、コードにエラーがないことを確認します。

注意:

エラーがある場合は、必要なJavaクラスをインポートしたかどうかを確認して、入力したコードと前述のコードを詳細に比較します。コードを変更した場合は、再度そのコードをコンパイルします。

6. コードがコンパイルされたら、「閉じる」をクリックします。

43.2.6 発注合計額を返す式列の作成

2つ目の式列を作成するには:

1. データ・モデル・ビューで、ディテール・グループ「G_LINE_ITEM_ID」の式列を作成します。

2. 式列のプロパティ・インスペクタを起動し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「LineTotal」に設定します。

- 「列」で、「データ型」プロパティが「Number」に設定されていることを確認します。

- 「プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。

3. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function LineTotalFormula return Number is
begin
return (:quantity * :unit_price);
end;

注意:

提供されているテキスト・ファイルbarcode_code.txtから、このコードをコピーして貼り付けると、コードを入力できます。

4. 「コンパイル」をクリックして、コードにエラーがないことを確認します。

5. コードがコンパイルされたら、「閉じる」をクリックします。

6. レポートを保存します。

これでバーコード・レポートのデータ・モデルの作成が完了しました。このモデルには、バーコード情報を取得してレポートにバーコード・イメージを表示する式列と、発注合計額を表示する式列が含まれています。

作成したデータ・モデルと式列のPL/SQLは次のようになります。

図43-3 2つの新しい式列を持つデータ・モデル

43.2.7 レポートのレイアウトの作成

レポートを実行するには、事前にレイアウトを作成する必要があります。

ペーパー・レイアウトを作成するには:

1. オブジェクト・ナビゲータで、レポートのノードの下にある「ペーパー・レイアウト」を右クリックし、「レポート・ウィザード」を選択します。

2. レポート・ウィザードの「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

3. 「スタイル」ページで、「グループ上」を選択し、「次へ」をクリックします。

4. 「データ・ソース」ページで「次へ」をクリックします。

5. 「データ」ページで「次へ」をクリックします。

6. 「グループ」ページで、「グループ・フィールド」リストに次の各フィールドが含まれていることを確認します(含まれていない場合は、矢印ボタンを使ってこのリストに移動します)。

- ORDER_ID

- ORDER_DATE

- CUSTOMER_ID

- CUST_FIRST_NAME

- CUST_LAST_NAME

- STREET_ADDRESSS

- POSTAL_CODE

- COUNTRY_NAME

- CITY

- STATE_PROVINCE

- COUNTRY_ID

- ORDER_TOTAL

- CF_1

7. 「フィールド」ページで、「>>」ボタンをクリックしてすべてのフィールドを「表示フィールド」リストに移動し、「終了」をクリックします。

8. ペーパー・レイアウト・ビューで、ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックして、レポートを実行します。

9. ランタイム・パラメータ・フォームで、「P_ORDER_ID」の横に2354と入力します。

10. レポートがペーパー・デザイン・ビューに表示されたら、ペーパー・レイアウト・ビューでレイアウト・オブジェクトの配置を調整して、図43-4のような外観にします。このフォーマットを作成するには、次の操作を実行します。

- ペーパー・レイアウト・ビューで、周囲の親枠M_G_CUST_FIRST_NAME_GRPFRを削除してから、ツールバーの「制限オフ」ボタンと「フレックス・オフ」ボタンをクリックします。

- サンプル・レポートshippingmanifest.rdfを参考に、次のような3つの四角形と3つのテキスト・オブジェクトを追加します。

- Shipping Details: テキスト・プロパティを「Arial」「16」ポイント、「太字」に設定します。枠を作成して、フィールドcust_first_name、cust_last_name、street_address、city、state_province、postal、country_nameを追加します。

- Tracking Details: テキスト・プロパティを「Arial」「16」ポイント、「太字」に設定します。ImageFilenameオブジェクトをこの四角形の上に移動します。

- Order Details: テキスト・プロパティを「Arial」「16」ポイント、「太字」に設定します。Order IDおよびOrder Dateのラベルとフィールドをこの四角形の上に移動します。フィールドF_Order_Totalをこの四角形の上に移動し、テキスト・プロパティを「Courier New」、「24」ポイント、「太字」に設定します。

- その他すべてのフィールドの値のテキスト・プロパティは「Courier New」、「10」ポイントに設定します。さらに、F_Line_Totalを「太字」に設定します。

- 数値フィールドは、通貨や小数部を表示するようフォーマットし、右揃えにします。

- 必要に応じて、各四角形、合計フィールド、および表の見出しの塗りつぶしカラーを設定します。

図43-4 バーコード・ペーパー・レポートのペーパー・デザイン・ビュー

注意:

意図した結果が得られたかどうかがわからない場合は、サンプル・レポートShippingManifest.pdfをAcrobat Readerで開きます。あるいは、ペーパーに対してShippingManifest.rdfを実行すると、レポートがペーパー・デザイン・ビューに表示されます。

11. レポートを保存します。これで、ペーパー出力用バーコード・レポートの作成が完了しました。

43.3 Web用バーコード・レポートの作成

この項の手順は、第43.2.1項「Reports BuilderへのJavaクラスのインポート」でインポートしたバーコードJavaBeanを使用するJSPベースのWebレポートを作成する方法を示しています。バーコードを含んだペーパー・レポートを作成する場合は、第43.2項「ペーパー出力用バーコード・レポートの作成」を参照してください。

JSPベースのWebレポートの作成方法がわからない場合、作成方法を学習するには、『Oracle Reportsチュートリアル』を参照してください。

この項で作成するレポートは、ペーパー出力用に作成したレポートと同じです。つまり、特定の顧客に対する請求書を表示するレポートを作成します。この請求書には、顧客の住所、注文内容および注文の追跡番号を表すバーコードが表示されます。このバーコードを使用して、発注の状態を確認できます。

提供されているJSPレポートの最終バージョンを実行すると、これらの手順での作成結果を確認できます。ただし、Webに対してレポートを実行する前に、ソース・コード内でイメージの場所を更新する必要があるので注意してください(第43.3.3項「バーコードJavaBeanの初期化とそのプロパティの設定」を参照)。

注意:

この項での作業を開始する前に、必要なファイルをすべてインポートしたか、およびJavaクラスをインポートしてクラス・パスを設定したかを確認する必要があります。第43.1項「この例の前提条件」および第43.2.1項「Reports BuilderへのJavaクラスのインポート」を参照してください。

43.3.1 既存のHTMLファイルにおける問合せの作成

JSPベースのWebレポートを作成する際に、既存のHTMLファイルをテンプレートとして使用できます。この項の手順では、Reports BuilderでのHTMLファイルの開き方とそのファイルにデータを追加する方法について説明します。

既存のHTMLファイルに問合せを作成するには:

1. Reports Builderで、「ファイル」→「開く」を選択して、ファイルExamples\barcodebeanweb\source\shipping_label.htmlを開きます。

2. オブジェクト・ナビゲータで、「SHIPPINGLABEL」の下にある「データ・モデル」ノードの横のビュー・アイコンをダブルクリックして、レポートのデータ・モデル・ビューを表示します。

3. データ・モデル・ビューで、ツール・パレットの「SQL問合せ」ツールをクリックし、データ・モデル・ビューの空いている場所をクリックして、「SQL問合せ文」ダイアログ・ボックスを表示します。

4. 「SQL問合せ文」フィールドに、次のSELECT文を入力します。

SELECT ALL CUSTOMERS_A1.CUST_FIRST_NAME,
CUSTOMERS_A1.CUSTOMER_ID, CUSTOMERS_A1.CUST_LAST_NAME,
CUSTOMERS_A1.CUST_ADDRESS.STREET_ADDRESS,
CUSTOMERS_A1.CUST_ADDRESS.POSTAL_CODE,
CUSTOMERS_A1.CUST_ADDRESS.CITY,
CUSTOMERS_A1.CUST_ADDRESS.STATE_PROVINCE,
CUSTOMERS_A1.CUST_ADDRESS.COUNTRY_ID,
ORDERS.ORDER_ID, ORDERS.ORDER_DATE, ORDERS.ORDER_TOTAL,
COUNTRIES.COUNTRY_NAME FROM CUSTOMERS CUSTOMERS_A1, ORDERS,
HR.COUNTRIES
WHERE ((ORDERS.CUSTOMER_ID = CUSTOMERS_A1.CUSTOMER_ID)
AND (CUSTOMERS_A1.CUST_ADDRESS.COUNTRY_ID = HR.COUNTRIES.COUNTRY_ID))
AND ORDERS.ORDER_ID = :P_ORDER_ID ORDER BY order_ID

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルbarcode_code.txtからコードをコピーして「SQL問合せ文」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「SQL問合せ文」フィールドにコードを入力します。

5. 「OK」をクリックします。
サンプル・スキーマが格納されているデータベースに接続されていない場合は、ここでログインする必要があります。接続文字列がわからない場合は、データベース管理者に問い合せてください。この例では、Order Entryサンプル・スキーマを使用します。

6. バインド・パラメータが作成されたことを示すメッセージが表示された後、「OK」をクリックします。

7. データ・モデル・ビューで、グループ・オブジェクトをダブルクリックして、プロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「G_SHIPMENT」に設定します。

作成したデータ・モデルは次のようになります。

図43-5 JSPベースWebレポートの問合せのデータ・モデル

8. レポートをShippingLabel_your_initials.jspという名前で保存して、このレポートのJSPベースのWebソースを作成します。

これで、レポート用のデータを取り込む問合せの作成が完了しました。

43.3.2 データ・モデルにおける3つの式列の作成

注文の追跡番号、注文元および注文先を取得するために、レポートに3つの式列を作成する必要があります。

TrackingNumber式列を作成するには:

1. データ・モデル・ビューで、ツール・パレットの「式列」ツールをクリックします。

2. 「G_SHIPMENT」グループ内をクリックして、新しい式列を作成します。

3. 新しい式列オブジェクト(CF_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「TrackingNumber」に設定します。

- 「列」で、「データ型」プロパティを「Character」に設定します。

- 「プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。

4. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function TrackingNumberFormula return char is
begin
return(:Customer_id||:Order_ID||:country_ID);
end;

注意:

提供されているテキスト・ファイルbarcode_code.txtから、このコードをコピーして貼り付けると、コードを入力できます。

5. 「コンパイル」をクリックします。

注意:

コードがコンパイルされない場合は、提供されているコードを正確に入力したかどうかを確認してください。

6. コードがコンパイルされたら、「閉じる」をクリックします。

OriginScan式列を作成するには:

1. 「G_SHIPMENT」グループ内をクリックして、新しい式列を作成します。

2. 新しい式列オブジェクト(CF_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「OriginScan」に設定します。

- 「列」で、「データ型」プロパティを「Character」に設定します。

- 「プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。

3. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function OriginScanFormula return char is
begin
return('34324-OH-US');
end;

注意:

提供されているテキスト・ファイルbarcode_code.txtから、このコードをコピーして貼り付けると、コードを入力できます。

4. 「コンパイル」をクリックします。

注意:

コードがコンパイルされない場合は、提供されているコードを正確に入力したかどうかを確認してください。

5. コードがコンパイルされたら、「閉じる」をクリックします。

DestinationScan式列を作成するには:

1. G_SHIPMENTグループに、3つ目の式列を作成します。

2. 新しい式列オブジェクト(CF_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「DestinationScan」に設定します。

- 「列」で、「データ型」プロパティを「Character」に設定します。

- 「プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。

3. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function DestinationScanFormula return char is
begin
return(:postal_code||'-'||:state_province||'-'||:country_ID);
end;

注意:

提供されているテキスト・ファイルbarcode_code.txtから、このコードをコピーして貼り付けると、コードを入力できます。

4. 「コンパイル」をクリックします。

注意:

コードがコンパイルされない場合は、提供されているコードを正確に入力したかどうかを確認してください。

5. コードがコンパイルされたら、「閉じる」をクリックします。

6. レポートをJSPとして保存します。

これで、注文の追跡番号、注文元および注文先の値を取り込む3つの式列の作成が完了しました。作成したデータ・モデルは次のようになります。

図43-6 3つの式列を持つデータ・モデル

43.3.3 バーコードJavaBeanの初期化とそのプロパティの設定

JSPベースのWebレポートでJavaBeanと通信するには、JSPでそのJavaBeanを初期化する必要があります。ペーパー・レポートでJavaBeanを使用する場合とは異なり、Java Importerを使用してJavaクラスをインポートする必要はありません。

この項では、正しいデータを使用してバーコードが作成されるように、Beanのプロパティを設定する方法についても説明します。

ソース・ファイル(Examples/barcodebeanweb/source/shipping_manifest_web.rdf)を開いてWebソースの該当個所をレポートにコピーすると、コードを入力する手間が省けます。

JavaBeanが正しいバーコード・イメージを参照できるようにするには、まず正しいパスを使用してレポートを更新する必要があります。

パスを更新するには:

1. オブジェクト・ナビゲータで、JSPベースWebレポート(ShippingLabel_your_initials)の「Webソース」ノードの横にあるビュー・アイコンをダブルクリックして、Webソース・ビューを表示します。

2. Webソース・ビューで、「Define Path information for your barcode images」というテキストを検索します。

3. このテキストの下で、イメージの生成先のディレクトリ(d:\\temp\\docroot\\images\\など)をポイントするようにパスを更新します。提供されているパスとの整合性を維持するようにしてください。

注意:

これらのファイルが配置されるディレクトリは、Web Serverからアクセスできる必要があります。通常、このディレクトリは、JSPを保持するディレクトリの下にあります。このディレクトリがコンピュータ上に存在することを確認してから、Webに対してレポートを実行するようにします。

JavaBeanを初期化するには:

1. Webソース・ビューで次のテキストを検索します。
initialize the java beans

2. このテキストの下に次のコードを入力します。

<jsp:useBean id="BC" scope="page" class="oracle.apps.barcode.util.BarCodeConstants" />
<jsp:useBean id="BM" scope="page" class="oracle.apps.barcode.BarCodeMaker" />

注意:

この項のコードはすべて、提供されているテキスト・ファイルbarcode_code.txtから、コピーして貼り付けることによって入力できます。

バーコードJavaBeanのプロパティを設定するには:

1. Webソース・ビューで、setting the barcodes propertiesというテキストを検索します。

2. このテキストの下に次のコードを入力します。

<jsp:setProperty name="BM" property="BarCodeType" value="<%= BC.BAR_CODE_128 %>" />
<jsp:setProperty name="BM" property="BarWidthInch" value="0.01"/>
<jsp:setProperty name="BM" property="Directory" value="<%= BarcodePhysicalPath %>"/>

バーコード変数を定義するには:

1. Webソース・ビューで次のテキストを検索します。
Define variables to hold the data for the three barcodes

2. このテキストの下に次のコードを入力します。

<%! private String BarCodeData1 = "12345-XX-XX"; %>
<%! private String BarCodeData2 = "12345-XX-XX"; %>
<%! private String BarCodeData3 = "12345-XX-XX"; %>

For Eachループを作成するには:

1. Webソース・ビューで次のテキストを検索します。
replace this with your RW:FOREACH open tag

2. この行を次のコードで置き換えます。

<rw:foreach id="R_G_SHIPMENT" src="G_SHIPMENT">

3. 次のテキストを検索します。
replace this with your RW:FOREACH close tag

4. この行を次のコードで置き換えます。

</rw:foreach>

バーコードをレンダリングする式列をコーディングするには:

1. Webソース・ビューで、「**BARCODEShippingTrackingNumber**」というテキストを検索します。

2. このテキストの下に次のコードを入力します。

<!-- Get the value of the TrackingNumber and assign it to the variable -->
<rw:getValue id="BarCodeData1" src="TrackingNumber"/>
<!-- Set the data for tbe barcode and the filename -->
<jsp:setProperty name="BM" property="BaseCodeData" value="<%= BarCodeData1 %>"/>
<jsp:setProperty name="BM" property="FileName" value="<%= BarCodeData1 %>"/>
<!-- Render the barcode -->
<% BM.renderBarCode(); %>
<!-- View the image in the page -->
<img src="assets/barcodes/<%= BarCodeData1 %>">

注意:

"<!--"で始まる行はコメントです。コードにコメントを挿入しない場合は、これらの行を追加する必要はありません。

3. Webソース・ビューで次のテキストを検索します。
**BARCODEOriginScan**

4. このテキストの下に次のコードを入力します。

<!-- Get the value of the OriginScan and assign it to the variable -->
<rw:getValue id="BarCodeData2" src="OriginScan"/>
<!-- Set the data for tbe barcode and the filename -->
<jsp:setProperty name="BM" property="BaseCodeData" value="<%= BarCodeData2 %>"/>
<jsp:setProperty name="BM" property="FileName" value="<%= BarCodeData2 %>"/>
<!-- Render the barcode -->
<% BM.renderBarCode(); %>
<!-- View the image in the page -->
<img src="assets/barcodes/<%= BarCodeData2 %>">

5. Webソース・ビューで、「**BARCODEDestinationScan**」というテキストを検索します。

6. このテキストの下に次のコードを入力します。

<!-- Get the value of the DestinationScan and assign it to the variable -->
<rw:getValue id="BarCodeData3" src="DestinationScan"/>
<!-- Set the data for tbe barcode and the filename -->
<jsp:setProperty name="BM" property="BaseCodeData" value="<%= BarCodeData3 %>"/>
<jsp:setProperty name="BM" property="FileName" value="<%= BarCodeData3 %>"/>
<!-- Render the barcode -->
<% BM.renderBarCode(); %>
<!-- View the image in the page -->
<img src="assets/barcodes/<%= BarCodeData3 %>">

7. レポートをJSPとして保存します。

43.3.4 Webに対するレポートの実行

Webレポートの作成が完了した後、このレポートをWebに対して実行し、結果を確認する必要があります。

1. オブジェクト・ナビゲータで、レポート名「ShippingLabel_your_initials」をクリックします。

2. ツールバーで「Webレイアウトを実行」ボタンをクリックして、レポートをブラウザに対して実行します。

注意:

デフォルトのブラウザとしてNetscape 7.0を使用し、ブラウザにレポートが表示されない場合は、レジストリ・キーHKEY_CURRENT_USERS\Software\Oracle\Toolkit\Tkbrowserをブラウザのデフォルトの場所に設定します。BrowserNameおよびBrowserPathのキーに正しい値が指定されていることを確認してください。たとえば、BrowserName=Netscape 7、BrowserPath=C:\Program Files\Netscape\Netscape\Netscp.exeになります。

作成したレポートが、次のようにWebブラウザに表示されます。

図43-7 バーコードを含んだ最終的なJSPベースWebレポートのスナップショット

注意:

意図した結果が得られたかどうかがわからない場合は、resultsディレクトリにあるShippingManifestWeb.htmlをWebブラウザでいつでも開くことができます。あるいは、イメージ・パスの更新後、Webに対してShippingManifestWeb.jspを実行すると、レポートがブラウザに表示されます。

43.4 サマリー

おめでとうございます。バーコードJavaBeanを使用してバーコード・イメージを生成するペーパー・レポートおよびJSPベースのWebレポートが作成されました。

この章で学習した内容は次のとおりです。

- ペーパー・レポートに対し、Java Importerを使用してJavaクラスを追加する。

- JavaServer Pagesを使用して、レポートからJavaBeanをコールする。

- PL/SQLパッケージを作成する。

- Before Reportトリガーを使用して、使用するバーコード・イメージのタイプをReports Builderに対して指定する。

- SQL問合せと式列を含んだデータ・モデルを手動で作成する。

- Webソース・ビューで、JSPベースのWebレポート用のコードを編集する。

- JSPでJavaBeanを設定する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

44 アクセス可能なJSPベースのWebレポートの作成

Oracle ReportsおよびWebアクセシビリティ・ガイドラインで定義された標準を使用すると、スクリーン・リーダーなどの補助テクノロジに対応した出力を生成するレポートを作成できます。Oracle Reportsは、この作業をサポートするプロパティとタグを提供します。

オラクル社のアクセシビリティ・サイト(http://www.oracle.com/accessibility)では、アクセシビリティについてより詳しく説明されています。また、Oracle Reportsを使用した、アクセス可能なエンタープライズ・レポートの作成に関するホワイト・ペーパーもあります。

アクセス可能なWebレポートの作成の詳細は、Oracle Technology Network (OTN)のサンプルを参照してください。

1. 「Oracle Reports 10g」ページ(http://www.oracle.com/technology/products/reports/index.html)で、「Getting Started」をクリックして「Getting Started with Oracle Reports」ホームページを表示します。

2. 左側にあるトピックのリストの中から「Index」をクリックします。

3. 「Topic」リストから「Building and Developing Reports」を選択します。

4. 「Collateral Type」リストから「Examples」を選択します。

5. 「検索」をクリックします。

6. 表示されたトピックの一覧で、「Building an Accessible JSP-based Web Report」をクリックします。

第VII部

プラガブル・データ・ソースを使用したレポートの作成

この部では、Oracleデータベースのリレーショナル・データにアクセスする、SQLデータ・ソース以外のデータ・ソースを使用したレポートについて説明します。これらのレポートでは、Oracle Reportsで使用できるデータ・ソースをそのまま使用するか、意味のある情報を公開するためにこれらの1つ以上のデータ・ソースの情報を結合します。

この部は、次の章で構成されています。

- 第45章「XMLプラガブル・データ・ソースを使用したレポートの作成」

XMLプラガブル・データ・ソースを使用したレポートでは、XMLデータなど、Oracle Reportsで使用できる任意のデータ・ソースに接続できます。異なるデータ・ソースの使用は、Oracle Reports Builderのプラガブル・データ・ソース(PDS)アーキテクチャによって実現されています。

- 第46章「テキスト・プラガブル・データ・ソースを使用したレポートの作成」

レポートには、テキスト・プラガブル・データ・ソースを組み込めます。この例として、文字区切りテキストをデータ・ソースとして使用したレポートなどがあります。

45 XMLプラガブル・データ・ソースを使用したレポートの作成

この章では、Oracle Reports付属のXMLプラガブル・データ・ソース(PDS)のデータを含むレポートについて学習します。この章の手順に従うと、図45-1に示すレポート出力を生成できます。

図45-1 XML PDSを使用したレポート出力

概要

- 企業の様々なデータ・ソースから、公開の必要な情報を得ることがよくあります。これらのデータ・ソースは、SQLベース(リレーショナル・データベース)の場合もあれば、XMLなどの非SQLベースの場合もあります。意味のある情報を公開するために、1つ以上のデータ・ソースからのデータを結合する必要がある場合も少なくありません。たとえば、傾向とパフォーマンスを比較するために、リレーショナル・データベースのデータを多次元データベースのデータと結合する場合などです。

- Oracle Reportsでは、あらゆるデータ・ソースのデータに対し、集計、要約、形式設定、スケジューリングなどの機能を利用できます。PDS(プラガブル・データ・ソース)アーキテクチャを利用すれば、ユーザー固有のデータ・ソースにも、Oracle Reportsで利用可能なデータ・ソース(XML、JDBCおよびテキスト)にも接続できます。

- 有効なXMLファイルには、DTD (Document Type Definition)またはXMLスキーマが含まれており、ファイルはこれに準拠しています。XMLファイルには、任意のソースを使用できます。ただし、Oracleでは、各種データをXMLデータ・ファイルおよびXMLのDTDまたはスキーマに変換するためのユーティリティおよびメソッドを多数提供しています。

- 使用するXMLデータ・ファイル(データ・ソース)の要素は、DTDまたはXMLスキーマ・ファイルに指定された要素と同じ順序およびフォーマットに従う必要があります。たとえば、DTDまたはXMLスキーマで2つの要素WAREHOUSE_ID(1番目)、PRODUCT_ID(2番目)が定義されているとします。この場合、XMLデータ・ファイルでもWAREHOUSE_IDがPRODUCT_IDより先にくる必要があります。各要素の名前は、一致している必要はありません。次のXMLデータファイルを例に考えてみます。

<WAREHOUSE>
<INVENTORY>
<WAREHOUSE_ID>3</WAREHOUSE_ID>
<PRODUCT_ID>2340</PRODUCT_ID>
<QUANTITY_ON_HAND>69</QUANTITY_ON_HAND>
<PRODUCT_NAME>Chemicals - SW</PRODUCT_NAME>
</INVENTORY>
<INVENTORY>
<WAREHOUSE_ID>3</WAREHOUSE_ID>
<PRODUCT_ID>2365</PRODUCT_ID>
<QUANTITY_ON_HAND>73</QUANTITY_ON_HAND>
<PRODUCT_NAME>Chemicals - TCS</PRODUCT_NAME>
</INVENTORY>
</WAREHOUSE>

このXMLに対する、接尾辞xsdの付いた有効なXMLスキーマは次のようになります。

</xsd:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">
<xsd:element name="WAREHOUSE" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="INVENTORY" minOccurs="0" maxOccurs="unbounded"
<xsd:complexType>
<xsd:sequence>
<xsd:element name="WAREHOUSE_ID" type="xsd:integer"/>
<xsd:element name="PRODUCT_ID" type="xsd:integer"/>
<xsd:element name="QUANTITY_ON_HAND" type="xsd:integer"/>
<xsd:element name="PRODUCT_NAME" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

- XML PDSの実装は、2次元のレコード・リストのみをサポートします。Oracle Reportsでは、XMLデータ・ファイルは、行および列で構成された簡単な表と見なされます。Oracle Reportsは、XMLの最上位要素の1つ下のレベルでXMLシーケンスを繰り返します。さらに低いレベルのシーケンス(ネストされた要素)がある場合、それらは処理されません。したがって、表形式のレポートを生成するには、次の例で示すように、XMLファイルを単純な行列形式に変換する必要があります。
例45-1は、G_EMPNO要素がネストしているG_DEPTNO要素を含むXMLデータ・ファイルを示しています。Oracle Reportsはすべての部門を解析しますが、各部門内の従業員もすべて解析されるわけではありません。各部門につき1人の従業員のレコードのみが表示されます。

例45-2は、このXMLデータ・ファイルを平面的なデータに変更する方法を示しています。この例では、G_EMPNOデータを含むG_DEPTNO要素にネストが存在しないことが分かります。これで、Oracle Reportsで、すべての部門が各部門内のすべての従業員も含めて解析されるようになりました。

例45-3および例45-4は、ネストしているXMLデータと平面化されたXMLデータにそれぞれ対応するXMLスキーマ・ファイルを示しています。

例45-1 ネストしているXMLデータ・ファイル

<?xml version="1.0" encoding="WINDOWS-1252"?>
<EMP>
<G_DEPTNO>
<DEPTNO>10</DEPTNO>
<G_EMPNO>
<EMPNO>7782</EMPNO>
<ENAME>CLARK</ENAME>
<JOB>MANAGER</JOB>
<MGR>7839</MGR>
<HIREDATE>09-JUN-81</HIREDATE>
<SAL>2450</SAL>
<COMM></COMM>
</G_EMPNO>
<G_EMPNO>
<EMPNO>7839</EMPNO>
<ENAME>MIKEb</ENAME>
<JOB>BOSS</JOB>
<MGR></MGR>
<HIREDATE></HIREDATE>
<SAL></SAL>
<COMM></COMM>
</G_EMPNO>
</G_DEPTNO>
<G_DEPTNO>
<DEPTNO>20</DEPTNO>
<G_EMPNO>
<EMPNO>7369</EMPNO>
<ENAME>SMITH</ENAME>
<JOB>CLERK</JOB>
<MGR>7902</MGR>
<HIREDATE>17-DEC-80</HIREDATE>
<SAL>800</SAL>
<COMM></COMM>
</G_EMPNO>
<G_EMPNO>
<EMPNO>7876</EMPNO>
<ENAME>ADAMS</ENAME>
<JOB>CLERK</JOB>
<MGR>7788</MGR>
<HIREDATE>12-JAN-83</HIREDATE>
<SAL>1100</SAL>
<COMM></COMM>
</G_EMPNO>
</G_DEPTNO>
</EMP>

例45-2 平面化されたXMLデータ・ファイル

<?xml version="1.0" encoding="WINDOWS-1252"?>

<EMP>
<G_DEPTNO>
<DEPTNO>10</DEPTNO>
<EMPNO>7782</EMPNO>
<ENAME>CLARK</ENAME>
<JOB>MANAGER</JOB>
<MGR>7839</MGR>
<HIREDATE>09-JUN-81</HIREDATE>
<SAL>2450</SAL>
<COMM></COMM>
</G_DEPTNO>
<G_DEPTNO>
<DEPTNO>10</DEPTNO>
<EMPNO>7839</EMPNO>
<ENAME>MIKEb</ENAME>
<JOB>BOSS</JOB>
<MGR></MGR>
<HIREDATE></HIREDATE>
<SAL></SAL>
<COMM></COMM>
</G_DEPTNO>
<G_DEPTNO>
<DEPTNO>20</DEPTNO>
<EMPNO>7369</EMPNO>
<ENAME>SMITH</ENAME>
<JOB>CLERK</JOB>
<MGR>7902</MGR>
<HIREDATE>17-DEC-80</HIREDATE>
<SAL>800</SAL>
<COMM></COMM>
</G_DEPTNO>
<G_DEPTNO>
<DEPTNO>20</DEPTNO>
<EMPNO>7876</EMPNO>
<ENAME>ADAMS</ENAME>
<JOB>CLERK</JOB>
<MGR>7788</MGR>
<HIREDATE>12-JAN-83</HIREDATE>
<SAL>1100</SAL>
<COMM></COMM>
</G_DEPTNO>
</EMP>

例45-3 対応するネストしているXMLスキーマ・ファイル

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">
<xsd:element name="EMP">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="G_DEPTNO" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="DEPTNO" type="xsd:string"/>
<xsd:element name="G_EMPNO" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="EMPNO" type="xsd:string"/>
<xsd:element name="ENAME" type="xsd:string"/>
<xsd:element name="JOB" type="xsd:string"/>
<xsd:element name="MGR" type="xsd:string"/>
<xsd:element name="HIREDATE" type="xsd:string"/>
<xsd:element name="SAL" type="xsd:string"/>
<xsd:element name="COMM" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

例45-4 対応する平面化されたXMLスキーマ・ファイル

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">
<xsd:element name="EMP">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="G_DEPTNO" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="DEPTNO" type="xsd:string"/>
<xsd:element name="EMPNO" type="xsd:string"/>
<xsd:element name="ENAME" type="xsd:string"/>
<xsd:element name="JOB" type="xsd:string"/>
<xsd:element name="MGR" type="xsd:string"/>
<xsd:element name="HIREDATE" type="xsd:string"/>
<xsd:element name="SAL" type="xsd:string"/>
<xsd:element name="COMM" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

- プラガブル・データ・ソースの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。データ・ソースで既存のPDSを使用できない場合は、PDS APIにより独自のPDSを記述して、Oracle Reportsに取り込むことが可能となり、一意の専用データ・ソースにアクセスできます。APIについては、Oracle Reports Java APIリファレンスに記載されています。

使用例

米国と海外に倉庫を置いて、国際的な取引を行っているとします。これらの倉庫では、各現場でローカルに業務データを保存する、分散型管理システムを運用しています。倉庫の在庫は、現地の責任者が管理しています。ところが、計画を行うために、本社のチームがすべての倉庫の最新データを含む在庫データ(SQL形式)にアクセスする必要が生じました。倉庫のデータは、XMLストリームとしてのみ入手できます。この例では、ローカル・データベースのデータ(つまり倉庫データ)とXML入力からのデータを結合して、Webレポートを作成する方法を習得します。この例では、静的XMLファイルを使用します。

このサンプル・レポートの作成過程では、次を行います。

- SQL問合せとXML問合せを使用したレポートの手動作成:

- 新規レポートのSQL問合せの作成。

- データ・ウィザードでの、XMLデータ・ソースへのアクセスに使用するXML問合せの作成。

- SQL問合せとXML問合せの、2つの問合せ間のデータ・リンクの作成。

- レポート・ウィザードを使用したレポートのレイアウトの作成。

- フォーマット・トリガーおよびプロシージャを使用した、レポートの行カラーの交互適用。

- グループ・フィルタを使用したXMLデータのフィルタリングによる、XMLデータのソート。

- ペーパーを対象としたレポートの実行。

XML PDSを使用するレポートのサンプルを表示するには、サンプル・フォルダxml_pdsを開き、inventory_report.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。この章で使用されているサンプル・ファイルのリストと説明を表45-1に示します。

表45-1 レポートのサンプル・ファイル

ファイル

説明

xml_pds\inventory_report.pdf

ペーパー・レポートの最終PDFバージョン。

xml_pds\inventory_report.rdf

ペーパー・レポートの最終RDFバージョン。

xml_pds\xmlpds_sql.txt

このレポートで使用する各種SQL文。

xml_pds\warehouse_inventory.xml

レポート内の問合せで使用するXMLデータ・ソース。

xml_pds\warehouse_inventory.xsd

レポートのXMLデータ・ストリーム。

45.1 この例の前提条件

この章の例を作成するには、サンプル・ファイルが必要です(前述の「使用例」を参照)。また、Oracle Database付属のOrder Entryサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

45.2 SQL問合せとXML問合せを使用したレポートの手動作成

レポートは、レポート・ウィザードを使用して作成するか、または独自に作成できます。このレポートを作成するには、SQL問合せとXML問合せという2つの問合せを作成する必要があります。

45.2.1 新規レポートのSQL問合せの作成

SQL問合せを作成するには:

1. Reports Builderを起動します(すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択)。

2. 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「新規レポートを手動で作成」を選択して「OK」をクリックします。
オブジェクト・ナビゲータに、新規のレポートが「MODULE 2」などの名前で表示されます。新規レポートのデータ・モデル・ビューも表示されます。

3. データ・モデル・ビューで、ツール・パレットの「SQL問合せ」ツールをクリックし、データ・モデル・ビューの空いている場所をクリックして、「SQL問合せ文」ダイアログ・ボックスを表示します。

4. 「SQL問合せ文」フィールドに、次のSELECT文を入力します。

SELECT W.WAREHOUSE_ID,
W.WAREHOUSE_NAME,
L.CITY,
L.STATE_PROVINCE,
C.COUNTRY_NAME
FROM WAREHOUSES W,
HR.LOCATIONS L,
HR.COUNTRIES C
WHERE (W.LOCATION_ID = L.LOCATION_ID(+))
AND (L.COUNTRY_ID = C.COUNTRY_ID(+))
ORDER BY C.COUNTRY_NAME, W.WAREHOUSE_NAME

注意:

この問合せは、次のいずれかの方法で入力できます。

- 提供されているテキスト・ファイルxmlpds_sql.txtからコードをコピーして、「SQL問合せ文」フィールドに貼り付けます。

- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

- 「SQL問合せ文」フィールドにコードを入力します。

5. 「OK」をクリックします。

注意:

「接続」ダイアログ・ボックスが表示された場合は、ユーザーID、パスワード、およびサンプル・スキーマを含んでいるデータベースの名前を入力します。

次のようにデータ・モデルがデータ・モデル・ビューに表示されます。

図45-2 XML PDSの例のSQL問合せで使用するデータ・モデル

6. レポートをinventoryreport_xml_your_initials.rdfという名前で保存します。

これで、レポートのデータを取得するSQL問合せの作成が完了しました。

45.2.2 XMLデータ・ソースへのアクセスに使用するXML問合せの作成

この項では、XMLデータ・ソースにアクセスするための問合せを作成します。提供されている結果のレポートを参照すると、作成した問合せが正しいかどうかを確認できます。ただし、データ定義ファイルへのパスを、提供されているサンプル・ファイルの場所の名前で更新する必要があります。

XML問合せを作成するには:

1. データ・モデル・ビューで、「挿入」→「問合せ」を選択してデータ・ウィザードを表示します。

2. 「データ・ウィザードようこそページ」が表示されたら、「次へ」をクリックします。

3. 「問合せ」ページで「次へ」をクリックします。

4. 「データ・ソース」ページで、XML Queryをクリックし、「次へ」をクリックします。

5. 「データ」ページで「問合せ定義」をクリックし、「XML問合せの定義」ダイアログ・ボックスを表示します。

6. 「XML問合せの定義」ダイアログ・ボックスで、「データ定義」の下の「参照」をクリックして、提供されているXSDファイルwarehouse_inventory.xsdを検索して開きます。

7. 「データ・ソース」の下の「参照」をクリックして、提供されているXMLファイルwarehouse_inventory.xmlを検索して開きます。このXMLファイルにはデータが含まれています。
作成したデータ定義をオラクル社提供のデータ定義と比較する場合は、データ定義の場所を、作成したファイルの場所で置き換えてください。

8. 「OK」をクリックします。

9. データ・ウィザードで、「データ」ページを開いたまま「次へ」をクリックします。

10. 「グループ」ページで「次へ」をクリックします。

11. 「終了」をクリックして、データ・モデル・ビューにデータ・モデルを表示します。次の例のようになります。

図45-3 XML問合せとSQL問合せを含むXML PDSの例のデータ・モデル

12. レポートを保存します。

これで、提供されているXMLデータ・ソースにアクセスするためのXML問合せが作成されました。

45.2.3 2つの問合せ間のデータ・リンクの作成

次に、SQL問合せとXML問合せをリンクして、企業データと各ローカル倉庫のデータにアクセスできるようにする必要があります。

データ・リンクを作成するには:

1. データ・モデル・ビューで、ツール・パレットの「データ・リンク」ツールをクリックします。

2. 最初の問合せ(Q_1)で、「WAREHOUSE_ID」列をクリックします。

3. カーソルをそのまま2番目の問合せ(Q_2)の「WAREHOUSE_ID1」列までドラッグします。
その結果、データ・モデルは次のようになります。

図45-4 SQL問合せとXML問合せ間にデータ・リンクが作成されたデータ・モデル

WAREHOUSE_ID列がQ_1の下部でハイライトされ、そこから伸びた線がWAREHOUSE_ID1列を指していることがわかります。

4. レポートを保存します。

これで、2つの問合せのWAREHOUSE_ID列間にデータ・リンクが作成されました。

45.2.4 レポート・ウィザードを使用したレポートのレイアウトの作成

レポートを実行するには、事前にレイアウトを定義する必要があります。それには、レポート・ウィザードを使用する方法が最も簡単です。

ペーパー・レイアウトを作成するには:

1. データ・モデル・ビューで、キャンバスを右クリックして「レポート・ウィザード」を選択します。

2. レポート・ウィザードの「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

3. 「スタイル」ページで「グループ上」を選択します。

4. 「グループ」ページで、G_WAREHOUSE_IDとG_WAREHOUSE_ID1グループが、「グループ・フィールド」リスト内で印刷方向が「縦」としてリストされていることを確認します。

5. 「フィールド」ページで、「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動します。

6. 「ラベル」ページで、必要に応じてラベルを調整します。

7. 「テンプレート」ページで、「事前定義テンプレート」を選択し、「Beige」をクリックします。次に「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。次の例のようになります。

図45-5 XML PDSレポートのペーパー・デザイン・ビュー

8. レポートを保存します。

これでペーパー・レポートのレイアウトが完成しました。

注意:

提供されているレポートinventory_report.rdfを実行することもできます。このレポートを実行するには、事前にデータ・モデル・ビューでXML問合せをダブルクリックし、XMLデータ・ソースとして該当のXSDファイルおよびXMLファイルを指定します。

45.2.5 レポートの行カラーの交互適用

レポートの作成が完了したので、次にサマリー列を使用して行に異なるカラーを交互に適用することで、ユーザーが見やすいレポートにします。

行を数えるためのサマリー列を作成するには:

1. データ・モデル・ビューで、ツール・パレットの「サマリー列」ツールをクリックします。
ペーパー・デザイン・ビューがまだ表示されている場合は、ツールバーの「データ・モデル」ボタンをクリックしてデータ・モデル・ビューを表示します。

2. XML問合せグループ(G_WAREHOUSE_ID1)内をクリックして、サマリー列を作成します。

3. 新しいサマリー列オブジェクト(CS_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

- 「一般情報」で、「名前」プロパティを「LineNo」に設定します。

- 「列」で、「列タイプ」プロパティを「サマリー」、「データ型」プロパティを「Number」に設定します。

- 「サマリー」で、「ファンクション」プロパティを「カウント」、「ソース」プロパティを「PRODUCT_NAME」に設定します。

行カラーを変更するプロシージャを作成するには:

1. オブジェクト・ナビゲータで、レポートの「プログラム・ユニット」ノードをクリックします。

2. ツールバーで「作成」ボタンをクリックして、「新規プログラム・ユニット」ダイアログ・ボックスを表示します。

3. 新規プログラム・ユニット・ダイアログ・ボックスで、「名前」フィールドにlinecolorsと入力します。

4. 「プロシージャ」を選択し、「OK」をクリックして新しいプログラム・ユニットのPL/SQLエディタを表示します。

5. PL/SQLエディタで、交互の行のテキスト・カラーを青に変更する次のPL/SQLコードを入力します。

PROCEDURE LineColors IS
BEGIN
if (:LineNo mod 2=0) then
srw.set_text_color('blue');
else
srw.set_text_color('black');
end if;
END;

注意:

xmlpds_code.txtファイルに含まれているプロシージャから、このコードをコピーして貼り付けることもできます。その場合は、Line Colors Procedureの下のテキストをコピーしてください。

6. 「コンパイル」をクリックしてプロシージャをコンパイルします。
エラーが表示された場合は、コードが正しいこと、および前述の手順でサマリー列を作成済であることを確認します。

7. 「閉じる」をクリックします。

注意:

または、前述の項の手順に従い、次のPL/SQLコードを使って、交互の行の塗りつぶしカラーを変更することもできます。このサンプル・コードでは、交互の行の塗りつぶしカラーを赤と青に変更しています。

PROCEDURE LineColors IS
BEGIN
if (:LineNo mod 2=0)
then
srw.set_foreground_fill_color('blue');
srw.set_fill_pattern('solid');
else
srw.set_foreground_fill_color('red');
srw.set_fill_pattern('solid');
end if;
END;

プロシージャをコールする各フィールドにフォーマット・トリガーを作成するには:

1. オブジェクト・ナビゲータで、レポート名の下の「ペーパー・レイアウト」ノードを展開し、「メイン・セクション」→「ボディ」→「M_G_WAREHOUSE_ID_GRPFR」→「R_G_WAREHOUSE_ID」→「M_G_WAREHOUSE_ID1_GRPFR」→「R_G_WAREHOUSE_ID1」までナビゲートします。

2. 「R_G_WAREHOUSE_ID1」で「F_PRODUCT_ID」をダブルクリックしてプロパティ・インスペクタを表示します。

注意:

特定のフィールドが見つからない場合は、オブジェクト・ナビゲータの上部にある「検索」フィールドを使用してください。

3. プロパティ・インスペクタの「拡張レイアウト」で、「フォーマット・トリガー」プロパティ・フィールドをダブルクリックし、PL/SQLエディタを表示します。

4. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function F_PRODUCT_IDformatTrigger return Boolean is
begin
LineColors;
return (TRUE);
end;

注意:

太字のテキストには触れないでください。太字テキストの下のコードを入力して、フォーマット・トリガーを作成します。xmlpds_code.txtファイルに含まれているプロシージャから、このコードをコピーして貼り付けることもできます。その場合は、Format Trigger Codeの下のテキストをコピーしてください。

5. 前述の手順で使用したものと同じコードを使用して、次の各フィールドのフォーマット・トリガーを追加します。コードの先頭行を削除しないようにしてください。この行には、フォーマット・トリガー名が定義されています。

- F_PRODUCT_NAME

- F_QUANTITY_ON_HAND

- F_WAREHOUSE_ID1

6. レポートを保存します。

7. ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックして、ペーパーを対象としてレポートを実行します。レポートの表示は次のようになります。

図45-6 交互の行カラーを適用したXML PDSレポート

これで、レポートに対する行カラーの交互適用が完了しました。

45.2.6 グループ・フィルタを使用したXMLデータのフィルタリング

XMLファイルに大量のデータが含まれている場合は、データのソートやフィルタリングが必要になることがあります。グループ・フィルタと階層を作成することで、ソートとフィルタリングが可能となります。この項の手順では、ユーザーが定義した数量の在庫品目のみを表示するフィルタの作成方法について説明します。このフィルタが基づくパラメータは、ユーザーが実行時に入力できます。そして、データ・モデルで階層を作成することによって、レポート内のデータをグループ化します。

ユーザー・パラメータとグループ・フィルタを作成するには:

1. オブジェクト・ナビゲータで、「ユーザー・パラメータ」ノードの下に、データ型が「Number」、幅20、初期値50の新しいユーザー・パラメータP_MAXQTYを作成します(第4.11.2項「ユーザー・パラメータの作成」を参照)。

2. データ・モデル・ビューで、XML問合せの「G_WAREHOUSE_ID1」グループをダブルクリックして、このグループのプロパティ・インスペクタを表示します。

3. プロパティ・インスペクタの「グループ上」で、次の操作を行います。

- 「フィルタ・タイプ」プロパティを「PL/SQL」に設定します。

- 「PL/SQLフィルタ」プロパティ・フィールドをクリックして、PL/SQLエディタを表示します。

4. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

function G_WAREHOUSE_ID1GroupFilter return boolean is
begin
if :quantity_on_hand < :P_maxqty then
return (TRUE);
else
return (false);
end if;
end;

注意:

提供されているファイルxmlpds_code.txtからこのコードをコピーして貼り付けることもできます。「Group Filter Code」というヘッダーの下のコードをコピーします。

5. 「コンパイル」をクリックして、エラーがあれば修正します。

注意:

PL/SQLのコンパイル方法がわからない場合は、PL/SQLのリファレンス・マニュアルを参照してください。

6. コードが正常にコンパイルされたら、「閉じる」をクリックします。

7. レポートを保存します。

8. ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックして、ペーパーを対象としてレポートを実行します。パラメータ・フォームが表示されます。このフォームで、レポートに表示される品目の数量を調整できます。
提供されているレポートinventoryreport.rdfを実行し、その結果をReports Builderで参照することもできます。

9. レポートを保存します。

XML問合せに階層を作成するには:

1. データ・モデル・ビューで、XML問合せの「PRODUCT_ID」列をクリックし、そのまま問合せ名と「G_WAREHOUSE_ID1」グループの間にドラッグします。
作成したデータ・モデルは次のようになります。

図45-7 グループ階層を持つデータ・モデル

注意:

前述の図で、G_WAREHOUSE_ID1の上に緑色の円が表示されていることに注意してください。この円は、そのグループに対してグループ・フィルタが作成されていることを表します。

2. レポートを保存します。これで、レポート内のデータをソートするグループ階層が完成しました。

45.3 ペーパーを対象としたレポートの実行

ペーパー・レポートを実行するには:

1. オブジェクト・ナビゲータで、作成したレポート(inventoryreport_xml_your_initials.rdf)が選択されていることを確認します。

2. ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックして、ペーパーを対象としてレポートを実行します。初期値50が設定されたパラメータ・フォームが表示されます。

3. 次のようなレポートがペーパー・デザイン・ビューに表示されます。

図45-8 XML PDSのサンプル・レポートの最終的なペーパー・デザイン・ビュー

45.4 サマリー

おめでとうございます。ペーパー・レポートにXMLデータ・ソースを正常に使用しました。この章で学習した内容は次のとおりです。

- SQL問合せを新規に作成する。

- データ・ウィザードを使用してXML問合せを作成する。

- SQL問合せとXML問合せ間にデータ・リンクを作成する。

- レポート・ウィザードを使用してレポートのレイアウトを作成する。

- フォーマット・トリガーとプロシージャを使用して、レポートの行に異なるカラーを交互に適用する。

- グループ・フィルタと階層を使用してXMLデータをフィルタリングする。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

46 テキスト・プラガブル・データ・ソースを使用したレポートの作成

この章では、Oracle Reports付属のテキスト・プラガブル・データ・ソース(PDS)のデータを含むレポートについて学習します。この章の手順に従うと、図46-1に示すレポート出力を生成できます。

図46-1 テキストPDSを使用したレポート出力

概要

- 企業の様々なデータ・ソースから、公開の必要な情報を得ることがよくあります。これらのデータ・ソースは、SQLベース(リレーショナル・データベース)の場合もあれば、文字区切りテキストなどの非SQLベースの場合もあります。意味のある情報を公開するために、1つ以上のデータ・ソースからのデータを結合する必要がある場合も少なくありません。たとえば、傾向とパフォーマンスを比較するために、リレーショナル・データベースのデータを多次元データベースのデータと結合する場合などです。

- Oracle Reportsでは、あらゆるデータ・ソースのデータに対し、集計、要約、形式設定、スケジューリングなどの機能を利用できます。PDS(プラガブル・データ・ソース)アーキテクチャを利用すれば、ユーザー固有のデータ・ソースにも、Oracle Reportsで利用可能なデータ・ソース(XML、JDBCおよびテキスト)にも接続できます。

- プラガブル・データ・ソースの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。データ・ソースで既存のPDSを使用できない場合は、PDS APIにより独自のPDSを記述して、Oracle Reportsに取り込むことが可能となり、一意の専用データ・ソースにアクセスできます。APIについては、Oracle Reports Java APIリファレンスに記載されています。

使用例

この例では、米国国勢調査局のデータをCSV(カンマ区切り値)形式でダウンロードし、レポートを生成するとします。文字区切りテキストをデータ・ソースとして使用してペーパー・レポートを作成する方法を学習します。

このサンプル・レポートの作成過程では、次を行います。

- textpds.confファイルを設定して、テキスト・ファイルをプラガブル・データ・ソースとして認識するようにReports Builderを構成する。

- レポート・ウィザードを使用してテキスト・データ・ソースに基づくレポートを作成する。

テキストPDSを使用するレポートのサンプルを表示するには、サンプル・フォルダtext_pdsを開き、census_report.rdfを開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。この章で使用されているサンプル・ファイルのリストと説明を表46-1に示します。

表46-1 レポートのサンプル・ファイル

ファイル

説明

text_pds\census_report.rdf

レポート用に完成したRDF。

text_pds\census_report.pdf

完成したレポートのPDFバージョン。

text_pds\census_csv.txt

米国国勢調査局のWebサイトから入手した文字区切りデータ。

text_pds\config.txt

textpds.confファイルのコード。

46.1 この例の前提条件

この章の例を作成するには、サンプル・ファイルが必要です(前述の「使用例」を参照)。

46.2 textpds.confファイルの設定

テキスト・ファイルをデータ・ソースとして使用するには、事前にそのテキスト・ファイルのフォーマット情報を使用してテキストPDS構成ファイル(textpds.conf)を設定する必要があります。構成ファイル内のデータ定義により、テキスト・ファイルがOracle Reports Builderで有効なデータ・ソースとして認識されるようになります。

注意:

変更を有効にするには、構成ファイルを編集した後でReports Builderを起動または再開する必要があります。

textpds.confファイルを設定するには:

1. メモ帳などのテキスト・エディタで、textpds.confファイルを開きます。このファイルは、ORACLE_HOME/reports/confディレクトリにあります。

注意:

ORACLE_HOMEは、使用しているコンピュータでReports Builderがインストールされている場所です。

2. 別のテキスト・エディタ・ウィンドウで、提供されているconfig.txtファイルを開きます。

3. config.txt内のテキストをコピーし、textpds.confの</textPDS>エントリの前に貼り付けます。これによって、textpds.confファイルに次のようなエントリが追加されます。

図46-2 textpds.confエントリのスナップショット

注意:

textpds.confのfileFormatエントリを使用すると、テキスト・ファイルがReports Builderでデータ・ソースとして認識されるようになります。テキストPDSをレポート・ウィザードで選択する際に、定義されたフォーマット(この例では、CensusCSV)が選択肢の1つとして表示されます。fileFormatエントリでは、このファイルの各列のプロパティも定義します。

4. textpds.confファイルを保存します。

これで、文字区切りテキスト・データ・ソースのtextpds.confファイルが設定されました。

46.3 レポート・ウィザードを使用したレポートの作成

レポートは、レポート・ウィザードを使用して作成するか、または独自に作成できます。この例の単純なレポートを作成する場合は、レポート・ウィザードを使用できます。

テキスト・プラガブル・データ・ソースを使用する前に、テキスト・ファイルの内容を調べる必要がある場合があります。メモ帳などのテキスト・エディタでcensus_csv.txtファイルを開き、この例で使用するデータを確認できます。

簡単なレポートを作成するには:

1. textpds.confファイルは更新済なので、Reports Builderを起動します。

ヒント:

textpds.confファイルを変更するときにReports Builderが起動していた場合は、Reports Builderを一度シャットダウンしてから再起動すると、テキスト・ファイルが有効なデータ・ソースとして認識されるようになります。

2. 「ようこそ」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。

3. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

4. 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

5. 「スタイル」ページで、レポートのタイトルを入力してから「グループ上」を選択し、「次へ」をクリックします。

6. 「データ・ソース」ページで、Text Queryをクリックし、「次へ」をクリックします。

7. 「データ」ページで「問合せ定義」をクリックし、「テキスト問合せの定義」ダイアログ・ボックスを表示します。
「テキスト問合せの定義」ダイアログ・ボックスが表示されずにエラー・メッセージが表示される場合は、構成ファイル(textpds.conf)に追加したコードに間違いがないか確認します。

8. 「データ定義」で、リストの「CensusCSV」書式をクリックします。

注意:

CensusCSV書式がこのリストに表示されるのは、この書式をtextpds.confファイルに追加したためです。

9. 「データ・ソース」で、「参照」をクリックして、提供されているcensus_csv.txtファイルを検索します。
ディレクトリにこのファイルがない場合は、「開く」ダイアログ・ボックスのファイルの種類リストでTXTファイルを選択したかどうかを確認します。

10. このファイルをクリックし、「開く」をクリックします。

11. 「位置」フィールドにcensus_csv.txtファイルが表示されたら、「OK」をクリックします。
レポート・ウィザードでは、データ・ソース定義が「データ・ソース定義」フィールドに表示されます。

12. 「次へ」をクリックします。

13. 「グループ」ページで、「使用可能フィールド」リストの「CATEGORY」をクリックし、「>」ボタンをクリックして、このフィールドを「グループ・フィールド」リストに移動し、「次へ」をクリックします。

14. 「フィールド」ページで、「>>」ボタンをクリックして、すべての使用可能フィールドを「表示フィールド」リストに移動し、「次へ」をクリックします。

15. 「合計」ページで「次へ」をクリックします。

16. 「ラベル」ページで「次へ」をクリックします。

17. 「テンプレート」ページで、「事前定義テンプレート」を選択し、「Beige」をクリックします。次に「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。必要な変更を加えます。レポートは次のようになります。

図46-3 テキストPDSレポートのペーパー・デザイン・ビュー

18. レポートをcensus_report_your_initials.rdfという名前で保存します。

注意:

作成結果を、サンプル用のディレクトリにある提供されているサンプル・レポートと比較できます。ただし、レポートの実行前に次の手順を実行する必要があります。

- データ・モデル・ビューで、問合せを右クリックして「データ・ウィザード」を選択します。

- 「データ」ページで「問合せ定義」をクリックします。

- census_csv.txtの場所を、ローカル・ドライブ上のこのファイルの場所に更新します。

46.4 サマリー

おめでとうございます。ペーパー・レポートにテキスト・プラガブル・データ・ソースを正常に使用しました。この章で学習した内容は次のとおりです。

- textpds.confファイルを設定する。

- レポート・ウィザードを使用してテキスト・データ・ソースに基づくペーパー・レポートを作成する。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第4.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Oracle Reports BuilderまたはOracle Technology Network (OTN)から表示できます。

A ツール・パレットとツールバーのリファレンス

この付録では、Reports Builderメイン・ツールバーおよびツール・パレットで使用可能な各種のボタンとツールについて説明します。

A.1 メイン・ツールバー

メイン・ツールバーは、図A-1に示すように、Oracle Reports Builderウィンドウ上部のメニュー・バーのすぐ下にあります。

図A-1 メイン・ツールバー

各ボタンの名前と説明は次のとおりです。

アイコン

説明

「新規」ボタン。「新規レポート」ダイアログ・ボックスを表示します。

「開く」ボタン。「開く」ダイアログ・ボックスを表示します。

「保存」ボタン。レポートを保存します。レポートを初めて保存するときは、「別名保存」ダイアログ・ボックスを表示します。

「印刷」ボタン。ペーパー・レポートを印刷します。

「メール」ボタン。「メール」ダイアログ・ボックスを表示します。

「接続」ボタン。「接続」ダイアログ・ボックスを表示します。

「切取り」ボタン。現在選択されている項目を削除し、一時的にクリップボードに置きます。その項目を貼り付けるには、「貼付け」を使用します。

「コピー」ボタン。選択されている項目のコピーを一時的にクリップボードに置きます。その項目を貼り付けるには、「貼付け」ボタンをクリックします。

「貼付け」ボタン。クリップボードにある項目を現行のカーソル位置に貼り付けます。

「元に戻す」ボタン。前回実行された操作を取り消して元に戻します。

「再実行」ボタン。前回の操作を再度実行します。

「Webレイアウトを実行」ボタン。現行のレポートをWebブラウザに実行します。

「ペーパー・レイアウトを実行」ボタン。現行のレポートを、Reports Builderのペーパー・デザイン・ビューに実行します。

「ヘルプ」ボタン。Oracle Reportsのオンライン・ヘルプを表示します。

A.2 データ・モデル・ビューのツール・パレット

データ・モデル・ビューのツール・パレットは、ツールをグループ化して縦に並べたもので、図A-2に示すように、データ・モデル・ビューの左側に配置されます。

図A-2 データ・モデル・ビューのツール・パレット

各ツールの名前と説明は次のとおりです。

アイコン

説明

「選択」ツール。現在選択されているツールがあれば、選択を解除してオフにします。また、「データ・モデル」ビューのオブジェクトを選択できます。

「拡大」ツール。クリックしたオブジェクトの表示を拡大します。[Shift]キーを押しながら拡大ツールをクリックすると縮小表示します。

「サマリー列」ツール。問合せ内にサマリー列を作成します。

「データ・リンク」ツール。2つの問合せのキー列間の関係を定義するための線をドラッグすると、問合せ間のマスター/ディテール関係が作成されます。

「式列」ツール。問合せ内に式列を作成します。

「クロス積」ツール。マトリックス(クロス積)グループを作成します。

「プレースホルダ列」ツール。作成後に変更可能なプレースホルダ列を作成します。

「SQL問合せ」ツール。「SQL問合せ文」ダイアログ・ボックスを表示します。このダイアログ・ボックスでは、SQL問合せのSELECT文を入力したり、クエリー・ビルダーを使用して問合せを作成したりできます。

「REFカーソル問合せ」ツール。REFカーソル問合せを入力できるPL/SQLエディタを表示します。

XML Queryツール。「XML問合せの定義」ダイアログ・ボックスを表示します。このダイアログ・ボックスでは、XMLのデータ定義やデータ・ソースを指定できます。

「JDBC問合せ」ツール。「JDBC問合せ」ダイアログ・ボックスを表示します。このダイアログ・ボックスでは、問合せのデータ定義に使用するSQLやストアド・プロシージャを定義できます。

Text Queryツール。Text Queryダイアログ・ボックスを表示します。このダイアログ・ボックスでは、テキストのデータ定義やデータ・ソースを指定できます。

A.3 ペーパー・レイアウト・ビューのツール・パレット

ペーパー・レイアウト・ビューのツール・パレットは、ツールをグループ化して縦に並べたもので、図A-3に示すように、ペーパー・レイアウト・ビューの左側に配置されます。

図A-3 ペーパー・レイアウト・ビューのツール・パレット

各ツールの名前と説明は次のとおりです。

アイコン

説明

「選択」ツール。現在選択されているツールがあれば、選択を解除してオフにします。また、ペーパー・レイアウト・ビューのオブジェクトを選択できます。

「拡大」ツール。クリックしたオブジェクトの表示を拡大します。[Shift]キーを押しながら拡大ツールをクリックすると縮小表示します。

「枠選択」ツール。明示的なアンカーに応じて(最初にツールをクリックしてから、枠をクリックして表示)、選択した枠または繰返し枠内のすべてのオブジェクトを選択します。

「形変更」ツール。選択されたオブジェクトを変形させることができます。

「テキスト」ツール。ボイラープレート・テキスト・オブジェクトを作成します。

「回転」ツール。選択されたボイラープレート・テキストおよびグラフィック・オブジェクトを回転させることができます。

「線」ツール。線のボイラープレート・オブジェクトを描画します。

「四角形」ツール。四角形のボイラープレート・オブジェクトを描画します。

「円弧」ツール。円弧のボイラープレート・イメージを描画します。

「丸い四角形」ツール。丸い四角形のボイラープレート・オブジェクトを描画します。

「折れ線」ツール。始点と終点が結ばれていない複数線のボイラープレート・オブジェクトを描画します。これら複数の線は、マウスを使用して作成します。

「多角形」ツール。多角形のボイラープレート・オブジェクトを描画します。折れ線オブジェクトとは異なり、多角形オブジェクトの始点と終点は結ばれている必要があります。

「手書き」ツール。マウスをドラッグして線を引きます。

「楕円」ツール。楕円のボイラープレート・オブジェクトを描画します。

「枠」ツール。枠を描画します。

「繰返し枠」ツール。繰返し枠を描画します。

「グラフ」ツール。グラフ・ウィザードを表示して、レイアウトに挿入するグラフの定義を行えるようにします。

「フィールド」ツール。フィールド・オブジェクトを作成します。

「アンカー」ツール。レイアウト内の2つのオブジェクト間にアンカーを作成します。

「ファイル・リンク」ツール。外部ファイルとレポートのリンクに使用できるリンク・ファイル・オブジェクトを作成します。

「レポート・ブロック」ツール。レポート・ブロック・ウィザードを表示して、レイアウトに新規レポート・ブロックを追加できるようにします。

用語集

AFM

Adobe Font Metricsの略称。AFMおよびPPDファイルは、Adobeおよびプリンタ・ベンダーから供給されます。これらのファイルには、プリンタに関する情報が含まれます。他のパラメータとともに、これらのファイルを読み取ることにより、プリンタで使用可能なフォントに関する情報をOracle Reportsが利用します。PPDファイルに記載されたすべてのフォントに対して、Oracle Reportsはフォント名に従って対応するAFMファイルを検索し、使用可能なAFMがあるフォントすべてをロードします。

CGI

Common Gateway Interfaceの略称。WebサーバーとCGIプログラムの間で情報を転送するための標準。CGIは、HTTPリクエストの一部として引数をプログラムに渡す方法を指定し、プログラムで利用できる環境変数を定義します。プログラムは出力を生成し、それをブラウザに返します。CGIは、Webサーバーがユーザーに対して動的に対応できるようにする、サーバー側処理を提供します。

列

1. データの特定のドメインを表す、データベース表内の垂直方向の領域。列には列名(ENAMEなど)があり、特定のデータ型(CHARなど)を持っています。たとえば、従業員情報の表で従業員名のすべてが1つの列を構成するなどです。レコード・グループ列は、データベースの列を意味します。

2. 問合せのSELECTリスト内の列のそれぞれの式に対して自動で作成されるか、集計や式を実行するため、またはプレースホルダとして使用するために手動で作成されるデータ・モデル・オブジェクト。

3. エンティティの属性を表したものです。

データ・モデル

データ・ソースからフェッチするデータ、計算する値、レポートでのデータの順序を定義するリレーショナル・モデル。データ・モデルを定義するReports Builderのオブジェクトとして、問合せ、グループ、列、パラメータおよびリンクがあります。

データ・モデル・ビュー

レポートのデータを構造的に表示するレポート・エディタのビューの1つです。このオブジェクトは、レポート出力に表示されないが、構造体でレイアウト・スタイルが決定され、データ・オブジェクトはレイアウト・オブジェクトに表示される値を提供します。

データベース

問合せから返されるデータのソース。表、ビュー、シノニム、スナップショット、ビューとして格納された問合せなどのデータベース・オブジェクトがあります。Oracle Reports Servicesでは、様々なデータソースにアクセスできます。

ユニットとして扱われる、1組のディクショナリ表とユーザー表。

データ・ソース

問合せから返されるデータのソース。表、ビュー、シノニム、スナップショット、ビューとして格納された問合せなどのデータベース・オブジェクトがあります。Oracle Reports Servicesでは、様々なデータソースにアクセスできます。

Oracle Open Client Adapter (OCA)はプラガブル・データ・ソース(PDS)アーキテクチャに置き換えられ、Open Database Connectivity (ODBC)ドライバは、Oracle Reportsでは廃止されています。ただし、Java Database Connectivity (JDBC)は、JDBC-ODBCブリッジを使用できるプラガブル・データ・ソースの1つであり、これを利用することにより他のデータ・ソースへのアクセスが可能になります。

ディテール問合せ

マスター/ディテール・レポートの定義時には、マスター(親)問合せによって取得された各レコードのすべての関連レコードがディテール問合せによって取得されます。

ダイアログ・ボックス

操作を完了するために必要な情報の入力を求める、部分的な画面またはウィンドウ。

無効

インタフェース要素の状態の1つ。メニュー項目やボタンなどが現行コンテキストで使用できない(つまり、キーボードやマウスによる入力に反応しない)ことを表します。

エディタ

「ビュー(view)」を参照してください。

有効

インタフェース要素の状態の1つ。メニュー項目やボタンなどが現行コンテキストで使用できる(つまり、キーボードやカーソル/マウスによる入力に反応する)ことを表します。

フィールド

1. その中でデータの入力、編集および削除が可能なインタフェース要素。

2. 特定の問合せ列のデータ表示方法を定義するレイアウト・オブジェクト。

外部キー

表内の値または列で、別の表の主キーを参照するものです。

書式マスク

フィールドの値の外観を定義する設定。たとえば、書式マスクは通貨金額や日付の表示の指定に使用されます。

フォーマット・トリガー

オブジェクトのフォーマット属性を動的に変更するときに使用できるPL/SQLファンクション。

式列

PL/SQLファンクションまたは式、SQL文、あるいはこれらの組合せからデータを取得するユーザー作成の列。

枠

他のレイアウト・オブジェクトを囲むために使用されるレイアウト・オブジェクト。複数のオブジェクトの書式、表示頻度および位置を同時に制御できます。

グループ

1. Reports Builderでは、問合せによって選択されたすべての列を格納するために自動で作成されるか、レポートに表示するデータの階層を変更するためにユーザーが作成するデータ・モデル・オブジェクト。グループは主にレポートでのブレークの作成や、計算のリセットを目的として使用されます。

2. 他の複数のオブジェクトで構成されるオブジェクト。

HTML

HyperText Markup Languageの略称。インターネット上のWebサーバーの他のドキュメントに対するコンテンツとリンクの指定に使用される、タグベースのASCII言語。エンド・ユーザーは、WebブラウザからHTMLドキュメントを表示し、リンクを追って他のドキュメントを表示します。

HTTP

HyperText Transfer Protocolの略称。Webブラウザ・コンピュータとアクセス先のWebサーバーの間のWebトラフィックの伝達に使用されるプロトコル。

ハイパーリンク

ドキュメント内の特定の場所から別のドキュメント(内の特定の場所)または同じドキュメント内の別の場所への参照(リンク)。Webブラウザでは通常、ハイパーリンクが強調表示(異なる色、フォントまたはスタイルの使用により)されます。ユーザーがハイパーリンクをアクティブにすると(マウスでクリックすることによって)、そのリンクのターゲットがブラウザに表示されます。

IANA

Internet Assigned Numbers Authorityの略称。インターネット全体の新しいIPアドレスの割り当てを管理するInternet Architecture Board (IAB)の下位組織。IANAで定義された文字セットは、charsetタグ用に定義された文字セットであり、インターネットで使用することができます。

アイコン

ウィンドウやツールのグラフィック表示。

イメージ

アプリケーションに格納およびロードできるビットマップ・オブジェクト。クライアントは、インポートされたイメージを変更できません。

イントラネット

内部的なTCP/IPネットワークであり、これに対するアクセスは(ファイアウォールにより)企業や組織内の人物に制限されています。イントラネットは、インターネットと同様のサービスを組織内で提供しますが、必ずしもインターネットに接続されているとはかぎりません。企業内で情報やアプリケーションの配布のため、内部ネットワーク上に1つ以上のWebサーバーを設定するのはイントラネットの一般的な例です。

Java

プラットフォームに依存しないサーブレットまたはアプレットの形式でインターネット向けのプログラミングをサポートするコンピュータ言語。

Java EE

Java Platform, Enterprise Editionの略称。Javaで企業アプリケーションを開発、デプロイするための環境。複数層からなるWebベースのアプリケーションの開発を可能にする、一連のサービス、アプリケーション・プログラミング・インタフェース、プロトコルを提供します。

JAR

Java ARchiveの略称。様々なファイル(Javaクラス・ファイル、画像など)を1つのファイルにまとめるために使用されるファイル。

JSP

JavaServer Pageの略称。JSPテクノロジは、Sun社のJavaサーブレット・テクノロジの拡張機能で、Webページ上に動的コンテンツを表示するための簡単なプログラミング手段を提供します。JSPはサーバー側のテクノロジです。JSPは、Webまたはアプリケーション・サーバーで実行される埋込みのJavaソース・コードを持つHTMLページです。HTMLはWebブラウザに表示されるページ・レイアウトを提供し、Javaはビジネス・ロジックを提供します。

レイアウト

「ペーパー・レイアウト・ビュー(Paper Layout view)」を参照してください。

マージン

レポート・セクション(ヘッダー、メインまたはトレーラ)の各論理ページの上部および下部に表示されるオプションのレポート領域。マージンにはあらゆるレイアウト・オブジェクトを挿入できますが、通常は、ボイラープレートやフィールド(ページ番号、ページ合計、総計、現在の日付と時刻など)が組み込まれます。

オブジェクト

1. レイアウト上に配置できるアイテム。オブジェクトの例としては、四角形、線、楕円、円弧、多角形、折れ線、丸い四角形、手書き、チャート、テキスト、記号、テキスト・フィールドなどがあります。

2. Oracleのデータベースにおけるオブジェクト・タイプのインスタンス。オブジェクト表の行、またはリレーショナル表の列オブジェクトに含まれる行の一部がオブジェクトとなります。

オブジェクト・ナビゲータ

アプリケーション・オブジェクトの検索と操作を迅速かつ容易に実行できる、階層的な表示および編集インタフェース。次のような機能があります。

- インデントと開閉可能ノードによる階層表現(トップ・レベルのノードに、モジュール・タイプ、データベース・オブジェクトおよびビルトイン・パッケージを表示)。オブジェクトの作成、編集、削除、名前の変更などのタスクを実行できます。

- 検索のフィールドとアイコン。あらゆるレベルのノードやノード内の個別項目の順方向/逆方向検索を実行できます。

- 水平ツールバーの各種アイコン。「ファイル」メニューの一般的な機能と同じものです。

Oracle Fusion Middleware (OracleAS)

ネットワーク・アプリケーションを配置する戦略的なプラットフォーム。アプリケーション論理をアプリケーション・サーバーに移動し、ネットワーク・クライアントを実行することにより、組織は、複雑さの改善、操作性の向上および開発と実行の簡便性の向上を通して、実質的な利益を得られます。OracleASは、データベースのWeb配布の簡便化、および従来のクライアント・サーバー・アーキテクチャから、ネットワーク・アプリケーション・アーキテクチャへの移行を通じてのレガシーの完全統合を実現する、ビジネスにおいては非常に重要なプラットフォームです。

Oracle Developer Suite

11gより以前のコンポーネント・スイートで、Oracleの優れたアプリケーション開発ツールとビジネス・インテリジェンス・ツールを結合して1つの統合製品としたものです。JavaやXMLなどのインターネット標準に基づくこの製品は、Oracle Application ServerおよびOracle Database向けのアプリケーションを作成するための、高い完成度と生産性を持つ開発環境を提供します。Oracle Fusion Middlewareでは、Developer Toolsをインストールすることで、これらのコンポーネント(Oracle Oracle Reports Builder、Oracle Forms Builderなど)の11gリリース1 (11.1.1)バージョンをインストールできます。

ORACLE_HOME

ディレクトリベースのオペレーティング・システムにおける、Oracleディレクトリ階層の最上位ディレクトリの別名。Oracle製品のルート・ディレクトリを示す環境変数。

ORACLE_HOMEに指定されたディレクトリは、次の構文を使用して参照できます。

UNIXの場合: $ORACLE_HOME

Windowsの場合: %ORACLE_HOME%

Oracle Portal

ブラウザ・ベースの開発ツールで、スケーラブルでセキュアかつ拡張可能なHTMLアプリケーションやWebサイトの構築に使用します。Oracle Reports Servicesでは、Oracle Portalを使用して、レポート要求、セキュア・サーバー、およびレポート出力の印刷に使用するOracle Reports Servicesプリンタに関する情報を格納し、Web上に公開されたレポートへのエンド・ユーザー・アクセスを制御します。

Oracle Reports Bridge

Oracle Reports Bridge (rwbridge)は、ファーム間でReports Serverを検出する機能を提供します。

Oracle Reports Client (rwclient)

レポートをリモートのReports Server (rwserver)に送信するためのコマンド・ライン・インタフェースを提供する、Oracle Reportsのコンポーネント。

Oracle Reports Builder (rwbuilder)

レポート作成機能を提供する、Oracle Reportsのコンポーネント。レポート開発者は、Oracle Reports Builderの設計時ユーザー・インタフェースを使用して、レポート定義を作成および保守します。詳細は、Oracle Reportsのオンライン・ヘルプ(Oracle Reports Builderで「ヘルプ」→「目次」を選択)およびOracle Reportsレポートの作成マニュアルを参照してください。

Oracle Reports Runtime (rwrun)

Oracle Reports Servicesインプロセス・サーバーを使用してレポートを実行する、Oracle Reportsのコンポーネント。

Oracle Reports Services

各レポートを全社規模で実行、配布および公開するランタイム環境。Oracle Reports Servicesを使用してレポートを配布することで、柔軟性が増し、時間が節約され、処理能力も高まります。

Oracle Reports Servlet (rwservlet)

Oracle Reports Servicesのコンポーネント。WebサーバーまたはJava EEコンテナ(Oracle WebLogic Serverなど)とReports Serverとの間で情報の変換と配布を行い、Webブラウザからレポートを動的に実行できるようにします。

Oracle Reports Queue Manager (rwrqm)

(Windowsのみ)Reports Server (rwserver)で管理されるレポート・ジョブに関するタイムスタンプおよびステータス情報を管理します。

ペーパー・デザイン・ビュー

レポート・エディタのビューの1つ。ペーパー・レポートの出力を表示し、レイアウトに対する間隔設定、フィールドの書式設定、カラー設定、テキスト編集などの一般的で簡単な変更の多くを、ペーパー・レイアウト・ビューを開くことなく実行できるようにします。

ペーパー・レイアウト・ビュー

レポート・エディタのビューの1つ。ペーパー・レポート内のレイアウト・オブジェクトを表示し、あらゆるレイアウト・オブジェクトに対して多くの変更を実行できるようにします。すべてのレイアウト・オブジェクトには、プロパティ・インスペクタで変更可能なプロパティが設定されています。レイアウト・オブジェクトの階層はデータ・モデルによって決まります。

ペーパー・パラメータ・フォーム・ビュー

パラメータ・フォームのレイアウトを表示し、ユーザーは実行時にランタイム・パラメータ・フォームでパラメータ値を入力することができます。

PDF

Portable Document Formatの略称。ドキュメントを、その作成に使用されたアプリケーション・ソフトウェア、ハードウェアおよびオペレーティング・システムに依存することなく表示できるようにするAdobe Acrobat専用のファイル形式。PDFファイルでは、テキスト、グラフィックおよびイメージのあらゆる組合せを含むドキュメントを、デバイスや解像度に依存しない形式で記述できます。

PL/SQL

SQL言語に対するOracle独自の拡張。アプリケーションの作成に適したプロシージャ構造やその他の構造をSQLに追加します。

PPD

PostScript Printer Definitionの略称。PPDおよびAFMファイルは、Adobeおよびプリンタ・ベンダーから供給されます。これらのファイルには、プリンタに関する情報が含まれます。他のパラメータとともに、これらのファイルを読み取ることにより、プリンタで使用可能なフォントに関する情報をOracle Reportsが利用します。PPDファイルに記載されたすべてのフォントに対して、Oracle Reportsはフォント名に従って対応するAFMファイルを検索し、使用可能なAFMがあるフォントすべてをロードします。

プロパティ・インスペクタ

オブジェクト・ナビゲータ、レポート・エディタおよびテンプレート・エディタで現在選択されているオブジェクトのプロパティの表示、検索および設定が可能なウィンドウ。Reports Builderの各オブジェクト(問合せ、グループ、枠、パラメータなど)にはプロパティが関連付けられており、プロパティ・インスペクタを使用して表示できます。プロパティ・インスペクタには、次のような機能があります。

- 開閉可能ノード

- プロパティのインプレイス編集

- 検索機能

- 複数選択

- 複合プロパティ・ダイアログ

- プロパティ・インスペクタの複数のインスタンスの起動機能

プロパティに関するヘルプを参照するには、プロパティ・インスペクタでプロパティをクリックして[F1]キーを押します。

問合せ

データベースの1つ以上の表またはビューから取り出すデータを指定するSQL SELECT文。

RDFファイル

単一のレポート定義をバイナリ形式で保存したファイル。RDFファイルは、レポートを実行および編集するために使用されます。

レコード

SQL SELECT文でフェッチされる1つの行。

REPファイル

単一のレポート定義をバイナリ形式で保存したファイル。.REPファイルはレポートの実行用にのみ使用され、編集はできません。

繰返し枠

グループに対してフェッチされたデータの行の表示に使用されるレイアウト・オブジェクト。

Reports CGI (rwcgi)

注意:

レポートCGI (rwcgi)は、非推奨です(下位互換性のためにのみ維持されています)。かわりにレポートJSP、rwservlet (Reports Servlet)またはレポートWebサービスを使用してください。

Oracle Reportsのコンポーネント。Common Gateway Interface (CGI)またはReports Web Cartridgeとも呼ばれています。レポートをWebブラウザから動的に実行するため、WebサーバーまたはJava EEコンテナ(Oracle WebLogic Serverなど)とReports Serverの間で情報を変換し転送します。

レポート・エディタ

Webおよび用紙レポートのデータ・オブジェクトやレイアウト・オブジェクトを扱うための各種ビューが表示されるOracle Reports Builderのウィンドウ。ビューには次のものがあります。

- データ・モデル・ビュー

- ペーパー・レイアウト・ビュー

- ペーパー・デザイン・ビュー

- ペーパー・パラメータ・フォーム・ビュー

- Webソース・ビュー

レポート・エンジン

Oracle Reports Servicesのコンポーネントで、データ・ソースからデータをフェッチし、レポートをフォーマットし、出力をキャッシュに送信し、ジョブが準備できたことをReports Serverに通知します。

Reports Server (rwserver)

Reports Server (rwserver)は、Oracle Reportsのコンポーネントで、全社規模のレポート作成のために、レポートを実行し、配布し、公開するためのレポート作成サービスを提供します。ユーザー認証、スケジューリング、キャッシング、レポート配布などのクライアント・リクエストを処理する、Oracle Reports Servicesのコンポーネント。Oracle Reports Servlet (rwservlet)などのOracle Reportsクライアント、レポートJSPおよびOracle Reports Client (rwclient)を使用して、レポートをReports Serverに送信します。

行

表内のフィールド値の1セット。たとえば、サンプル表EMP内の1人の従業員を表すフィールドなどです。

ランタイム・パラメータ・フォーム

実行時に必要に応じて表示される画面またはウィンドウ。ユーザーはレポートの実行前に、この画面で印刷オプションやパラメータを変更できます。

スキーマ

関連するデータベース・オブジェクトの集まり。一般にデータベース・ユーザーID別にグループ化されます。スキーマ・オブジェクトには、表、ビュー、順序、ストアド・プログラム・ユニット、シノニム、索引、クラスタ、データベース・リンクなどがあります。

SELECT文

1つ以上の表またはビューからフェッチする行と列を指定するSQL文。

サーブレット

通常、データベースへのアクセスまたはE-Commerce処理の実行を目的としてWebサーバーまたはアプリケーション・サーバー上で実行され、サーバー・サイド処理を提供するJavaアプリケーション。サーブレットはJavaで記述されるため、サーバーとオペレーティング・システム間で移植が可能。

Reports Servlet (rwservlet)およびJSPは、カスタム(JSP)レポート・タグを処理し、Oracle HTTP ServerとReports Serverの間で情報を転送する、Oracle Reports Servicesのコンポーネント。

SQL

リレーショナル・データベースに対して、情報を格納または取り出すための標準インタフェース。SQLは、Structured Query Languageの略称。

SQLファイル

テキスト形式(ASCIIやEBCDICなど)で保存された問合せを含むファイル。

SQLスクリプト

データベース管理を素早く簡単に行うSQL文を含むファイル。SQLスクリプトの一部は、Oracle製品に付属しています。

SQL文

Oracleに対するSQL命令。SELECT文はSQL文の一種です。

スタイル・シート

HTMLドキュメントの書式をきわめて柔軟に設定できるようにする、HTMLの拡張書式。スタイル・シートを利用するHTMLドキュメントは、スタイル・シートをサポートしているブラウザで表示する必要があります。

表

関連する情報の集合を行と列で構成される2次元のグリッド形式にして名前を付けたものです。リレーショナル・データベースまたはサーバーに格納されます。

表形式

ページの最上部にラベルを表示し、その下にデータ列を表示したデフォルト・レイアウト。

テンプレート

共通スタイルおよび標準を含む骨格となる定義で、グラフィックを含むこともあります。テンプレートは、洗練されたルック・アンド・フィールを備えたレポートを簡単かつ短時間で開発可能にする標準形式を提供します。

テンプレート・エディタ

テンプレートのオブジェクトおよび書式設定プロパティを定義できる作業領域。レポート・エディタのペーパー・レイアウト・ビューに似ています。このマージン領域で、オブジェクト(ページ番号、テキスト、図形など)を作成、削除および変更できます。本体領域ではオブジェクトの作成や削除を行うことはできないが、プロパティ・インスペクタで本体オブジェクトのプロパティを変更できます。

ツール

アプリケーションでオブジェクトの作成や操作に使用されるアイコン・ボタン。

ツール・パレット

ユーザー・インタフェースのアイコン・ボタンによって表されるツールの集合。これにより、レポート開発者は、ペーパー・レイアウト・ビューでの四角形の描画やデータ・モデル・ビューでの問合せの作成などのタスクを実行できます。

ツールバー

製品のコマンドを実行するアイコン・ボタンの集合。通常、ウィンドウ上部に水平に表示されるか、ウィンドウの右側または左側に垂直に表示されます。

URL

Uniform Resource Locatorの略称。インターネットを通じて利用できるリソースの場所を簡潔な文字列で表したもの。また、クライアントがOracleASへのリクエストをエンコードするために使用するテキスト文字列の書式でもあります。

ビュー

1. Reports Builderでは、レポートのデータ・モデル、レイアウトまたはパラメータ・フォームの定義など、一連の特定のタスクを実行する作業領域。

2. 実際にはデータベースに存在しないデータ行から構成されますが、データベースに物理的に格納されている表に基づく仮想表。

Webブラウザ

エンド・ユーザーが、Webサーバーを通じて提供されるコンピュータ上のHTMLドキュメントおよびプログラムを読み取るために使用するプログラム。

Webサーバー

Webサイトで実行されるサーバー・プロセス(HTTPデーモン)で、リモートのWebブラウザからのHTTPリクエストに応じてWebページを送信します。

Webソース・ビュー

レポートのHTMLまたはJSPソースを表示するレポート・エディタのビューの1つ。このビューを使用して、レポート・ブロック・ウィザードやグラフ・ウィザードで、Webページに動的コンテンツを追加できます。経験を積んだJava開発者は、このビューで直接Webソースを編集できます。

ウィザード

一般的に実行されるタスクを順を追って実行するためのインタフェース。Reports Builderのウィザードには、次のものがあります。

- レポート・ウィザード: 基本的なペーパー・レポートまたはWebレポートを作成するための手順を示します。ウィザードの各ページでは、最初のレポートを作成するための情報の入力が要求されます。

- データ・ウィザード: 複数問合せデータ・モデルで使用する問合せを簡単に定義または変更できるようにします。

- グラフ・ウィザード: 真の3次元グラフなどの様々なチャートやグラフを追加します。Oracle BIグラフBeanとともにReports Builderに実装されています。

- レポート・ブロック・ウィザード: 静的HTMLページにデータを追加できるようにします。

XML (XML)

Extensible Markup Languageの略称。SGMLを使用してデータの定義と構造化を行うメタ言語。Reports Builderでは、XMLの出力をサポートすることで、Webパブリッシングおよびサードパーティ製アプリケーションとの電子データ交換を実現しています。XMLを使用して、実行時に他のレポート定義とマージできるレポート定義や、個別に実行できるレポート定義を作成することもできます。

索引
A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X

A

横ブレーク・ポイント, 12

Reports Builderの管理, 4.16

フォーム後値, 2.2.10

「フォーム後値」プロパティ, 1.9.4

ページ後値, 2.2.10

After Parameter Formトリガー

SRW.SET_FORMAT_ORDERを使用, 35.2.3, 36.3

After Parameter Formトリガー, 2.6.13.1 レポート後値, 2.2.10 After Reportトリガー, 2.6.13.1 集約データ・レポート, 30 オブジェクトの整列, 4.9.11.6 2ページごと、オブジェクトの表示, 4.9.2.2 交互の行カラー, 4.9.6.9, 45.2.5 アンカー

概要, 2.4.4

縮小, 2.4.4

明示的, 2.4.4

暗黙的, 2.4.4

操作, 4.9.5

アプリケーション・コマンドライン・リンク, 4.6.10.1.9

概要, 2.2.9

PL/SQLの使用, 4.6.10.2.9

Application Program Interface (API), 4.1.2 ASCIIレポート, 2.8.15, 4.2.5, 4.5.9 連結ライブラリ

概要, 2.6.7

連結, 4.13.5.5

プログラム・ユニットの削除, 4.13.5.4

属性

テンプレート, 4.12.2, 4.12.3, 4.12.5

B

B_OR$REPORT_TITLE, 2.1.1, 4.12.5

バーコード

バーコード・フォントを使用した作成, 4.9.1.4

ペーパー・レポート, 43.2

Webレポート, 43.3

JavaBean、初期化, 43.3.3

バッチ・モード

概要, 2.8.2

パラメータ渡し, 4.11.9

フォーム前値, 2.2.10 「BEFORE FORM値」プロパティ, 1.9.4 ページ前値, 2.2.10 Before Parameter Formトリガー, 2.6.13.1 レポート前値, 2.2.10 Before Reportトリガー, 2.6.13.1 Between Pagesトリガー, 2.6.13.1 バインド参照

概要, 2.3.4.1

字句参照との比較, 2.3.4.3

空白行

行のグループ間, 4.9.13.5

本体

テンプレート, 4.12.8

ボイラープレート

概要, 1.8.5

HTMLタグ用の作成, 4.9.2.3

テキスト用の作成, 4.9.2.1, 4.9.2.2

パラメータ・フォーム、概要, 1.9.3

ブックマーク, 4.6.10.1.10

ブレーク列, 4.6.10.1.11

PL/SQLの使用, 4.6.10.2.10

境界線

オブジェクト移動時の調整, 4.9.11.3

サイズの変更, 4.9.12.3

操作, 4.9.4

ブレーク列

グループ・レポートに複数, 10.3

グループ・レポートに1つ, 10.2

ブレーク・グループ

概要, 1.7.2

列の追加, 10.3.1

作成, 4.8.7

データ・モデル, 10.2.1

ネストしたマトリックス・レポート, 26

グループ・レポートに複数, 10.4

ブレーク・レポート, 10

横, 12

ラップ, 15

ブレークポイント

概要, 2.10.5

設定, 4.14.3

ビルトイン・パッケージ

概要, 2.6.12

SRW, 2.6.12.1

ツール, 2.6.12.2

使用, 4.13.1

一括処理

概要, 37

レポート, 37.2

C

Call Interface, 2.9.4

カスケード・スタイル・シート, 2.2.11

金額、スペル表記, 3.5.4

セル・グループ, 4.8.8

セルの囲み, 4.7.10

表示を変更, 4.4.4

キャラクタ・モードのレポート, 2.8.15, 4.2.5, 4.5.9

請求書印刷レポート, 3.5.4

子オブジェクト

アンカー, 2.4.4

親の外への移動, 4.9.11.2

クライアント側

プログラム・ユニットの移動, 4.13.3.4

プログラム・ユニット、作成, 4.13.3.1

カラー

レポートの行, 4.9.6.9

カラー・パレット, 4.2.6

インポートまたはエクスポート, 4.9.6.6

変更, 4.9.6.5

環境設定, 4.2.6

カラー

変更について, 2.4.5

交互の行カラー, 45.2.5

変更, 4.9.6.2

PL/SQLを使用した変更, 4.9.6.4

カラー・パレット, 4.2.6

テンプレート, 2.4.5

レポートでの使用, 18

操作, 4.9.6

列

ブレーク・グループへの追加, 10.3.1

ラベルまたは幅の変更, 4.9.13.1

データベース, 1.7.3

式, 4.8.10

リンク, 4.8.9

移動, 4.9.11.4

プレースホルダ, 4.8.12

参照、概要, 2.3.4

サマリー, 4.8.11

「列モード」プロパティ, 2.4.1 列

グラフィックおよびイメージ, 1.7.3, 4.8.5, 4.8.6, 4.9.8.1.1

コマンド・ファイル, 4.7.3 コマンドライン, 4.7.2 コンパイル

プログラム・ユニット, 4.13.6

条件付きフォーム・レター・レポート, 23, 23, 23 条件付き書式

概要, 2.1.6

オブジェクトへの適用, 4.9.1.5

制限モード, 4.9.4.3, 4.9.11.2, 4.9.11.7 データベースへの接続, 4.3.1 変換

レポート、フォーマット, 4.16.2

COPIESシステム・パラメータ, 1.9.1 レポートのコピー, 4.3.4 クロス積グループ, 25 クロス積グループ

作成, 4.8.8

クロス積グループ

概要, 1.7.2

クロス積レポート

概要, 1.3.7

CSS, 2.2.11 通貨、スペル表記, 3.5.4 曲線グラフ, 39.1 カスタム書式マスク, 4.9.7.5

D

データ

フィルタリング, 45.2.6

データ定義言語, 2.6.11 データ・リンク, 11

概要, 1.7.4

作成, 4.8.9

リンク不可能な問合せ, 2.3.5

グループとの比較, 2.3.6

データ操作言語, 2.6.11 データ・モデル

ブレーク・グループ, 10.2.1

オブジェクト、概要, 1.7, 2.3

操作, 4.8

データ・モデル・ビュー

概要, 1.6.2

データ・ソース, はじめに

Oracle以外、アクセス, 4.15.2

範囲内のデータのレポート, 30 データ・ウィザード

概要, 1.4.3

問合せの作成, 4.8.1.2

用語集, 用語集

データベース

接続, 4.3.1

HTMLタグの選択, 4.8.4

イメージの選択, 4.8.5

トリガー、作成, 4.13.3.7

データベース列, 1.7.3 「データベース・オブジェクト」ノード, 2.6.2 データベース・ロール

概要, 2.9.1

設定, 4.16.1

データベース・トリガー

概要, 2.6.13.4

作成, 4.13.3.7

データベース値

ヘッダー, 4.9.9.2, 17

日付書式マスク, 4.9.7.1 日付書式、グラフ, 39.1 日付/時刻スタンプ, 4.9.3 DDEビルトイン・パッケージ, 2.6.12.2 DDL, 2.6.11 デバッグ・アクション

概要, 2.10.5

操作, 4.14.5

DEBUGビルトイン・パッケージ, 2.6.12.2 デバッグ・レベル

概要, 2.10.8

デバッグ・モード, 4.14.2 デバッグ・トリガー

概要, 2.10.5

デバッグ・トリガー、設定, 4.14.4 レポートのデバッグ, 4.14 デバッグ・ツール, 2.10 デフォルトの書式マスク, 4.9.7.5 デフォルト・レイアウト

作成, 4.5.4

セクション, 4.10.2

デフォルトのレイアウト間隔, 4.9.13.3 「デフォルト」ノード, 2.7.2 デフォルト・パラメータ・フォーム, 4.11.5 削除

プログラム・ユニット, 4.13.3.3

オブジェクトの削除, 4.3.8 レポートの削除, 4.3.6 デリミタ付き出力

概要, 2.8.12

生成, 4.7.10

レポートの配布, 4.7.13 DESFORMATシステム・パラメータ, 1.9.1 DESNAMEシステム・パラメータ, 1.9.1 DESTINATIONキーワード, 2.8.3.1 宛先, 2.8.4 DESTYPEシステム・パラメータ, 1.9.1 ディメンション、レポート, 2.1.4 方向

テキストの読取り、変更, 4.9.2.9

レポートの出力, 4.7, 4.7.1, 4.7.2, 4.7.3, 4.7.4 DISPLAYへの依存性, 4.7.17.6 DISPLAY環境変数, 4.7.17.6 配布

レポート, 4.7.12

配布

概要, 2.8.3, 37

DESTINATIONキーワード, 2.8.3.1

DSTファイル, 2.8.3.1

XML定義の編集, 37.3

サンプル・レポート, 37

レポート、トレース, 4.14.19

DML, 2.6.11 金額、スペル表記, 3.5.4 描画

インポート, 4.9.8.1.1

描画オブジェクト, 4.9.8.5 DSTファイル

概要, 2.8.3.1

E

編集

プログラム・ユニット, 4.13.2.3

電子メールによるレポートの送信, 4.7.18 EnhancedSpreadsheet

出力, 2.8.13

EnhancedSpreadsheet出力

スプレッドシート, 4.7.11

エスケープ

前および後, 2.2.10

イベント・ドリブンの公開

概要, 2.8.5

サンプルとデモ, 4.1.2 EXEC_SQLビルトイン・パッケージ, 2.6.12.2 実行可能ファイル

概要, 1.12

実行

レポート、トレース, 4.14.18

実行位置

現在、概要, 2.10.6

明示的なアンカー, 2.4.4 外部PL/SQLライブラリ

概要, 2.6.6

プログラム・ユニットの追加, 4.13.5.2

連結, 4.13.5.5

変換, 4.13.5.6

作成, 4.13.5.1

プログラム・ユニットの編集, 4.13.5.3

プログラム・ユニットの削除, 4.13.5.4

操作, 4.13.5

F

フィールド

概要, 1.8.4

書式マスクの変更, 4.9.7.6

作成, 4.9.1.1

パラメータ・フォーム、概要, 1.9.2

参照, 4.9.2.5

フィールド

レポート内での混合, 20

ファイル

HTMLオブジェクトからのリンク, 4.9.2.7

「ファイル・リンク」ツール, 4.9.2.6, 4.9.2.7 「塗りつぶしカラー」ツール, 2.4.5 フィルタ

概要, 1.7.2

グループ、作成または編集, 4.13.4.2

フレックス・モード, 4.9.4.3, 4.9.11.3, 4.9.11.4, 4.9.11.5 フォント

変更, 4.9.2.9

フォント

概要, 2.1.5

様々な適用, 18

バーコード, 4.9.1.4

変更, 4.9.2.9

フッター

グループ, 4.9.9.3

フッター/ヘッダー付レポート, 16 フッター、ドキュメント

HTML, 2.2.3, 4.6.10.1.2, 4.6.10.2.2

フッター、ページ

HTML, 2.2.3, 4.6.10.1.4, 4.6.10.2.4

フッター、パラメータ・フォーム

HTML, 2.2.3, 4.6.10.1.6, 4.6.10.2.6

フッター, 4.9.9 外部キー, 11 フォーム

印刷済フォームでのレポート, 32

フォーム・レター・レポート

概要, 1.3.5

条件付き, 23, 23, 23

書式の例外, 2.1.6 書式マスク

操作, 4.9.7

フォーマット順序, 2.8.1 「セクションのフォーマット順序」プロパティ, 2.8.1, 4.5.7 フォーマット・トリガー

概要, 2.6.13.2

作成, 4.13.4.1, 35.2.3, 36.3

レイアウト・オブジェクト, 2.4.1

フォーマット、HTML, 2.8.8, 2.8.9 フォーム形状レポート

概要, 1.3.4

式列, 14

概要, 2.3.2, 2.6.8

作成または編集, 4.8.10

式, 2.6.8

サマリー列との比較, 14

式レポート, 14 枠

概要, 1.8.1

作成, 4.9.1.2

サイズ変更, 1.8.3

頻度

レイアウト・オブジェクト, 2.4.1

ファンネル・グラフ, 39.1

G

グローバル変数ノード, 4.14.16

グラフ

曲線, 39.1

日付書式, 39.1

ファンネル, 39.1

グラフ・ハイパーリンク, 2.2.3, 2.2.4, 2.2.6, 4.9.8.4

新機能, 39.1

数値書式の設定, 39.1

ペーパー・レポート, 4.9.8.2.1, 4.9.8.3.1

SVG, 39.1

SVGのサポート, 39.1

Webレポート, 4.9.8.2.2, 4.9.8.3.2

グラフ・ハイパーリンク

概要, 2.2.6

追加, 4.9.8.4

グラフ・ウィザード, 4.9.8.2.1

概要, 1.4.4, 39.1

用語集, 用語集

グラフィック・オブジェクト, 4.9.8 グラフィック

レポートへの追加, 18

グループ

ブレークの作成, 4.8.7

マトリックスの作成, 4.8.8

ヘッダーまたはフッター, 4.9.9.3

リンク, 4.8.9

データ・リンクとの比較, 2.3.6

グループ上レポート, 11

概要, 1.3.2

作成, 11

マトリックス, 27

グループ・フィルタ

概要, 1.7.2, 2.6.9

作成または編集, 4.13.4.2

「フェッチする行の最大数」プロパティとの比較, 2.6.9

グループ左レポート, 10

概要, 1.3.3

ヘッダー/フッター付, 16

グループ左サマリー・レポート, 13 グループ・レポート

中央でのグループ化, 20

ディテール・フィールドのオフセット, 4.9.11.5

1つの問合せ, 10

2つの問合せ, 11

グループ

概要, 1.7.2

H

ヘッダー

グループ, 4.9.9.3

ページとグループ、操作, 4.9.9

レポート, 4.9.9.1

ヘッダー/フッター付レポート, 16 ヘッダー・ページ

オブジェクトの作成, 4.9.10.2

ヘッダー・セクション, 4.10.1 データベース値を使用したヘッダー付レポート, 4.9.9.2, 17 ヘッダー、ドキュメント

HTML, 2.2.3, 4.6.10.1.1, 4.6.10.2.1

ヘッダー、ページ

HTML, 2.2.3, 4.6.10.1.3, 4.6.10.2.3

ヘッダー、パラメータ・フォーム

HTML, 2.2.3, 4.6.10.1.5, 4.6.10.2.5

ヘッダー, 17.4, 17.4

レポート, 4.9.9.1

「高さ」プロパティ, 2.1.4, 4.7.14 階層

オブジェクト・ナビゲータ, 4.4.4

ハイライト

ボイラープレート, 18

レポートの行, 4.9.6.8

レポートの値, 4.9.6.7

水平差, 4.9.13.3 水平中間フィールド, 4.9.13.3 「ページ当たりの水平パネル」プロパティ, 2.1.4 HTML

フォント・サイズ, 2.8.8

フォーマット, 2.8.8, 2.8.9

ボイラープレート・テキスト, 4.9.2.3

Reports Builder、概要, 2.8.8

イメージURLを含む, 4.8.6

オブジェクトをファイルにリンク, 4.9.2.7

出力, 2.8.8, 4.7.5

出力のページ番号付け, 2.8.8.1, 4.6.10.2.11, 4.7.16.5

ページ番号付け, 2.8.8

パラメータ・フォームの拡張, 2.5.1

データベースからタグを選択, 4.8.4

スタイル・シート, 2.2.11

HTMLドキュメント・フッター, 2.2.3, 4.6.10.1.2

PL/SQLの使用, 4.6.10.2.2

HTMLドキュメント・ヘッダー, 2.2.3, 4.6.10.1.1

PL/SQLの使用, 4.6.10.2.1

HTMLページ・フッター, 2.2.3, 4.6.10.1.4

PL/SQLの使用, 4.6.10.2.4

HTMLページ・ヘッダー, 2.2.3, 4.6.10.1.3

PL/SQLの使用, 4.6.10.2.3

ページがストリーミングされたHTML出力, 4.6.10.1.12 HTMLパラメータ・フォーム

入力を大文字に変更, 4.11.13

イベントを使用したフィールドの作成, 4.11.12

HTMLパラメータ・フォーム・フッター, 2.2.3, 4.6.10.1.6

PL/SQLの使用, 4.6.10.2.6

HTMLパラメータ・フォーム・ヘッダー, 2.2.3, 4.6.10.1.5

PL/SQLの使用, 4.6.10.2.5

HTMLCSS

出力, 4.7.5

Human Resourcesスキーマ, はじめに ハイパーリンク, 4.6.10.1.8

概要, 2.2.5

グラフ, 2.2.3, 2.2.4, 2.2.6, 4.9.8.4

PL/SQLの使用, 4.6.10.2.7

ハイパーリンクの宛先, 4.6.10.1.7

概要, 2.2.7

PL/SQL, 4.6.10.2.8

I

イメージ

概要, 2.4.3

レポートへの追加, 18

イメージ列, 4.8.5, 4.8.6

インポート, 4.9.8.1.1

JSPベースのWebレポート, 4.8.5, 4.8.6

データベースからの選択, 4.8.5, 4.8.6

イメージ・オブジェクト, 4.9.8 イメージ

イメージ列, 1.7.3, 4.9.8.1.1

暗黙的なアンカー, 2.4.4, 4.9.5.2

アルゴリズム, 2.4.4.1

インポート

描画またはイメージ, 4.9.8.1.1

SQL問合せ, 4.8.1.3

索引

作成, 4.5.8

レポートでの作成, 35.3

混合フィールド・レポート, 20

J

Javaクラス

インポート, 43.2.1

Java Database Connectivity (JDBC), 4.15.2 Java Importer, 43.2.1 JavaBean

インポート, 43.2.1

Webレポートでの使用, 43.3

ペーパー・レポートでの使用, 43.2

JavaServer Pages (JSP)

概要, 2.2.1

JDBC, 4.15.2 「JDBC問合せ」ツール, 4.8.1.5 JDBC-ODBCブリッジ, 4.15.2 JNIビルトイン・パッケージ, 2.6.12.2 結合, 11 JSP

概要, 2.2.1

JSPパラメータ・フォーム, 42 JSPベースのWebレポート, 42 文字位置

変更, 4.9.2.9

K

「アンカー・オブジェクトと連動」プロパティ, 2.4.1

L

ラベル

変更, 4.9.13.1

横方向, 4.7.14 オブジェクトのレイヤー, 4.9.11.7

概要, 2.4.7

レイアウト

追加, 4.5.5

デフォルトの間隔, 4.9.13.3

デフォルト、作成, 4.5.4

デフォルト、セクション

セクション, 4.10.2

変更, 4.9.14 複数, 13.4 オブジェクト、概要, 1.8, 2.4 操作, 4.9 レイアウト

マージ, 13.5

字句参照

概要, 2.3.4.2

バインド参照との比較, 2.3.4.3

ライブラリ

プログラム・ユニットの追加, 4.13.5.2

連結, 2.6.7

連結, 4.13.5.5

変換, 4.13.5.6

作成, 4.13.5.1

プログラム・ユニットの編集, 4.13.5.3

外部PL/SQL, 2.6.6

プログラム・ユニットの削除, 4.13.5.4

「線カラー」ツール, 2.4.5 リンク

概要, 1.7.4

作成, 4.8.9

リンク

ファイルへのボイラープレート・テキスト・オブジェクト, 4.9.2.6

データ・リンクとグループの比較, 2.3.6

イメージ・オブジェクト, 4.9.8.1.3

問合せ、リンク不可能, 2.3.5

表のリンク, 11 リンク

REFカーソル問合せ間の作成, 41.5

LISTビルトイン・パッケージ, 2.6.12.2 値リスト(LOV)

パラメータ用に作成, 4.11.3

論理ページ, 2.1.4 LONG列, 1.7.3 LONG RAW列, 1.7.3

M

出力の拡大, 4.7.16.8

メール・ラベル・レポート, 6

概要, 1.3.6

メイン・セクション, 4.10.1 マージン

調整, 4.9.14.1

オブジェクトの作成, 4.9.10.1

テンプレート, 4.12.7

マスター/ディテール問合せ

作成, 36.4

マスター/ディテール・レポート, 10 マスター/ディテール・サマリー・レポート, 13 マスター/マスター・レポート, 8 マトリックス

レイアウト, 1.3.7.2

マトリックス・データ・モデル

考慮事項, 1.3.7.1

マトリックス・グループ

作成, 4.8.8

マトリックス・オブジェクト, 1.3.7.2.1

概要, 2.3.7

レイアウトでの作成 4.9.1.3

マトリックス・レポート, 25

概要, 1.3.7

ネスト, 26

グループ別, 2.1.8, 27

グループ別マトリックス・レポート, 27

概要, 2.1.8

「フェッチする行の最大数」プロパティ, 2.6.9 モード

制限またはフレックス, 4.9.4.3

MODEシステム・パラメータ, 1.9.1 オブジェクトの移動, 4.9.11

概要, 2.4.7

複数の宛先

配布, 37

レポート出力, 4.7.12

複数のレイアウト, 13.4 複数オブジェクト

同一サイズ化, 4.9.12.2

移動, 4.9.11.1

複数のプラットフォーム, 4.5.10 複数の問合せ, 11

概要, 1.7.1

リンク, 11

リンク、概要, 1.7.4

マスター/マスター・レポート, 8

複数問合せレポート, 1.7.1

N

National Language Support (NLS), 4.5.11

ナビゲーション・コントロール

概要, 2.8.8.1

PL/SQLの使用, 4.6.10.2.11

プロパティの使用, 4.6.10.1.12

ネストしたマトリックス・レポート

概要, 2.1.7

Net8, 2.9.2 新機能, 4.1.2 ノード

オブジェクト・ナビゲータ, 4.4.2

リンク不可能な問合せ

概要, 2.3.5

Oracle以外のデータ・ソース

アクセス, 4.15.2

数値書式マスク, 4.9.7.2 ページ番号付け

繰返し枠ごとの番号リセット, 3.5.6

O

オブジェクト・ナビゲータ

概要, 1.5.1

ビューの変更, 4.4.4

環境設定, 4.2.4

操作, 4.4

オブジェクト・タイプ別表示, 1.5.2, 4.4.4 オブジェクト

共通タスク, 4.3

OCA, 4.15.2 ODBC, 4.15.2 オンライン・ヘルプ, 4.1.1 Open Database Connectivity (ODBC), 4.15.2 レポートを開く, 4.3.2 ORA_DEビルトイン・パッケージ, 2.6.12.2 ORA_FFIビルトイン・パッケージ, 2.6.12.2 ORA_JAVAビルトイン・パッケージ, 2.6.12.2 ORA_NLSビルトイン・パッケージ, 2.6.12.2 ORA_PROFビルトイン・パッケージ, 2.6.12.2 Oracle Net Services, 2.9.2 Oracle Open Client Adapter (OCA) 4.15.2 Oracle Portal, 4.12.10, 4.15.1 Oracle Reports

このリリースについて, 1.1.2

JSPの使用, 2.2.1.1

Order Entryスキーマ, はじめに 印刷方向, 4.7.14 ORIENTATIONコマンドライン・キーワード, 4.7.14 「方向」プロパティ, 4.7.14 ORIENTATIONシステム・パラメータ, 1.9.1, 4.7.14 外部結合, 11 出力

概要, 2.8

デリミタ付き, 2.8.12, 4.7.10

ペーパー・デザイン・ビューでの表示, 4.7.16.2

プレビューアでの表示, 4.7.16.3

Webブラウザでの表示, 4.7.16.4

EnhancedSpreadsheet, 2.8.13, 4.7.11

フォーマット順序, 2.8.1

HTMLとHTMLCSS、概要, 2.8.8

HTML、HTMLCSS, 4.7.5

拡大または縮小, 4.7.16.8

PDF, 2.8.10, 4.7.6

RTF, 2.8.11, 4.7.8

ビューの分割, 4.7.16.7

スプレッドシート, 2.8.13, 4.7.11

テキスト, 2.8.14, 4.7.9

表示, 4.7.16

XML, 2.8.7, 4.7.7

「上書き」ノード, 2.7.2 概要

新機能, 4.1.2

Oracle Reports, 4.1.2

所有者別表示, 1.5.2, 4.4.4

P

パッケージ

作成, 43.2.2

SELECT文の移動, 41.8

ライブラリへの移動, 41.9

ビルトインの使用, 4.13.1

改ページ、追加, 4.9.14.2 ページ・レイアウト、変更, 4.9.14 ページ番号, 4.9.3 「ページ保護」プロパティ, 2.4.1 ページ

繰返し枠ごとの番号リセット, 3.5.6

ページがストリーミングされた出力, 4.6.10.1.12 HTML出力のページ番号付け

ページがストリーミングされたHTML出力, 2.8.8.1, 4.6.10.2.11, 4.7.16.5

ページ番号付け

HTML, 2.8.8

ページング, 4.7.16.6 ペーパー・デザイン・ビュー

概要, 1.6.4

レポート出力の表示, 4.7.16.2

ペーパー・レイアウト・ビュー

概要, 1.6.3

ペーパーベースのレポート

HTML出力, 2.2.3

PDF出力, 2.2.4

Web用に準備, 4.6.9

JSPベースのレポートとの比較, 4.6.10

パラメータ

概要, 1.9.1

LOVの作成, 4.11.3

パラメータ・フォーム, 42

ページの追加, 4.11.8

デフォルト, 4.11.5

実行時の表示, 4.11.7

フッター, 4.6.10.1.6

HTML拡張, 2.5.1

HTML、入力を大文字に変更, 4.11.13

HTML、イベントを使用したフィールドの作成, 4.11.12

Webレポート, 4.11.7

オブジェクト、概要, 1.9, 2.5

パラメータの選択, 4.11.6

非表示, 4.7.15

操作, 4.11

パラメータ・フォーム・フッター, 2.2.3

HTML, 4.6.10.2.6

パラメータ・フォーム・ヘッダー, 2.2.3, 4.6.10.1.5

HTML, 4.6.10.2.5

ペーパー・パラメータ・フォーム・ビュー

概要, 1.6.5

パラメータ

ユーザー・パラメータの作成, 4.11.2

ランタイム・パラメータ・フォーム, 4.11.6

バッチ・レポートに渡す, 4.11.9

参照、概要, 2.3.4

システム・パラメータの使用, 4.11.1

実行時の検証, 4.11.4

操作, 4.11

親オブジェクト

外への子の移動, 4.9.11.2

パターン

変更について, 2.4.5

変更, 4.9.6.3

PL/SQLを使用した変更, 4.9.6.4

テンプレート, 2.4.5

レポートでの使用, 18

操作, 4.9.6

PDF

出力, 2.8.10, 4.7.6

印刷方向, 4.7.14

ペーパーベースのレポートのWebリンク, 2.2.4

パフォーマンス

改善, 4.16.3, 4.16.4

物理ページ, 2.1.4 プレースホルダ列

概要, 2.3.3

作成, 4.8.12

式, 2.6.8

プラットフォーム、複数での実行, 4.5.10 PL/SQL

ペーパーベースのレポートへのWebリンクの追加, 4.6.10.2

カラーとパターンの変更, 4.9.6.4

テキスト属性の変更, 4.9.2.10

定義, 4.13.2.1

式, 4.8.10

レポートまたはテンプレートでの使用, 4.13

PL/SQLエディタ

概要, 2.6.1

操作, 4.13.2

PL/SQLインタプリタ

概要, 2.10.2

操作, 4.14.9

PL/SQLライブラリ

概要, 2.6.6

プログラム・ユニットの追加, 4.13.5.2

連結, 4.13.5.5

変換, 4.13.5.6

作成, 4.13.5.1

プログラム・ユニットの編集, 4.13.5.3

プログラム・ユニットの削除, 4.13.5.4

プラガブル・データ・ソース(PDS)

アクセス, 4.15.2

プラガブル宛先, 2.8.4 Portal, 4.12.10, 4.15.1 ポートレット, 4.12.10 縦方向, 4.7.14 PostScript, 4.7.17.2, 4.7.17.6 環境設定

カラー・パレット, 4.2.6, 4.9.6.1

オブジェクト・ナビゲータ, 4.2.4

レポート, 4.2.3

設定, 4.2

印刷済フォーム

印刷, 4.7.17.4

レポート, 32

プレビューア, 4.7.17.2

概要, 1.11.2

レポート出力の表示, 4.7.16.3

レポートの印刷, 4.7.17.2

主キー, 11 「オブジェクトの印刷」プロパティ, 2.4.1 印刷可能領域, 4.7.16.1 PRINTER

印刷方向, 4.7.14

プリンタへの依存性, 4.7.17.6 プリンタ・トレー

切替え, 2.8.6, 4.7.17.5

印刷

フォーマット順序, 2.8.1

印刷済フォーム, 4.7.17.4

レポート, 4.7.17

UNIX, 4.7.17.6

PRINTJOBシステム・パラメータ, 1.9.1 プログラム・ユニット

概要, 2.6.4

コンパイルと実行, 4.13.6

実行の制御, 4.14.11

作成, 4.13.3.1

デバッグ, 4.14.11

削除, 4.13.3.3

編集, 4.13.2.3

クライアントとサーバー間での移動, 4.13.3.4

検索と置換, 4.13.2.2

プロパティ

比較, 4.2.8

複数オブジェクト, 4.2.7

レポート, 4.2.2, 4.2.5

設定, 4.2

テンプレート, 2.7.4

プロパティ・インスペクタ

概要, 1.10.1

表示, 4.2.1

Q

問合せ

概要, 1.7.1

XML問合せの作成, 45.2.2

作成, 4.8.1

インポート, 4.8.1.3

変更, 4.8.2

リンク不可能、概要, 2.3.5

クエリー・ビルダー, 4.8.1.3, 4.8.3

概要, 1.7.5

R

データの範囲

集約, 30

ランキング・レポート, 34 文字の方向

変更, 4.9.2.9

出力の縮小, 4.7.16.8 REFカーソル, 2.6.10 REFカーソル

問合せ間のリンクの作成, 41.5

問合せ、作成, 41.3

入力、定義, 41.2

REFカーソル問合せ

概要, 2.6.10

REFカーソル問合せツール, 4.8.1.7 「参照元」ノード, 4.14.17 「参照」ノード, 4.14.17 列参照とパラメータ参照

概要, 2.3.4

フィールドの参照, 4.9.2.5 レポート名の変更, 4.3.5 繰返し枠ごとの番号リセット, 3.5.6 繰返し枠

概要, 1.8.2

作成, 4.9.1.2

ページ番号リセット, 3.5.6

サイズ変更, 1.8.3

レポート

作成について, 1.2.1.1

Webについて, 1.2.2

横ブレーク, 12

範囲内の集約データ, 30

ASCII, 2.8.15, 4.2.5, 4.5.9

一括処理, 37.2

請求書印刷, 3.5.4

共通タスク, 4.3

条件付きフォーム・レター, 23, 23, 23

変換, 4.16.2

作成, 4.5.1

目次の作成, 35.2

索引の作成, 35.3

複数階層の目次の作成, 36

デバッグ, 4.14

定義, 1.2.1

配布, 4.7.13

ディメンション, 2.1.4

配布, 4.7.12

複数の宛先への配布, 37

電子メールによる送信, 4.7.18

フォーム・レター、条件付き, 23, 23, 23

式, 14

グラフィック、テキスト、カラー, 18

グループ上, 11

中央のグループ, 20

グループ左, 10

グループ左サマリー, 13

ヘッダー/フッター, 16

データベース値を含むヘッダー, 4.9.9.2, 17

混在フィールド, 20

JSPベース, 42

レイアウト, 4.9

メール・ラベル, 6

マスター/マスター, 8

マトリックス, 25

グループ別マトリックス, 27

ページ・レイアウトの変更, 4.9.14

環境設定, 4.2.3

印刷済フォーム, 32

印刷, 4.7.17

プロパティ, 4.2.2, 4.2.5

データのランク付け, 34

繰返し枠ごとの番号リセット, 3.5.6

実行, 4.7.1, 4.7.2, 4.7.3, 4.7.4

実行と出力, 4.7

バッチ・モードでの実行, 4.11.9

セクション, 2.1.2, 4.10

サマリー, 9

表形式, 5

テンプレート、操作, 4.12

時系列計算, 28

タイトル, 2.1.1, 4.5.6

配布のトレース, 4.14.19

実行のトレース, 4.14.18

トリガー、作成, 4.13.3.5

トリガー、削除, 4.13.3.6

サイズの単位, 2.1.3

PL/SQLの使用, 4.13

ラップ・ブレーク, 15

レポート・ブロック・ウィザード

概要, 1.4.2

用語集, 用語集

レポート・エディタ

概要, 1.6.1

ビューの表示, 4.4.1

レポート・トリガー

概要, 2.6.13.1

作成, 4.13.3.5

削除, 4.13.3.6

レポート・ウィザード

概要, 1.4.1

問合せの作成, 4.8.1.1

レポートの作成, 1.2.1.1

用語集, 用語集

Reports Builder

概要, 1.1.1

実行可能ファイル, 1.12

Reports Server, 1.12, 4.1.2, 4.7.4 REPORTS_CLASSPATH, 更新, 43.1.1 オブジェクトのサイズ変更, 4.9.12

概要, 2.4.6

ロール

データベース、設定, 4.16.1

オブジェクトの回転, 4.9.11.8 行

交互の行カラー, 4.9.6.9

ハイライト, 4.9.6.8

行カラー

交互の行カラーの適用, 45.2.5

行

グループ間の空白行, 4.9.13.5

間隔, 4.9.13.4

RTF

出力, 2.8.11, 4.7.8

印刷方向, 4.7.14

RUNDEBUG, 4.14.2 実行

プログラム・ユニット, 4.13.6

レポート, 4.7, 4.7.1, 4.7.2, 4.7.3, 4.7.4

実行時

コードの変更, 2.10.9, 4.14.13

ランタイム・パラメータ・フォーム

ページの追加, 4.11.8

表示, 4.11.7

パラメータの選択, 4.11.6

HTMLの使用, 2.5.1

ランタイム・パラメータ・フォーム

概要, 1.11.1

rwbuilder, 1.12 rwclient, 1.12 rwconverter, 1.12 rwrun, 1.12 rwserver, 1.12 rwservlet, 1.12

S

レポートの保存, 4.3.3

Scalable Vector Graphic (SVG)のサポート, 39.1

スキーマ, はじめに

スコープ位置

概要, 2.10.7

表示, 4.14.14

SCOTTスキーマ, はじめに screenprinter.ppd, 4.7.17.6 スクロール, 4.7.16.6 検索

オブジェクト・ナビゲータ, 4.4.3

プログラム・ユニット, 4.13.2.2

セクション

概要, 2.1.2

操作, 4.10

SELECT文

パッケージへの移動, 41.8

オブジェクトの選択, 4.3.7.1 サーバー

プログラム・ユニットの移動, 4.13.3.4

サーバー側

プログラム・ユニット、作成, 4.13.3.2

単一問合せグループ・レポートと複数問合せグループ・レポートの比較, 11 単一問合せレポート, 1.7.1 サイズ変更

枠または繰返し枠, 1.8.3

オブジェクト, 4.9.12.2

グリッド指定, 4.9.13.3 「ソース」ペイン

概要, 2.10.3

間隔

変更, 4.9.13, 4.9.13.3

テキストの変更, 4.9.2.9

デフォルト・レイアウト, 4.9.13.3

テキスト、変更, 4.9.2.9

表示領域の分割, 4.7.16.7 スプレッドシート

出力, 2.8.13

スプレッドシート出力

生成, 4.7.11

「SQL問合せ」ツール, 4.8.1.3 SQL*Net, 2.9.2 SRWビルトイン・パッケージ, 2.6.12.1 SRW.GET_PAGE_NUM, 35.3.2 SRW.SET_AFTER_FORM_HTML, 1.9.4, 4.6.10.2.6 SRW.SET_AFTER_PAGE_HTML, 2.8.8, 4.6.10.2.4 SRW.SET_AFTER_REPORT_HTML, 4.6.10.2.2 SRW.SET_BACKGROUND_BORDER_COLOR, 2.4.5, 4.9.6.4 SRW.SET_BACKGROUND_FILL_COLOR, 2.4.5, 4.9.6.4 SRW.SET_BEFORE_FORM_HTML, 1.9.4, 4.6.10.2.5 SRW.SET_BEFORE_PAGE_HTML, 4.6.10.2.3 SRW.SET_BEFORE_REPORT_HTML, 4.6.10.2.1 SRW.SET_BOOKMARK, 4.6.10.2.10 SRW.SET_BORDER_PATTERN, 2.4.5, 4.9.6.4 SRW.SET_CHARMODE_TEXT, 4.9.2.10 SRW.SET_FILL_PATTERN, 2.4.5 SRW.SET_FONT_FACE, 4.9.2.10 SRW.SET_FONT_SIZE, 4.9.2.10 SRW.SET_FONT_STYLE, 4.9.2.10 SRW.SET_FONT_WEIGHT, 4.9.2.10 SRW.SET_FOREGROUND_BORDER_COLOR, 2.4.5, 4.9.6.4 SRW.SET_FOREGROUND_FILL_COLOR, 2.4.5, 4.9.6.4 SRW.SET_FORMAT_ORDER, 2.8.1, 4.5.7, 35, 35.2.3, 36.3 SRW.SET_HYPERLINK_ATTRS, 4.6.10.2.7 SRW.SET_JUSTIFICATION, 4.9.2.10 SRW.SET_LINKTAG, 4.6.10.2.8 SRW.SET_PAGE_NAVIGATION_HTML, 4.6.10.2.11 SRW.SET_PDF_ACTION, 4.6.10.2.9 SRW.SET_PRINTER_TRAY, 2.8.6 SRW.SET_TEXT_COLOR, 2.4.5, 4.9.6.4 スタック・ノード, 4.14.14, 4.14.15 ストアドPL/SQLエディタ

概要, 2.6.2

構文のコピー, 4.13.2.4

ストアド・プログラム・ユニット

概要, 2.6.5

作成, 4.13.3.2

STPROCビルトイン・パッケージ, 2.6.12.2 スタイル・シート

概要, 2.2.11

サブプログラム参照、表示, 4.14.17 サマリー

マトリックス・レポート, 25

サマリー列

概要, 2.3.1

作成, 4.8.11, 36.4

ヘッダー用, 17.3

式列との比較, 14

サマリー・レポート, 9 SUMMITスキーマ, はじめに パラメータ・フォームの非表示, 4.7.15 構文パレット

概要, 2.6.3

構文のコピーに使用, 4.13.2.4

システム・パラメータ

概要, 1.9.1

参照、概要, 2.3.4

使用, 4.11.1

T

目次

作成, 2.8.1, 4.5.7

レポートでの作成, 35

複数階層の作成, 36

表形式レポート, 5

概要, 1.3.1

.tdfファイル, 2.7.1 テンプレート

概要, 2.7.1

カラーとパターンについて, 2.4.5

項目とオブジェクトの追加, 4.12.6

レポートへの適用, 2.7.3, 4.12.4

属性、概要, 2.7.2

作成, 4.12.1

レポート・ポートレットのHTMLの作成, 4.12.10

デフォルト属性の定義, 4.12.2

上書き属性の定義, 4.12.3

継承, 2.7.4

本体オブジェクトの変更, 4.12.8

マージンのオブジェクトの変更, 4.12.7

プロパティ, 2.7.4

タイトルの属性の設定, 4.12.5

PL/SQLの使用, 4.13

操作, 4.12

テンプレート・エディタ

概要, 2.7.5

テキスト

オブジェクト, 4.9.2

出力, 2.8.14, 4.7.9

間隔、変更, 4.9.13.2

折返し, 4.9.2.8

テキスト属性

変更, 4.9.2.9

PL/SQLを使用した変更, 4.9.2.10

「テキスト・カラー」ツール, 2.4.5 Text Queryツール, 4.8.1.6 TEXT_IOビルトイン・パッケージ, 2.6.12.2 時刻書式マスク, 4.9.7.1 時系列計算レポート, 28 時刻/日付スタンプ, 4.9.3 タイトル

レポートへの追加, 4.5.6

レポート、概要, 2.1.1

テンプレート, 4.12.5

TOC

単純な目次の作成, 35.2

複数階層の作成, 36

ツール・パレット

概要, 1.6.7

TOOL_ENVビルトイン・パッケージ, 2.6.12.2 TOOL_ERRビルトイン・パッケージ, 2.6.12.2 TOOL_RESビルトイン・パッケージ, 2.6.12.2 ツールバー

概要, 1.6.7

Toolsビルトイン・パッケージ, 2.6.12.2 TRACEファンクション, 4.14.20 トレース

レポートの配布, 4.14.19

レポートの実行, 4.14.18

TRACEファンクション, 4.14.20

トレーラ・ページ

オブジェクトの作成, 4.9.10.2

トレーラ・セクション, 4.10.1 翻訳

他の言語へのレポート, 4.5.11

トリガー

概要, 2.6.13

データベース、作成, 4.13.3.7

デバッグ、設定, 4.14.4

フォーマット、作成, 4.13.4.1

レポート、作成, 4.13.3.5

レポート、削除, 4.13.3.6

U

uiscreenprint.txt, 4.7.17.6

サイズの単位, 2.1.3

UNIX, 4.7.17.6

大文字

パラメータ・フォームの入力, 4.11.13

URL

イメージ, 4.8.6

イメージのリンク, 2.2.3, 4.9.8.1.3

ユーザー・イグジット, 2.9.3 ユーザー・パラメータ

概要, 1.9.1

作成, 4.11.2

V

実行時のパラメータの検証, 4.11.4

検証トリガー

概要, 2.6.13.3

使用, 4.11.4

変数

チェックまたは変更, 4.14.15

垂直差, 4.9.13.3 垂直中間フィールド, 4.9.13.3 「ページ当たりの垂直パネル」プロパティ, 2.1.4 垂直間隔

追加, 6.3

出力の表示, 4.7.16 表示領域、分割, 4.7.16.7

W

Webブラウザ

レポート出力の表示, 4.7.16.4

レポートの印刷, 4.7.17.3

Webリンク

ペーパーベースのレポートへの追加, 4.6.10

Webレポート, 42

概要, 1.2.2, 2.2

パラメータ・フォーム, 1.9.4, 4.11.7, 4.11.7

プレビュー, 2.2.2

ペーパーベースとの比較, 2.8.8

Webソース・ビュー

概要, 1.6.6

空白

追加, 8.5, 10.2.3

幅

列、変更, 4.9.13.1

「幅」プロパティ, 2.1.4, 4.7.14 ウィザード

用語集, 用語集

ラップ・ブレーク・レポート, 15 テキストの折返し, 4.9.2.8

X

XML, 4.9.8.3.1

データのフィルタリング, 45.2.6

出力, 2.8.7, 4.7.7

XMLデータ・ソース

XML問合せの作成, 45.2.2

XML問合せ

作成, 45.2.2

XML Queryツール, 4.8.1.4

オラクル社の法律上の注意点について

コピーライトについて

Copyright © 1994-2013, Oracle and/or its affiliates.All rights reserved.

商標と登録商標について

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

制限付権利

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション（人的傷害を発生させる可能性があるアプリケーションを含む）への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性（redundancy）、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

ドラフトのアルファ版およびベータ版ドキュメントについて

このドキュメントが試作版の場合:

このドキュメントは試作版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。オラクル社およびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。