レポート変数コレクションとグループ変数コレクションの参照の使用 (レポート ビルダー 3.0 および SSRS)

レポート内の式で複数回使用される複雑な計算があれば、変数を作成した方がよい場合があります。このような場合は、レポート変数またはグループ変数を作成できます。既定では、レポート変数は 1 回設定すれば、レポート全体の式で使用できます。レポート変数は既定では読み取り専用です。既定を変更して、レポート変数を読み書き可能にすることもできます。レポート変数の値はセッション全体で維持され、次回レポートを処理するときまで変わりません。グループ変数は、一意のグループ値ごとに 1 回設定し、グループ階層の現在のレベル以下にある式で使用できます。グループ変数は読み書き可能に設定できません。

注意

レポート定義 (.rdl) は、Business Intelligence Development Studio のレポート ビルダー 3.0 およびレポート デザイナーで作成および変更できます。これらの作成環境では、レポートおよび関連アイテムの作成方法、開く方法、および保存方法が異なります。詳細については、microsoft.com Web サイトの「レポート デザイナーとレポート ビルダー 3.0 でのレポートのデザイン (SSRS)」を参照してください。

レポート変数

レポート変数は、為替レートやタイム スタンプなどの時間に依存する計算や、複数回参照される複雑な計算で、値を保持するために使用します。変数を初期化した後、値はレポート セッション全体で一定のままです。

レポート変数を追加するには、[レポートのプロパティ] ダイアログ ボックスを開き、[変数] をクリックして、名前と値を指定します。

式で変数を参照するには、=Variables!CustomTimeStamp.Value などのグローバル コレクション構文を使用します。デザイン画面では、この値が <<Expr>> としてテキスト ボックスに表示されます。

レポート変数は、次の方法で使用できます。

  • 読み取り専用の使用   たとえば、タイム スタンプを作成する場合に、値を 1 回設定してレポート セッションの定数を作成します。

    テキスト ボックス内の式はユーザーがレポートを読み進める間に要求に応じて評価されるため、次のページに進んでから [戻る] ボタンを使用して戻ると、動的な値 (時刻を返す Now() 関数が含まれている式など) から異なる値が返される場合があります。レポート変数の値に式 =Now() を設定し、その変数を式に追加することで、レポート処理全体で同じ値が使用されるようになります。

  • 読み書き可能な使用   値を 1 回設定して、レポート セッション内でその値をシリアル化します。変数の読み書き可能オプションは、レポート定義のコード ブロックで静的変数を使用するよりも適切な方法です。

    変数の [読み取り専用] オプションをオフにすると、変数の Writable プロパティは true に設定されます。式から値を更新するには、SetValue メソッド (たとえば、=Variables!MyVariable.SetValue("123")) を使用します。

    注意

    レポート プロセッサによって変数が初期化される時期や、変数を更新する式が評価される時期を制御することはできません。変数の初期化の実行順序は定義されません。

セッションの詳細については、「レポート ビルダー 3.0 でのレポートのプレビュー」を参照してください。

グループ変数

グループ変数は、グループのスコープ内の値を計算するために使用します。グループ変数は、グループとその子グループのスコープ内でのみ有効です。

たとえば、別々の税区分にある各アイテムの在庫データをデータ領域に表示し、各カテゴリに異なる税率を適用するとします。Category でデータをグループ化し、親グループで Tax 変数を定義します。次に、税区分ごとに ItemTax のグループ変数を定義し、異なる Category サブグループをそれぞれ適切なグループ変数に割り当てます。次にその例を示します。

  • [Category] に基づく親グループでは、値 [Tax] を指定して、変数 Tax を定義します。カテゴリ値が Food と Clothing であるとします。

  • [Subcategory] に基づく子グループでは、変数 ItemsTax を =Variables!Tax.Value * Sum(Fields!Price.Value) として定義します。Food カテゴリのサブカテゴリ値が Beverages と Bread、Clothing カテゴリのサブカテゴリ値が Shirts と Hats であるとします。

  • 子グループの行のテキスト ボックスで、式 =Variables!ItemsTax.Value を追加します。

    このテキスト ボックスには、Food の税を使用した場合は Beverages と Bread、Clothing の税を使用した場合は Shirts と Hats の税の総額が表示されます。

グループ変数を追加するには、[Tablix グループのプロパティ] ダイアログ ボックスを開き、[変数] をクリックし、名前および値を指定します。グループ変数は、一意のグループの値ごとに 1 回計算されます。

式で変数を参照するには、=Variables!GroupDescription.Value などのグローバル コレクション構文を使用します。デザイン画面では、この値が <<Expr>> としてテキスト ボックスに表示されます。