Función Lookup (Generador de informes 3.0 y SSRS)

Devuelve el primer valor coincidente para el nombre especificado de un conjunto de datos que contiene pares nombre/valor.

Nota

Puede crear y modificar las definiciones de informe (.rdl) en el Generador de informes 3.0 y en el Diseñador de informes en Business Intelligence Development Studio. Cada entorno de creación proporciona varias maneras de crear, abrir y guardar informes y elementos relacionados. Para obtener más información, vea la información sobre el diseño de informes en el Generador de informes 3.0 y el Administrador de informes (SSRS) en el sitio web microsoft.com.

Sintaxis

Lookup(source_expression, destination_expression, result_expression, dataset)

Parámetros

  • source_expression
    (Variant) Una expresión que se evalúa en el ámbito actual y que especifica el nombre o la clave que se buscará. Por ejemplo, =Fields!ProdID.Value.

  • destination_expression
    (Variant) Una expresión que se evalúa para cada fila de un conjunto de datos y que especifica el nombre o la clave que se hará coincidir. Por ejemplo, =Fields!ProductID.Value.

  • result_expression
    (Variant) Una expresión que se evalúa para la fila del conjunto de datos donde source_expression = destination_expression y que especifica el valor que se recuperará. Por ejemplo, =Fields!ProductName.Value.

  • dataset
    Una constante que especifica el nombre de un conjunto de datos del informe. Por ejemplo, "Productos".

Devolución

Devuelve Variant o Nothing si no hay ninguna coincidencia.

Comentarios

Use Lookup para recuperar el valor del conjunto de datos especificado correspondiente a un par nombre/valor donde hay una relación de uno a uno. Por ejemplo, para un campo ID de una tabla, puede usar Lookup para recuperar el campo Name correspondiente de un conjunto de datos que no está enlazado a la región de datos.

Lookup realiza las operaciones siguientes:

  • Evalúa la expresión de origen en el ámbito actual.

  • Evalúa la expresión de destino para cada fila del conjunto de datos especificado una vez aplicados los filtros, según la intercalación del conjunto de datos especificado.

  • En la primera coincidencia de las expresiones de origen y de destino, evalúa la expresión de resultado para dicha fila del conjunto de datos.

  • Devuelve el valor de la expresión de resultado.

Para recuperar varios valores para un único nombre o campo de clave donde hay una relación de uno a varios, use Función LookupSet (Generador de informes 3.0 y SSRS). Para llamar a Lookup para un conjunto de valores, use Función Multilookup (Generador de informes 3.0 y SSRS).

Se aplican las siguientes restricciones:

  • Se evalúa Lookup después de aplicar todas las expresiones de filtro.

  • Solo se admite un nivel de búsqueda. Un origen, un destino o una expresión de resultado no pueden incluir una referencia a una función de búsqueda.

  • Las expresiones de origen y de destino deben dar el mismo tipo de datos. El tipo de devolución es el mismo que el tipo de datos de la expresión de resultado evaluada.

  • Las expresiones de origen, destino y resultado no pueden incluir referencias a variables de informe o de grupo.

  • Lookup no se puede usar como una expresión para los siguientes elementos de informe:

    • Cadenas de conexión dinámicas para un origen de datos.

    • Campos calculados de un conjunto de datos.

    • Parámetros de consulta de un conjunto de datos.

    • Filtros de un conjunto de datos.

    • Parámetros de informe.

    • Propiedad Report.Language.

Para obtener más información, vea Referencia a funciones de agregado (Generador de informes 3.0 y SSRS) y Descripción del ámbito de expresión para totales, agregados y colecciones integradas (Generador de informes 3.0 y SSRS).

Ejemplo

En el ejemplo siguiente, se supone que una tabla está enlazada a un conjunto de datos que incluye un campo para el identificador de producto ProductID. Un conjunto de datos independiente denominado "Product" contiene el identificador de producto ID y el nombre de producto Name.

En la expresión siguiente, Lookup compara el valor de ProductID con ID en cada fila del conjunto de datos denominado "Product" y, cuando se encuentra una coincidencia, devuelve el valor del campo Name para dicha fila.

=Lookup(Fields!ProductID.Value, Fields!ID.Value, Fields!Name.Value, "Product")