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

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

Notes

Vous pouvez créer et modifier des définitions de rapports (.rdl) dans le Générateur de rapports version 3.0 et dans le Concepteur de rapports, dans Business Intelligence Development Studio. 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 version 3.0 (SSRS) sur le site Web Microsoft.

Syntaxe

Multilookup(source_expression, destination_expression, result_expression, dataset)

Paramètres

  • source_expression
    (VariantArray) Une 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) Une 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) Une 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 jeu de valeurs d'un dataset pour les paires nom-valeur où chaque paire possède une relation un à un. MultiLookup est l'équivalent d'appeler Lookup pour un jeu 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 des valeurs associées à partir d'un dataset qui n'est pas lié au paramètre ou à la table.

La fonction Multilookup effectue les actions suivantes :

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 version 3.0 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 version 3.0 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 version 3.0 et SSRS) et Présentation de l'étendue des expressions pour les totaux, les agrégats et les collections intégrées (Générateur de rapports version 3.0 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 les identificateurs et les noms de catégorie, comme indiqué dans le tableau ci-dessous.

Identificateur

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 dans 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"),", ")