16
ヘッダー/フッター付レポートの作成
この章では、ヘッダーとフッターを含むレポートについて学習します。この章の手順に従うと、図16-1に示すようなレポート出力を生成できます。
図16-1 ヘッダー/フッター付グループ左レポートの出力
画像の説明
このレポートでは、各ページの上マージンにEmployee Summary Report
というページ・ヘッダーが出力され、各部門の従業員情報リストの最後にTotal Salary for Department <number>: <sum_sal>
というフッターが出力されています。
概要
- ヘッダー/フッター付レポートでは、ヘッダーやフッターにボイラープレートまたはフィールドが含まれます。レポートにヘッダーとフッターを作成するには、レポート・エディタのペーパー・レイアウト・ビューにボイラープレートまたはフィールドを追加します。フィールドを作成する場合、フィールドの値は1つのみにしてください。値が複数あると、Reports Builderでは、どの値を出力するのか判断できません。
- ボイラープレートとフィールドの表示頻度、またそれがヘッダーかフッターかは、レイアウトのどこに配置するかによって異なります。繰返し枠の中に配置されたボイラープレートは、繰返し枠を印刷するたびに印刷されます。すべての繰返し枠の外に配置されたボイラープレートは、レポート全体で1回のみ印刷されます。
データ・リレーションシップ
このレポートでは、1つの問合せを使用して、必要な列をすべて選択します。2番目のグループに列を割り当てて、ブレークを追加します。
レイアウト
このレポートでは、グループ左のレイアウト・スタイルを修正したものを使用します。繰返し枠とそれを囲む枠のサイズを拡大し、その中にフッターが入る大きさにしてからフッターを追加します。さらに、繰返し枠の垂直間隔を変更して、枠の各インスタンスの間に空白を追加します。
使用例
この例では、従業員データを部門別に表示および集計するレポートを作成します。レポートをより見やすくするために、各ページにヘッダーを、各マスター・レコードにフッターを追加することにします。
このサンプル・レポートの作成過程では、次を行います。
ヘッダーとフッターが付いたレポートのサンプルを表示するには、サンプル・フォルダheaderfooter
を開き、Oracle Reportsのサンプルheadfootb.rdf
を開きます。アクセス方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。
表16-1 この例で説明されている機能
16.1 この例の前提条件
この章の例を作成するには、Oracle Database付属のHuman Resourcesサンプル・スキーマ(HR)に対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。
16.2 データ・モデルとグループ左レイアウトの作成
この例のように、単一問合せレポートを作成する場合、レポート・ウィザードを使用して、データ・モデルとレイアウトを同時に作成できます。
データ・モデルとレイアウトを作成するには:
- Reports Builderを起動します。すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択します。
- 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。
- 「ようこそ」ページが表示されたら、「次へ」をクリックします。
- 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。
- 「スタイル」ページでレポートのタイトルを入力し、「グループ左」を選択して「次へ」をクリックします。
- 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。
- 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。
SELECT FIRST_NAME, LAST_NAME, EMPLOYEE_ID, SALARY, DEPARTMENT_ID
FROM EMPLOYEES
ORDER BY DEPARTMENT_ID, EMPLOYEE_ID
注意
この問合せは、次のいずれかの方法で入力できます。
- 提供されているテキスト・ファイル
headfoot_code.txt からコードをコピーして「データ・ソース定義」フィールドに貼り付けます。
- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。
- 「データ・ソース定義」フィールドにコードを入力します。
|
- 「次へ」をクリックします。
注意
データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第16.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。
|
- 「グループ」ページで、「DEPARTMENT_ID」をクリックし、「>」ボタンをクリックして、このフィールドを「グループ・フィールド」リストに移動し、「次へ」をクリックします。
- 「フィールド」ページで、「>>」ボタンをクリックしてすべてのフィールドを「表示フィールド」リストに移動し、「次へ」をクリックします。
- 「合計」ページで「SALARY」をクリックして、「合計」をクリックします。
- 「次へ」をクリックします。
- 「ラベル」ページで、ラベルを次のように変更し、「次へ」をクリックします。
この手順では、マスター繰返し枠(部門)の各インスタンスにフッターを追加します。
注意
DEPARTMENT_ID列はデータ・モデルの一部なので、&DEPARTMENT_IDを使用して、フッター・ラベルのDEPARTMENT_IDを参照する必要があります。
|
- 「テンプレート」ページで「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。表示は次のようになります。
図16-2 マスター繰返し枠にフッターが付いたグループ左レポートの出力
画像の説明
16.3 サマリーの移動
ペーパー・デザイン・ビューを見ると、給与の部門サマリーが、フッター・ラベル(Total Salary for Department &DEPARTMENT_ID)の右側へ、ずいぶん離れて配置されているのがわかります。このレポートでは、給与サマリーをそのラベルの近くへ移動します。
サマリーをラベルの近くへ移動するには:
- ペーパー・デザイン・ビューで、ツールバーの「フレックス・オフ」ボタンをクリックして、フレックス・モードをオフにします。
- ラベル「Total Salary for Department &DEPARTMENT_ID」を選択します。
- ラベルの一番右側にあるハンドルをクリックし、そのまま左へ約0.75インチ(2 cm)ドラッグして、オブジェクトのサイズを変更します。
- ラベル「Total Salary for Department &DEPARTMENT_ID」の右側にある最初のサマリー値を選択します。
- サマリー値をクリックし、そのまま左へドラッグしてラベルに十分近づけます。
- フィールドの一番右側にあるハンドルをクリックし、そのまま左へ約1インチ(2 cm)ドラッグします。
- ツールバーの「フレックス・オン」ボタンをクリックして、フレックス・モードをオンに戻します。
図16-3 サマリーをラベルに近づけたグループ左レポートの出力
画像の説明
16.4 ページ・ヘッダーの追加
繰返し枠フッターが追加されたので、今度はページ・ヘッダーを追加します。この作業はペーパー・レイアウト・ビューで実行します。
- ペーパー・レイアウト・ビューで、ツールバーの「マージン編集」ボタンをクリックします。
- ツールバーのフォント・リストから、「Arial Black」、ポイント・サイズ「16」を選択します。
- ツール・パレットの「テキスト」ツールをクリックします。
- ロゴ・イメージの右側の任意の位置をクリックし、次のテキストを入力します。
Employee Summary Report
- ペーパー・レイアウト・ビューの空き領域に移動し、マウス・ボタンをクリックしてテキスト・モードを終了します。作成したテキスト・オブジェクトは、選択されたままになっています。この状態で、矢印キーを使用して位置を調整できます。2度目に空き領域をクリックすると、オブジェクトの選択は解除されます。
注意
同様に、ページ・マージンの下にページ・フッターを追加できます。
|
- ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックして、ペーパー・デザイン・ビューにレポートを表示します。表示は次のようになります。
図16-4 ページ・ヘッダー付グループ左レポートの出力
画像の説明
- レポートを
headfootb_<自分のイニシャル>.rdf
という名前で保存します。
16.5 空白の追加とフィールドの書式設定
最後の作業では、レコードの間に空白を追加し、値の書式を適切に設定して、レポートをもう少し読みやすくします。
- ペーパー・デザイン・ビューで、最初の部門番号値「10」を選択します。すべての部門番号が選択されるので、それらのプロパティを同時に変更できます。
- ツールバーの「中央に整列」ボタンをクリックします。
- ツールバーの「親枠を選択」ボタンをクリックします。
- 「ツール」→「プロパティ・インスペクタ」を選択し、プロパティ・インスペクタを表示してプロパティを設定します。
- 「繰返し枠」で、「枠間の垂直間隔」プロパティを「0.25」に設定します。
- ペーパー・デザイン・ビューのタイトル・バーをクリックします。
- 「Salary」ラベルの下に表示されている最初の数値を選択します。
- [Shift]を押しながら最初の部門の部門サマリー値をクリックします。
ヒント
書式マスクの構文に精通している場合は、フィールドの値を右クリックして「プロパティ・インスペクタ」を選択し、「書式マスク」プロパティの値を選択するか、手動で入力してもかまいません。
|
- ツールバーの「通貨」ボタンをクリックします。すべての値の横に通貨記号が表示されます。
- 「10進桁を追加」ボタンを2回クリックします。小数点の右側に少数点以下2桁が追加されます。
- 給与フィールド(F_SALARY)の一番右側にあるハンドルをクリックし、そのまま左へ約0.5インチ(1.5 cm)ドラッグして、そのサイズを変更します。サマリー・フィールド(F_SumSALARYPerDEPARTMENT_ID)が選択されていても、サイズを変更できるのはF_SALARYのみです。
- [Shift]を押しながら「Salary」ラベル自体をクリックします。
- ツールバーの「右に整列」ボタンをクリックします。すべての値が右詰めになります。
ヒント
前述の手順で、レポートの給与と部門サマリーがすべて書式設定されました。しかし、レポート・サマリー(レポート内のすべての給与のサマリー)は、まだ書式設定されていません。レポートの最終ページにあるレポート・サマリーを確認し、前述と同じ手順で書式設定できます。
|
図16-5 値が書式設定されたグループ左レポートの出力
画像の説明
16.6 まとめ
これで、すべての作業が完了しました。ヘッダー/フッター付レポートは正常に作成されました。この章で学習した内容は次のとおりです。
- データ・モデルとレイアウトを作成する。
- サマリー・フィールドを移動する。
- すべてのページで繰り返されるヘッダーを追加する。
- 空白を追加して値を書式設定する。
この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第3.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Reports BuilderまたはOracle Technology Network(OTN)から表示できます。