式における ReportItems コレクションの参照の使用 (レポート ビルダ 2.0)
組み込みコレクション ReportItems は、データ領域の行などのレポート アイテムのテキスト ボックスや、レポート デザイン画面上のテキスト ボックスのセットです。ReportItems コレクションには、ページ ヘッダー、ページ フッター、またはレポート本文の現在のスコープにあるテキスト ボックスが含まれています。このコレクションは、レポート プロセッサおよびレポート レンダラによって実行時に決定されます。ユーザーがレポートのページを表示する際には、レポート プロセッサによってレポート データとレポート アイテムのレイアウト要素が連続的に結合されますが、これに伴って現在のスコープが変化します。組み込みコレクション ReportItems を使用すると、各ページの最初のアイテムと最後のアイテムを表示する辞書形式のページ ヘッダーを作成できます。
ReportItems の Value プロパティの使用
ReportItems コレクション内のアイテムに設定されるプロパティは、Value だけです。ReportItems アイテムの値を使用すると、レポート内の別のフィールドのデータを表示または計算できます。現在のテキスト ボックスの値にアクセスするには、Visual Basic に組み込まれたグローバルの Me.Value を使用するか、単なる Value を使用します。First 関数や集計関数などのレポート関数では、完全修飾された構文を使用してください。
以下に例を示します。
テキスト ボックスで次の式を使用すると、Textbox1 という名前の ReportItem テキスト ボックスの値が表示されます。
=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 コレクションへの参照のスコープは、現在のスコープまたは現在のスコープより上位の場所です。
たとえば、親グループの行の中にあるテキスト ボックスには、子グループの行の中にあるテキスト ボックスの名前を参照する式を含めることができません。このような式は、子行のテキスト ボックスがスコープ外にあるため、レポート内の値に解決されません。詳細については、「式での組み込みのレポート関数と集計関数の使用 (レポート ビルダ 2.0)」を参照してください。