組み込みコレクション - 改ページ対応レポートでのレポートおよびグループ変数の参照 (レポート ビルダー)

適用対象: Microsoft レポート ビルダー (SSRS) Power BI Report Builder SQL Server Data Tools のレポート デザイナー

改ページ対応レポート内の式で複数回使用される複雑な計算がある場合は、変数の作成をお勧めします。 このような場合は、レポート変数またはグループ変数を作成できます。 変数名は、レポート内で一意である必要があります。

Note

ページ分割されたレポートの定義ファイル (.rdl) は、Microsoft レポート ビルダー、Power BI レポート ビルダー、または SQL Server Data Tools のレポート デザイナーを使用して作成および変更できます。

レポート変数

レポート変数は、為替レートやタイム スタンプなどの時間に依存する計算や、複数回参照される複雑な計算で、値を保持するために使用します。 既定では、レポート変数は 1 回計算すると、レポート全体の式で使用できます。 レポート変数は既定では読み取り専用です。 既定を変更して、レポート変数を読み書き可能にすることもできます。 レポート変数の値はセッション全体で維持され、次回レポートを処理するときまで変わりません。

レポート変数を追加するには、 [レポートのプロパティ] ダイアログ ボックスを開き、 [変数] をクリックして、名前と値を指定します。 文字で始まり、空白を含まない名前を入力します。名前の文字列は大文字と小文字が区別されます。 名前に含めることができるのは、文字、数字、またはアンダースコア (_) だけです。

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

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

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

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

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

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

    Note

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

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

グループ変数

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

たとえば、別々の税区分にある各アイテムの在庫データをデータ領域に表示し、各カテゴリに異なる税率を適用するとします。 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>>としてテキスト ボックスに表示されます。

参照

データのフィルター、グループ化、および並べ替え (レポート ビルダーおよび SSRS)
式で使用される組み込みコレクション (レポート ビルダーおよび SSRS)
式の例 (レポート ビルダーおよび SSRS)