次の方法で共有


Previous 関数 (Reporting Services)

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

構文

Previous(expression, scope)

パラメーター

  • expression
    (Variant または Binary) 取得する値を識別する式 (Fields!Fieldname.Value、Sum(Fields!Fieldname.Value) など) です。

  • scope
    (String) 省略可。expression で指定された直前の値を取得する対象となるスコープを示すグループやデータ領域の名前、または NULL (Visual Basic では Nothing) です。scope パラメーターの詳細については、「式での組み込みのレポート関数と集計関数の使用 (Reporting Services)」を参照してください。

戻り値の型

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

説明

Previous 関数は、すべての並べ替えおよびフィルター処理が適用された後、指定されたスコープで評価された式の直前の値を返します。既定のスコープを使用する集計関数が expression に含まれている場合、Previous では、集計関数の呼び出しで指定されたスコープの直前のインスタンス内のデータを集計します。既定以外のスコープを指定する集計関数が expression に含まれている場合、Previous 関数の scope パラメーターには、集計関数の呼び出しで指定されたスコープのコンテナー スコープを指定する必要があります。

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

詳細グループ以外のグループでは、特定のグループ インスタンスを示す First や Last などの集計関数と共に Previous を使用します。たとえば、=Fields!Year.Value に基づいた行グループのテキスト ボックスでは、=Previous(First(Fields!Year.Value)) によって、Year グループの最初のインスタンスの年が返されます。

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

使用例

説明

次のコード例は、データ領域の詳細データ行に配置されると、直前の詳細行の 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")

変更履歴

変更内容

フィールド参照の前の値は詳細グループでのみ有効です。