改ページ対応レポート内の ReportItems コレクション (Report Builder)
適用対象: Microsoft Report Builder (SSRS) Power BI Report Builder SQL Server Data Tools の Report Designer
組み込みコレクション ReportItems は、データ領域の行などのレポート アイテムからのテキスト ボックスまたは改ページ対応レポート デザイン画面上のテキスト ボックスのセットです。 ReportItems コレクションには、ページ ヘッダー、ページ フッター、またはレポート本文の現在のスコープにあるテキスト ボックスが含まれています。 このコレクションは、レポート プロセッサおよびレポート レンダラーによって実行時に決定されます。 ユーザーがレポートのページを表示する際には、レポート プロセッサによってレポート データとレポート アイテムのレイアウト要素が連続的に結合されますが、これに伴って現在のスコープが変化します。 組み込みコレクション ReportItems を使用すると、各ページの最初のアイテムと最後のアイテムを表示する辞書形式のページ ヘッダーを作成できます。
注意
ページ分割されたレポートの定義ファイル (.rdl) は、Microsoft レポート ビルダー、Power BI レポート ビルダー、または SQL Server Data Tools のレポート デザイナーを使用して作成および変更できます。
ReportItems の Value プロパティを使用する
ReportItems コレクション内のアイテムに設定されるプロパティは 1 つのみです:Value。 ReportItems アイテムの値を使用すると、レポート内の別のフィールドのデータを表示または計算できます。 現在のテキスト ボックスの値にアクセスするには、Visual Basic に組み込まれたグローバルの Me.Value
を使用するか、単なる Value
を使用します。 First 関数や集計関数などのレポート関数では、完全修飾された構文を使用してください。
次に例を示します。
テキスト ボックスで次の式を使用すると、 という名前の ReportItem
Textbox1
テキスト ボックスの値が表示されます。=ReportItems!Textbox1.Value
ReportItem テキスト ボックスの Color プロパティで次の式を使うと、値が 0 より大きい場合は黒、それ以外の場合は赤でテキストが表示されます。
=IIF(Me.Value > 0,"Black","Red")
ページ ヘッダーまたはページ フッターのテキスト ボックスで次の式を使用すると、表示レポートのページごとに、
LastName
という名前のテキスト ボックスの最初の値が表示されます。=First(ReportItems("LastName").Value)
辞書形式のページ ヘッダー式
そのページ上の最初の顧客と最後の顧客を表示するページ ヘッダーを作成することができます。 ページ ヘッダーのテキスト ボックスでは、式の中で組み込みコレクション ReportItems を 1 回しか参照できないため、最初の顧客名用 (=First(ReportItems!textboxLastName.Value
) と最後の顧客名用 (=Last(ReportItems!textboxLastName.Value
) に 2 つのテキスト ボックスをページ ヘッダーに追加する必要があります。
ページ ヘッダー セクションやページ フッター セクションでは、 ReportItems コレクションのメンバーとして使用できるのは、現在のページのテキスト ボックスのみです。 たとえば、ReportItems!textboxLastName.Value
が、複数ページにわたるデータ領域の最初のページにしか表示されないテキスト ボックスを参照している場合、最初のページでは値が表示されますが、その他すべてのページでは #Error と表示され、式が記述したとおりに評価できなかったことを示します。
ReportItems コレクションの範囲
レポートが処理されると、レポート本文内またはデータ領域内の各テキスト ボックスは、そのデータセット、データ領域、およびグループの関連付けのコンテキストで評価されます。 ReportItems コレクションへの参照のスコープは、現在のスコープまたは現在のスコープより上位の場所です。
たとえば、親グループの行の中にあるテキスト ボックスには、子グループの行の中にあるテキスト ボックスの名前を参照する式を含めることができません。 このような式は、子行のテキスト ボックスがスコープ外にあるため、レポート内の値に解決されません。 詳細については、「集計関数リファレンス (Report Builder)」を参照してください。