Partager via


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

Retourne l’ensemble de valeurs de première correspondance pour l’ensemble spécifié de noms d’un jeu de données qui contient 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 façons de créer, d’ouvrir et d’enregistrer des rapports et des éléments associés. Pour plus d’informations, consultez Conception de rapports dans le Concepteur de rapports et le Générateur de rapports (SSRS) sur le web à microsoft.com.

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 l’ensemble 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 jeu de données et qui spécifie le nom ou la clé à mettre en correspondance. Par exemple : =Fields!ID.Value.

result_expression
(Variant) Expression évaluée pour la ligne dans le jeu de données où source_expression = destination_expression, et qui spécifie la valeur à récupérer. Par exemple : =Fields!Name.Value.

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

Retour

Retourne un VariantArray, ou Nothing s’il n’y a pas de correspondance.

Remarques

Permet Multilookup de récupérer un ensemble de valeurs à partir d’un jeu de données pour les paires nom-valeur où chaque paire a une relation de 1 à 1. MultiLookup équivaut à appeler Lookup 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 dans une zone de texte d’une table pour récupérer les valeurs associées d’un jeu de données qui n’est pas lié au paramètre ou à la table.

Multilookup effectue les opérations 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 la 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 dans un dataset avec les paires nom-valeur d’un nom spécifique, lorsqu’il existe une relation un-à-un, utilisez la Fonction Lookup (Générateur de rapports et SSRS). Pour récupérer plusieurs valeurs dans un dataset avec les paires nom-valeur d’un nom, lorsqu’il existe une relation un-à-plusieurs, utilisez une Fonction LookupSet (Générateur de rapports et SSRS).

Les restrictions suivantes s’appliquent :

  • Multilookup est évalué après l’application de toutes les expressions de filtre

  • 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 jeu de données appelé « Category » contient le champ CategoryList, qui est un champ 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 Accessoires
2 Vélos
3 Vêtements
4 Composants

Pour rechercher les noms correspondant à la liste des identificateurs, utilisez Multilookup. Vous devez d’abord fractionner la liste en tableau de chaînes, appeler Multilookup pour récupérer les noms des catégories et concaténer les résultats dans 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")),  
   ", ")  

Exemple :

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

Identifiant de couleur 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

Utilisation d'expressions dans les rapports (Générateur de rapport et SSRS)
Exemples d'expressions (Générateur de rapports 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)