レポート内の式のグローバル コレクション (Visual Studio レポート デザイナ)

ReportViewer コントロールで処理されるレポート定義用に作成した式には、グローバル オブジェクト コレクションへの参照を含めることができます。使用可能なグローバル オブジェクト コレクションは、FieldsGlobalsParametersReportItems、および User の 5 つです。これらのコレクションにアクセスするには、標準の Visual Basic コレクションの構文を使用できます。この構文の例は、次のとおりです。

  • Collection!ObjectName

    =User!Language

  • Collection.Item("ObjectName")

    =User.Item("Language")

  • Collection("ObjectName")

    =User("Language")

また、プロパティ構文を使用すると、Globals コレクションおよび User コレクションのアイテムにアクセスできます。この例を、以下に示します。

  • Collection.ObjectName

    =Globals.PageNumber

Globals コレクションおよび Users コレクションのメンバからは、Variant 値が返されます。特定のデータ型を必要とするグローバル変数を式に使用する場合は、最初に変数をキャストする必要があります。たとえば、CDate(Globals!ExecutionTime) のようにします。

フィールド

Fields コレクションには、現在のデータ ソースのフィールドが保持されます。これらのフィールドは通常、レポートのテキスト ボックスにデータを表示するために使用されますが、他のレポート アイテム、プロパティ、関数でも使用できます。Fields コレクション内のアイテムには、ValueIsMissing という 2 つのプロパティがあります。Value プロパティからは、データ ソースのフィールドに取得された値が返されます。IsMissing プロパティでは、フィールドがデータ ソース内に存在するかどうかが示されます。これは、フィールドの変数セットを返すクエリで役立ちます。存在していないフィールドの Value プロパティは、Null になります。

フィールド オブジェクトのアクセスに使用される最も一般的な構文は、Fields!Product.Value などのプロパティ構文です。また、上記のコレクション構文も使用できます。データ ソースの中には、フィールドにその他のプロパティが用意されているものもあります。これらのプロパティには、コレクション構文を使用してアクセスできます。データ ソースでプロパティがサポートされていない場合や、クエリの実行時にフィールドが見つからなかった場合、String 型および Object 型のプロパティの値は Null になり、Integer 型のプロパティの値は 0 になります。

レポートは、そのレポート内のデータ ソースごとに仮想の Fields コレクションを 1 つ保持します。各フィールドはコレクション内で一意である必要がありますが、同じフィールド名が複数のコレクションに存在していてもかまいません。データ領域内のフィールドを参照する場合は、データ領域のデータ テーブルまたはビジネス オブジェクトにより、どのコレクションが使用されるかが決まります。集計式内のフィールドを参照する場合は、スコープとなるデータ ソースにより、どのコレクションが使用されるかが決まります。

グローバル

Globals コレクションには、レポートのグローバル変数が保持されます。次の表では、Globals コレクションのメンバについて説明します。

メンバ 説明

ExecutionTime

DateTime

レポートの実行を開始した日付と時刻です。

PageNumber

Integer

現在のページ番号です。ページ ヘッダーおよびページ フッターでのみ使用できます。

ReportFolder

String

レポートがあるフォルダへの完全なパスです。これには、レポート サーバーの URL は含まれません。このメンバはサーバー レポートにのみ適用されます。

ReportName

String

レポート サーバー データベースに格納されているとおりのレポートの名前です。このメンバはサーバー レポートにのみ適用されます。

ReportServerUrl

String

レポートが実行されるレポート サーバーの URL です。このメンバはサーバー レポートにのみ適用されます。

TotalPages

Integer

レポート内のページ数の合計です。ページ ヘッダーおよびページ フッターでのみ使用できます。

グローバル変数の例を以下に示します。

  • レポートのフッター内のテキスト ボックスで次の式を使用すると、ページ番号およびレポートの全ページ数が返されます。

    =Globals.PageNumber & " of " & Globals.TotalPages
    
  • 次の式は、レポート名およびレポートが実行された時刻を返します。時刻の書式は、.NET Framework の短い日付形式の書式設定文字列を使用して設定されます。

    =Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")
    

パラメータ

Parameters コレクションには、レポート内のレポート パラメータが保持されます。Parameters は、フィルタで使用したり、パラメータに基づいてレポートの外観を変更する他の関数で使用したりすることができます。Parameters コレクション内のアイテムには、ValueLabel という 2 つのプロパティがあります。Value プロパティからは、EmployeeID など、パラメータの値が返されます。Label プロパティからは、EmployeeName など、ユーザーにとってわかりやすいパラメータのラベルが返されます。ラベルが指定されていない場合、Label プロパティは Value プロパティと同じになります。同じ値に複数のラベルが関連付けられている場合は、最初に一致したラベルが使用されます。Parameters は、プロパティ構文かコレクション構文のいずれかを利用してアクセスできます。

レポート アイテム

ReportItems コレクションには、レポート内のテキスト ボックスが保持されます。ReportItems コレクションのアイテムには、Value という 1 つのプロパティしか保持されません。ReportItems アイテムの値は、レポート内の別のフィールドのデータを表示したり計算したりするために使用できます。現在のテキスト ボックスの値にアクセスするには、Me.Value または Value を使用します。Me.ValueValue は、集計関数の中では使用できません。これらの関数のいずれかからテキスト ボックスの値にアクセスする場合は、完全な構文を使用してください。

レポート アイテム式の例を以下に示します。

  • テキスト ボックスで次の式を使用すると、Textbox1 という名前のテキスト ボックスの値が表示されます。

    =ReportItems!Textbox1.Value
    

ユーザー

User コレクションには、レポートを実行しているユーザーのデータが保持されます。次の表では、User コレクションのメンバについて説明します。

メンバ 説明

Language

String

レポートを実行しているユーザーの言語 ID です。

UserID

String

レポートを実行しているユーザーの ID です。

参照

概念

ReportViewer コントロール (Visual Studio)
レポートでの式の使用 (Visual Studio レポート デザイナ)
レポートでのレポート パラメータの定義 (Visual Studio レポート デザイナ)
レポートへのページ ヘッダーおよびページ フッターの追加 (Visual Studio レポート デザイナ)
リモート処理用の ReportViewer の構成