Fonction Lookup (Générateur de rapports version 3.0 et SSRS)
Retourne la première valeur correspondante pour le nom 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
Lookup(source_expression, destination_expression, result_expression, dataset)
Paramètres
source_expression
(Variant) Une expression évaluée dans l'étendue actuelle et qui spécifie le nom ou la clé à rechercher. Par exemple, =Fields!ProdID.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!ProductID.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!ProductName.Value.dataset
Constante qui spécifie le nom d'un dataset dans le rapport. Par exemple, « Products ».
Return
Retourne une valeur Variant, ou Nothing si aucune correspondance n'est trouvée.
Notes
Utilisez Lookup pour récupérer la valeur du dataset spécifié pour une paire nom/valeur où il y a une relation un-à-un. Par exemple, pour un champ d'ID dans une table, vous pouvez utiliser Lookup pour récupérer le champ Name correspondant d'un dataset qui n'est pas lié à la région de données.
La fonction Lookup effectue les actions suivantes :
Évalue l'expression source dans l'étendue actuelle.
Évalue l'expression de destination pour chaque ligne du dataset spécifié après avoir appliqué les filtres, en fonction du classement du dataset spécifié.
Pour la première correspondance des expressions source et de destination, évalue l'expression de résultat pour cette ligne dans le dataset.
Renvoie la valeur d'expression de résultat.
Pour récupérer plusieurs valeurs pour un champ de clé ou de nom unique où il y a une relation un à plusieurs, utilisez Fonction LookupSet (Générateur de rapports version 3.0 et SSRS). Pour appeler Lookup pour un jeu de valeurs, utilisez Fonction Multilookup (Générateur de rapports version 3.0 et SSRS).
Les restrictions suivantes s'appliquent :
Lookup 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. Le type retourné est identique au type de données de l'expression de résultat évaluée.
Les expressions source, de destination et de résultat ne peuvent pas inclure de références à des variables de groupe ou de rapport.
Lookup 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
Dans l'exemple suivant, supposez qu'une table est liée à un dataset qui inclut un champ pour l'identificateur de produit ProductID. Un dataset distinct nommé « Product » contient l'identificateur de produit correspondant ID et le nom de produit Name.
Dans l'expression suivante, Lookup compare la valeur de ProductID à ID sur chaque ligne du dataset nommé « Product » et, lorsqu'une correspondance est trouvée, renvoie la valeur du champ Name pour cette ligne.
=Lookup(Fields!ProductID.Value, Fields!ID.Value, Fields!Name.Value, "Product")
Voir aussi