Partager via


Fonction Multilookup (Générateur de rapports et SSRS)

Retourne le jeu de valeurs de première correspondance pour le jeu de noms spécifié d'un dataset contenant des paires nom/valeur.

[!REMARQUE]

Vous pouvez créer et modifier des définitions de rapport (.rdl) dans le Générateur de rapports et dans le Concepteur de rapports dans SQL Server Data Tools. Chaque environnement de création offre différentes possibilités pour créer, ouvrir et enregistrer des rapports et des éléments connexes. Pour plus d'informations, consultez Conception de rapports dans le Concepteur de rapports et le Générateur de rapports (SSRS) sur le site Web Microsoft.

Syntaxe

Multilookup(source_expression, destination_expression, result_expression, dataset)

Paramètres

  • source_expression
    (VariantArray) Expression évaluée dans l'étendue actuelle et qui spécifie le jeu de noms ou de clés à rechercher. Par exemple, pour un paramètre à valeurs multiples, =Parameters!IDs.value.

  • destination_expression
    (Variant) Expression évaluée pour chaque ligne d'un dataset et qui spécifie le nom ou la clé de correspondance. Par exemple, =Fields!ID.Value.

  • result_expression
    (Variant) Expression évaluée pour la ligne du dataset où source_expression = destination_expression, et qui spécifie la valeur à récupérer. Par exemple, =Fields!Name.Value.

  • dataset
    Constante qui spécifie le nom d'un dataset dans le rapport. Par exemple, « Couleurs ».

Return

Retourne une valeur VariantArray, ou Nothing si aucune correspondance n'est trouvée.

Notes

Utilisez Multilookup pour récupérer un ensemble de valeurs d'un dataset pour les paires nom-valeur lorsqu'il existe une relation un-à-un pour chaque paire. MultiLookup équivaut à appeler Lookup pour un ensemble de noms ou de clés. Par exemple, pour un paramètre à valeurs multiples basé sur des identificateurs de clé primaire,vous pouvez utiliser Multilookup dans une expression d'une zone de texte d'une table pour récupérer des valeurs associées d'un dataset qui n'est pas lié au paramètre ou à la table.

La fonction Multilookup effectue les actions suivantes :

  • Elle évalue l'expression source dans l'étendue active et génère un tableau d'objets de type Variant.

  • Pour chaque objet du tableau, elle appelle Fonction Lookup (Générateur de rapports et SSRS) et ajoute le résultat au tableau de résultats.

  • Retourne le jeu de résultats.

Pour récupérer une valeur unique d'un dataset avec des paires nom-valeur pour un nom spécifié lorsqu'il existe une relation un à un, utilisez Fonction Lookup (Générateur de rapports et SSRS). Pour récupérer plusieurs valeurs d'un dataset avec des paires nom-valeur pour un nom lorsqu'il existe une relation un à plusieurs, utilisez Fonction LookupSet (Générateur de rapports et SSRS).

Les restrictions suivantes s'appliquent :

  • Multilookup est évalué après que toutes les expressions de filtre ont été appliquées.

  • Un seul niveau de recherche est pris en charge. Une expression source, destination ou de résultat ne peut pas inclure de référence à une fonction de recherche.

  • Les expressions source et de destination doivent correspondre au même type de données.

  • Les expressions source, de destination et de résultat ne peuvent pas inclure de références à des variables de groupe ou de rapport.

  • Multilookup ne peut pas être utilisé comme expression pour les éléments de rapport suivants :

    • des chaînes de connexion dynamiques pour une source de données ;

    • des champs calculés dans un dataset ;

    • des paramètres de requête dans un dataset ;

    • des filtres dans un dataset ;

    • des paramètres de rapport ;

    • la propriété Report.Language.

Pour plus d'informations, consultez Référence aux fonctions d'agrégation (Générateur de rapports et SSRS) et Étendue des expressions pour les totaux, les agrégats et les collections intégrées (Générateur de rapports et SSRS).

Exemple

Supposons qu'un dataset nommé « Category » comprend le champ CategoryList, qui contient une liste séparée par des virgules d'identificateurs de catégorie, par exemple « 2, 4, 2, 1 ».

Le dataset CategoryNames contient l'identificateur et le nom de catégorie, comme indiqué dans le tableau ci-dessous.

ID

Nom

1

Accessories

2

Bikes

3

Clothing

4

Components

Pour rechercher les noms correspondant à la liste d'identificateurs, utilisez Multilookup. Vous devez tout d'abord fractionner la liste en un tableau de chaînes, appeler Multilookup pour récupérer les noms des catégories, puis concaténer les résultats en une chaîne.

L'expression suivante, lorsqu'elle est placée dans une zone de texte dans une région de données liée au dataset Catégorie, affiche « Bicyclettes, Composants, Bicyclettes, Accessoires » :

=Join(MultiLookup(Split(Fields!CategoryList.Value,","),
   Fields!CategoryID.Value,Fields!CategoryName.Value,"Category")),
   ", ")

Supposons qu'un dataset ProductColors contient un champ d'identificateur de couleur ColorID et un champ de valeur de couleur Color, comme indiqué dans le tableau ci-dessous.

ColorID

Couleur

1

Rouge

2

Bleu

3

Vert

Supposons que le paramètre à valeurs multiples MyColors n'est pas lié à un dataset pour ses valeurs disponibles. Les valeurs par défaut du paramètre sont égales à 2 et 3. L'expression suivante, lorsqu'elle est placée dans une zone de texte d'un tableau, concatène les valeurs de sélection multiple pour le paramètre dans une liste séparée par des virgules et affiche « Bleu, Vert ».

=Join(MultiLookup(Parameters!MyColors.Value,Fields!ColorID.Value,Fields!Color.Value,"ProductColors"),", ")

Voir aussi

Référence

Exemples d'expressions (Générateur de rapports et SSRS)

Concepts

Utilisation d'expressions dans les rapports (Générateur de rapport et SSRS)

Types de données dans les expressions (Générateur de rapports et SSRS)

Étendue des expressions pour les totaux, les agrégats et les collections intégrées (Générateur de rapports et SSRS)