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

Devuelve el conjunto de valores de primera coincidencia para el conjunto especificado de nombres a partir 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

Multilookup(source_expression, destination_expression, result_expression, dataset)

Parámetros

  • source_expression
    (VariantArray) Una expresión que se evalúa en el ámbito actual y que especifica el conjunto de nombres o claves que se buscará. Por ejemplo, para un parámetro de varios valores, =Parameters!IDs.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!ID.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!Name.Value.

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

Devolución

Devuelve VariantArray o Nothing si no hay ninguna coincidencia.

Comentarios

Use Multilookup para recuperar un conjunto de valores de un conjunto de datos para los pares nombre/valor donde cada par tiene una relación de uno a uno. MultiLookup es el equivalente de llamar a Lookup para un conjunto de nombres o claves. Por ejemplo, para un parámetro de varios valores que se base en identificadores de clave principal, puede usar Multilookup en una expresión de un cuadro de texto en una tabla para recuperar los valores asociados de un conjunto de datos que no esté enlazado al parámetro ni a la tabla.

Multilookup realiza las operaciones siguientes:

  • Evalúa la expresión de origen en el ámbito actual y genera una matriz de objetos de variantes.

  • Para cada objeto en la matriz, llama a Función Lookup (Generador de informes 3.0 y SSRS) y agrega el resultado a la matriz de devolución.

  • Devuelve el conjunto de resultados.

Para recuperar un único valor de un conjunto de datos con pares de nombre/valor para un nombre especificado donde hay una relación de uno a uno, use Función Lookup (Generador de informes 3.0 y SSRS). Para recuperar varios valores de un conjunto de datos con pares de nombre/valor para un nombre donde hay una relación de uno a varios, use Función LookupSet (Generador de informes 3.0 y SSRS).

Se aplican las siguientes restricciones:

  • Se evalúa Multilookup 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.

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

  • Multilookup 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

Suponga que un conjunto de datos denominado "Category" contiene el campo CategoryList, que es un campo que incluye una lista separada por comas de identificadores de categoría; por ejemplo, "2, 4, 2, 1".

El conjunto de datos CategoryNames contiene el identificador y el nombre de la categoría, tal como se muestra en la siguiente tabla.

Identificador

Nombre

1

Accessories

2

Bikes

3

Clothing

4

Components

Para buscar los nombres que corresponden a la lista de identificadores, use Multilookup. Primero debe dividir la lista en una matriz de cadenas, llamar a Multilookup para recuperar los nombres de categoría y concatenar los resultados en una cadena.

La expresión siguiente, cuando se coloca en un cuadro de texto en una región de datos enlazada al conjunto de datos Category, muestra "Bikes, Components, Bikes, Accessories":

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

Suponga que un conjunto de datos ProductColors contiene un campo de identificador de color ColorID y un campo de valor de color Color, como se muestra en la tabla siguiente.

ColorID

Color

1

Red

2

Blue

3

Green

Suponga que el parámetro de varios valores MyColors no está enlazado a un conjunto para sus valores disponibles. Los valores predeterminados para el parámetro están establecidos en 2 y 3. La siguiente expresión, cuando se coloca en un cuadro de texto en una tabla, concatena múltiples valores seleccionados para el parámetro en una lista separada por comas y muestra "Blue, Green".

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