次の方法で共有


Previous 関数 (レポート ビルダー 3.0 および SSRS)

指定されたスコープにおけるアイテムの直前のインスタンスに対応する値または指定された集計値を返します。

注意

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

構文

Previous(expression, scope)

パラメーター

  • expression
    (Variant または Binary) データを識別し、直前の値を取得するための式 (Fields!Fieldname.Value や Sum(Fields!Fieldname.Value) など) です。

  • scope
    (String) 省略可。expression で指定された直前の値を取得する対象となるスコープを示すグループやデータ領域の名前、または NULL (Visual Basic では Nothing) です。

戻り値の型

Variant または Binary 値を返します。

説明

Previous 関数は、すべての並べ替えおよびフィルター処理が適用された後、指定されたスコープで評価された式の直前の値を返します。

expression に集計が含まれていない場合、Previous 関数では、レポート アイテムの現在のスコープが既定になります。

詳細グループで先行する詳細行のインスタンスのフィールド参照の値を指定するには、Previous を使用します。フィールド参照は、詳細グループでのみサポートされます。たとえば、詳細グループのテキスト ボックスの場合、=Previous(Fields!Quantity.Value) では、直前の行から Quantity フィールドのデータが返されます。先頭行では、NULL (Visual Basic では Nothing) が返されます。

既定のスコープを使用する集計関数が expression に含まれている場合、Previous では、集計関数の呼び出しで指定されたスコープの直前のインスタンス内のデータを集計します。

既定以外のスコープを指定する集計関数が expression に含まれている場合、Previous 関数の scope パラメーターには、集計関数の呼び出しで指定されたスコープのコンテナー スコープを指定する必要があります。

Level、InScope、Aggregate、および Previous の各関数は、expression パラメーターで使用することができません。集計関数に recursive パラメーターを指定することはサポートされていません。

詳細については、「集計関数リファレンス (レポート ビルダー 3.0 および SSRS)」および「合計、集計、および組み込みコレクションの式のスコープについて (レポート ビルダー 3.0 および SSRS)」を参照してください。

説明

次のコード例は、データ領域の既定のデータ行に配置されると、直前の行の LineTotal フィールドの値が表示されます。

コード

=Previous(Fields!LineTotal.Value)

説明

次の例では、特定の月日の売上合計と、前年のその月日の値を計算する式を示します。この式は、子グループ GroupbyDay に属する行内のセルに追加されます。その親グループは GroupbyMonth で、このグループの親グループは GroupbyYear です。この式では、GroupbyDay (既定のスコープ) の結果、次に GroupbyYear (親グループ GroupbyMonth の親) の結果が表示されます。

たとえば、親グループが Year、その子グループが Month、そのまた子グループが Day という名前のデータ領域 (入れ子レベル 3) の場合、グループ Day に関連付けられた行内の式 =Previous(Sum(Fields!Sales.Value,"Day"),"Year") は、前年の同じ月日の売上高の値を返します。

コード

=Sum(Fields!Sales.Value) & " " & Previous(Sum(Fields!Sales.Value,"GroupbyDay"),"GroupbyYear")