式におけるレポート変数コレクションとグループ変数コレクションの参照の使用 (Reporting Services)
レポート内の式で複数回使用される複雑な計算があれば、変数を作成した方がよい場合があります。このような場合は、レポート変数またはグループ変数を作成できます。レポート変数は、1 回だけ設定し、レポート全体の式で使用できます。グループ変数は、一意のグループ値ごとに 1 回設定し、グループ階層の現在のレベル以下にある式で使用できます。
レポート変数
レポート変数は、通貨レートやタイム スタンプなどの時間に依存する計算や、1 回だけ評価される複雑な計算で、値を保持するために使用します。テキスト ボックス内の式はユーザーがレポートを読み進める間に要求に応じて評価されるため、あるページを表示し、次のページを表示した後、[戻る] ボタンを使用して最初のページに戻ると、動的な値 (Now() が含まれている式、時刻を返す関数など) からは異なる値が返される場合があります。レポート変数の値に式 =Now() を設定し、その変数を式に追加することで、レポート処理全体で同じ値が使用されるようになります。レポート変数は、レポート内のすべての式で参照できます。
レポート変数を追加するには、[レポートのプロパティ] ダイアログ ボックスを開き、[変数] をクリックして、名前と値を指定します。レポート変数の値は 1 回のみ設定され、レポート処理中は変更されません。
式で変数を参照するには、=Variables!CustomTimeStamp.Value などのグローバル コレクション構文を使用します。デザイン画面では、この値が <<Expr>> としてテキスト ボックスに表示されます。
グループ変数
グループ変数は、グループのスコープ内の値を計算するために使用します。グループ変数は、グループとその子グループのスコープ内でのみ有効です。
たとえば、別々の税区分にある各アイテムの在庫データをデータ領域に表示し、各カテゴリに異なる税率を適用するとします。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>> としてテキスト ボックスに表示されます。
カスタム コードでグループ変数を使用することにより、集計計算をカスタマイズすることもできます。詳細については、「グループ変数を使ったカスタム集計 (Reporting Services 2008)」および「合計およびその他の集計の計算 (Reporting Services)」を参照してください。
変更履歴
変更内容 |
---|
グループ変数およびカスタム コードを使用してカスタム集計を追加する例のリンクを追加しました。 |