Partager via


Fonction Previous (Reporting Services)

Retourne la valeur ou la valeur d'agrégation spécifiée pour l'instance précédente d'un élément dans l'étendue spécifiée.

Syntaxe

Previous(expression, scope)

Paramètres

  • expression
    (Variant ou Binary) Expression qui identifie la valeur à récupérer, par exemple, Fields!Fieldname.Value ou Sum(Fields!Fieldname.Value).

  • scope
    (String) Facultatif. Nom d'un groupe ou d'une région de données, ou valeur Null (Nothing en Visual Basic), qui spécifie l'étendue à partir de laquelle récupérer la valeur précédente spécifiée par expression. Pour plus d'informations sur le paramètre scope, consultez Utilisation de fonctions de rapport et d'agrégation intégrées dans des expressions (Reporting Services).

Type de retour

Retourne Variant ou Binary.

Notes

La fonction Previous retourne la valeur précédente de l'expression évaluée dans l'étendue spécifiée après que cette dernière a été correctement triée et filtrée. Si expression contient une fonction d'agrégation qui utilise une étendue par défaut, Previous agrège les données de l'instance précédente de l'étendue spécifiée dans l'appel de la fonction d'agrégation. Si expression contient une fonction d'agrégation qui spécifie une étendue autre que celle par défaut, le paramètre scope de la fonction Previous doit être une étendue contenante pour l'étendue spécifiée dans l'appel de la fonction d'agrégation.

Dans un groupe de détails, utilisez Previous pour spécifier la valeur d'une référence de champ dans l'instance précédente de la ligne de détails. Les références de champ sont uniquement prises en charge dans le groupe de détails. Par exemple, dans une zone de texte du groupe de détails, =Previous(Fields!Quantity.Value) retourne les données du champ Quantity de la ligne précédente. Dans la première ligne, cette expression retourne une valeur Null (Nothing en Visual Basic).

Dans les groupes qui ne sont pas des groupes de détails, utilisez Previous avec une fonction d'agrégation telle que First ou Last qui indique une instance de groupe spécifique. Par exemple, dans une zone de texte dans un groupe de lignes basé sur =Fields!Year.Value, =Previous(First(Fields!Year.Value)) retourne l'année pour la première instance du groupe Year (année).

Les fonctions Level, InScope, Aggregate et Previous ne peuvent pas être utilisées dans le paramètre expression. La spécification du paramètre recursive pour une fonction d'agrégation n'est pas prise en charge.

Exemples

Description

L'exemple de code ci-dessous, lorsqu'il est placé dans la ligne de données de détails d'une région de données, fournit la valeur du champ LineTotal de la ligne de détails précédente.

Code

=Previous(Fields!LineTotal.Value)

Description

L'exemple suivant montre une expression qui calcule la somme des ventes réalisées au cours d'un jour spécifique du mois et la valeur précédente pour le même jour du mois d'une année précédente. L'expression est ajoutée à une cellule d'une ligne qui appartient au groupe enfant GroupbyDay. Son groupe parent est GroupbyMonth, ayant lui-même le groupe parent GroupbyYear. L'expression affiche les résultats pour GroupbyDay (étendue par défaut), puis pour GroupbyYear (le parent du groupe parent GroupbyMonth).

Par exemple, pour une région de données avec un groupe parent nommé Year, son groupe enfant nommé Month et son groupe enfant nommé Day (3 niveaux imbriqués). L'expression =Previous(Sum(Fields!Sales.Value,"Day"),"Year") d'une ligne associée au groupe Day retourne la valeur des ventes réalisées le même jour du même mois de l'année précédente.

Code

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

Historique des modifications

Mise à jour du contenu

La valeur précédente d'une référence de champ est valide uniquement dans un groupe de détails.