ページ ヘッダーとページ フッターの追加
レポートには、各ページの上部と下部にヘッダーとフッターを含めることができます。ヘッダーとフッターには、式、静的テキスト、画像、線、四角形、罫線、背景色、背景画像などを含めることができます。式には、データセットが 1 つだけのレポートのデータセット フィールド参照と、そのデータセットをスコープとして含む集計関数の呼び出しが含まれます。
注意 |
---|
表示拡張機能の種類によって、ページの処理方法が異なります。レポートのページ割り当ておよび表示拡張機能の詳細については、「Reporting Services の改ページについて」を参照してください。 |
既定では、ページ ヘッダーとページ フッターはレポートの一部ではありません。ヘッダーとフッターを追加する手順については、「ページ ヘッダーまたはページ フッターを追加または削除する方法 (Reporting Services)」を参照してください。
ページ ヘッダーまたはページ フッターを作成すると、各レポート ページに表示されます。最初と最後のページにヘッダーとフッターが表示されないようにする方法については、「最初と最後のページでページのヘッダーまたはフッターを非表示にする方法 (Reporting Services)」を参照してください。
レポート ヘッダーとレポート フッター
ページ ヘッダーとページ フッターは、レポート ヘッダーとレポート フッターとは異なります。レポートには、レポート ヘッダーやレポート フッターの特別な領域がありません。レポート ヘッダーは、レポート デザイン画面でレポート本文の一番上に配置されるレポート アイテムで構成されます。これらはレポートの最初のコンテンツとして 1 回だけ表示されます。レポート フッターは、レポート本文の一番下に配置されるレポート アイテムで構成されます。これらはレポートの最後のコンテンツとして 1 回だけ表示されます。
ページ ヘッダーまたはページ フッターへの変数データの表示
ページ ヘッダーおよびページ フッターには静的なコンテンツを含めることもできますが、一般的にはページ番号やページのコンテンツに関する情報などの動的なコンテンツを表示します。ページごとに異なる変数データを表示するには、式を使用する必要があります。
レポートで定義されているデータセットが 1 つだけの場合は、[FieldName] のような単純な式をページ ヘッダーまたはページ フッターに追加できます。レポート データ ペインのデータセット フィールド コレクションまたは組み込みフィールド コレクションからページ ヘッダーまたはページ フッターにフィールドをドラッグします。適切な式が含まれたテキスト ボックスが自動的に追加されます。
ページの値の合計やその他の集計を計算するには、ReportItems またはデータセット名を指定する集計式を使用できます。ReportItems コレクションは、レポートが表示された後の各ページにあるテキスト ボックスのコレクションです。データセット名がレポート定義に存在する必要があります。次の表に、各集計式タイプでサポートされているアイテムを示します。
式でサポート |
ReportItems の集計 |
データセットの集計 (スコープがデータセット名であること) |
---|---|---|
レポート本文のテキスト ボックス |
はい |
いいえ |
&PageNumber |
はい |
いいえ |
&TotalPages |
はい |
いいえ |
集計関数 |
はい。例: =First(ReportItems!TXT_LastName.Value) |
はい。例: =Max(Quantity.Value,"DataSet1") |
ページ上のアイテムのフィールド コレクション |
間接的。例: =Sum(ReportItems!Textbox1.Value) |
はい。例: =Sum(Fields!Quantity.Value,"DataSet1") |
データバインド画像 |
間接的。例: =ReportItems!TXT_Photo.Value |
はい。例: =First(Fields!Photo.Value,"DataSet1") |
このトピックの以下のセクションでは、ヘッダーおよびフッターで一般的に使用される変数データを取得するための、すぐに使用できる式を示します。また、Excel 表示拡張機能でヘッダーおよびフッターが処理される方法についても説明します。式の詳細については、「レポート式を使用した作業」を参照してください。
ヘッダーまたはフッターへのページ番号の追加
一般に、フッターにはページ番号を表示します。レポートのヘッダーまたはフッターにページ番号を表示するには、フッターにテキスト ボックスを作成し、次の式を追加します。
=Globals.PageNumber & " of " & Globals.TotalPages
ページ番号とテキストを別々に書式設定するには、ページ ヘッダーまたはページ フッターのテキスト ボックスに次の式を直接入力します。
[&PageNumber] of [&TotalPages]
テキストの各セクションを選択し、個々の書式をテキストに適用できます。詳細については、「テキスト ボックス内のテキストを書式設定する方法」を参照してください。
ヘッダーまたはフッターへのレポート タイトル、パス、およびレポート実行時間の追加
レポート サーバー データベースに格納されている ReportTitle テキスト ボックスのレポート タイトルまたはレポート名と、そのレポートがいつ生成されたかに関するタイムスタンプ情報を表示するには、次の式を使用します。
=ReportItems!ReportTitle.Value
=Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")
ヘッダーまたはフッターへの計算された合計ページ数の追加
レポートの種類によっては、各レポートのヘッダーまたはフッターに計算値 (たとえば、ページに数値が含まれている場合はページごとの合計) を含めると便利です。フィールドを直接参照することはできないので、ヘッダーまたはフッターに配置する式は、次の例のように、データ フィールドではなく、レポート アイテム (たとえばテキスト ボックス) の名前を参照する必要があります。
=Sum(ReportItems!Textbox1.Value)
データ行の繰り返しを含むテーブルまたは一覧内にテキスト ボックスがある場合、実行時にヘッダーまたはフッターに表示される値は、現在のページのテーブルまたは一覧のすべての TextBox1 インスタンス データのすべての値の合計になります。
ページ合計を計算する場合、異なる表示拡張機能を使用してレポートを表示すると、合計に相違が生じる可能性があります。ページ割り当てされた出力は、表示拡張機能の種類によって、異なった方法で計算されます。HTML で表示したページと同じページを PDF で表示した場合、PDF ページ上のデータ量が異なると、表示される合計も異なる可能性があります。詳細については、「レンダリングの動作について」を参照してください。
複数のデータ ソースがあるレポートの場合
複数のデータセットがあるレポートの場合は、ヘッダーまたはフッターにフィールドやデータバインド画像を追加することはできません。ただし、ヘッダーまたはフッターで使用するフィールドやデータバインド画像を間接的に参照する式を記述することはできます。
ヘッダーまたはフッターに変数データを配置するには
ヘッダーまたはフッターにテキスト ボックスを追加します。
テキスト ボックスに、表示する変数データを生成する式を記述します。
その式に、ページ上のレポート アイテムへの参照を含めます (たとえば、特定のフィールドのデータが格納されているテキスト ボックスを参照できます)。データセット内のフィールドへの直接参照を含めることはできません。たとえば、式 [LastName] は使用できません。TXT_LastName テキスト ボックスの最初のインスタンスの内容を表示するには、次の式を使用します。
=First(ReportItems!TXT_LastName.Value)
ページ ヘッダーまたはページ フッターのフィールドには集計関数を使用できません。集計関数はレポート本文のレポート アイテムにのみ使用できます。ページ ヘッダーおよびページ フッター内で使用できる一般的な式については、「式の例 (Reporting Services)」を参照してください。
ヘッダーまたはフッターへのデータバインド画像の追加
ヘッダーまたはフッターで、データベースに格納された画像データを使用できます。ただし、画像レポート アイテムからデータベース フィールドを直接参照することはできません。代わりに、レポートの本文にテキスト ボックスを追加し、そのテキスト ボックスを画像が格納されているデータ フィールドに設定します (値は base64 でエンコードされている必要があります)。base64 でエンコードされた画像が表示されないように、レポートの本文でテキスト ボックスを非表示にできます。次に、ページ ヘッダーまたはページ フッターの画像レポート アイテムから、非表示のテキスト ボックスの値を参照します。
たとえば、製品情報のページから成るレポートがあるとします。各ページのヘッダーには、製品の写真を表示します。保存されている画像をレポート ヘッダーに出力するには、データベースから画像を取得する TXT_Photo という非表示のテキスト ボックスをレポートの本文に定義し、次の式を使用してそのボックスに値を渡します。
=Convert.ToBase64String(Fields!Photo.Value)
ヘッダーで、TXT_Photo テキスト ボックスを使用する画像レポート アイテムを追加し、デコードして画像を表示します。
=Convert.FromBase64String(ReportItems!TXT_Photo.Value)
ヘッダーおよびフッターを使用したテキストの配置
ヘッダーおよびフッターを使用して、ページ上にテキストを配置できます。たとえば、顧客に郵送するレポートを作成しているとします。顧客の住所をヘッダーまたはフッターを使用して配置することで、レポートを折りたたんだ時に、その住所が封筒の窓から見えるようにすることができます。
テキスト ボックスを使用してヘッダーまたはフッターのみに値を設定する場合は、レポートの本文でそのテキスト ボックスを非表示にすることができます。レポートの本文にテキスト ボックスを配置すると、ヘッダーやフッターに表示する値が、レポートの最初と最後のどちらのページに表示されるかに影響する可能性があります。たとえば、レポートが 1 ページに収まらないテーブル、マトリックス、一覧がある場合、非表示のテキスト ボックスの値は最後のページに表示されます。これを最初のページに表示する必要がある場合は、非表示のテキスト ボックスをレポート本文の先頭に配置します。
特定のレンダラ用のページ ヘッダーおよびページ フッターを使用したレポートのデザイン
レポートが処理されると、データとレイアウトの情報は結合されます。レポートを表示すると、結合された情報がレンダラに渡され、各レポート ページに収まるレポート データの量が決まります。
ブラウザを使用してレポート サーバーでレポートを表示する場合は、表示されるレポート ページの内容を HTML レンダラがコントロールします。表示に使用する形式とは異なる形式でレポートを配信する場合や、特定の形式でレポートを印刷する場合は、最終的なレポート形式に使用するレンダラに合わせてレポート レイアウトを最適化することをお勧めします。レポートのページ割り当ての詳細については、「Reporting Services の改ページについて」を参照してください。
Excel でのページ ヘッダーおよびページ フッターの使用
Excel の表示拡張機能を対象とするレポートにページ ヘッダーおよびページ フッターを定義する場合は、次のガイドラインに従うことで、最も良い結果を得ることができます。
ページ フッターは、ページ番号を表示するために使用します。
ページ ヘッダーは、画像、タイトル、またはその他のテキストを表示するために使用します。ヘッダーには、ページ番号を配置しないようにします。
Excel では、ページ フッターのレイアウトに制限があります。ページ フッターに複雑なレポート アイテムを含むレポートを定義した場合、そのレポートを Excel で表示すると、ページ フッターの処理は期待どおりには行われません。
Excel の表示拡張機能は、ページ ヘッダー内の画像、および単純または複雑なレポート アイテムの絶対位置に対応しています。よりリッチなページ ヘッダー レイアウトをサポートする副作用として、ヘッダーでのページ番号の計算に制限が生じます。Excel の表示拡張機能では、既定の設定で、ページ番号がワークシートの数に基づいて計算されます。レポートの定義の仕方によっては、ページ番号に誤りが生じる可能性があります。たとえば、印刷すると 4 ページになる単一の大きなワークシートとして表示されるレポートがあるとします。ヘッダーにページ番号情報を含めると、印刷された各ページのヘッダーには、"Page 1 of 1" と表示されます。
より正確なページ数は、印刷されたページの寸法に相関する論理ページに基づいて計算されます。Excel のページ フッターでは、論理ページ番号が自動的に使用されます。ページ ヘッダーに論理ページ数を配置するには、単純なヘッダーを使用するようにデバイス情報設定を構成する必要があります。単純なヘッダーを使用する場合は、ヘッダー領域で複雑なレポート レイアウトを処理する機能を削除してください。デバイス情報設定の変更方法の詳細については、「Excel デバイス情報設定」を参照してください。
詳細については、「Microsoft Excel へのエクスポート」を参照してください。