Função Multilookup (Construtor de Relatórios 3.0 e SSRS)

Retorna o conjunto de primeiros valores correspondentes para o conjunto de nomes especificado de um conjunto de dados que contém pares de nome/valor.

ObservaçãoObservação

É possível criar e modificar definições de relatórios (.rdl) no Report Builder 3.0 e no Designer de Relatórios no Business Intelligence Development Studio. Cada ambiente de criação fornece diferentes maneiras de criar, abrir e salvar relatórios e itens relacionados. Para obter mais informações, consulte Projetando e implementando relatórios usando o Designer de Relatórios (Reporting Services) na Web em microsoft.com.

Sintaxe

Multilookup(source_expression, destination_expression, result_expression, dataset)

Parâmetros

  • source_expression
    (VariantArray) Uma expressão que é avaliada no escopo atual e que especifica o conjunto de nomes ou chaves para procurar. Por exemplo, para um parâmetro de vários valores, =Parameters!IDs.value.

  • destination_expression
    (Variant) Uma expressão que é avaliada para cada linha em um conjunto de dados e que especifica o nome ou a chave para correspondência. Por exemplo, =Fields!ID.Value.

  • result_expression
    (Variant) Uma expressão que é avaliada para a linha no conjunto de dados em que source_expression = destination_expression e que especifica o valor a ser recuperado. Por exemplo, =Fields!Name.Value.

  • dataset
    Uma constante que especifica o nome do conjunto de dados no relatório. Por exemplo, "Colors".

Retorno

Retorna VariantArray ou Nothing se não houver correspondência.

Comentários

Use Multilookup para recuperar um conjunto de valores de um conjunto de dados para os pares nome/valor em que cada par tem uma relação de 1 para 1. MultiLookup é o equivalente a chamar Lookup para um conjunto de nomes ou chaves. Por exemplo, para um parâmetro de vários valores que é baseado em identificadores de chave primária, você pode usar Multilookup em uma expressão em uma caixa de texto de uma tabela para recuperar valores associados de um conjunto de dados que não está associado ao parâmetro ou à tabela.

Multilookup faz o seguinte:

Para recuperar um valor único de um conjunto de dados com pares de nome/valor para um nome especificado em que exista uma relação de 1 para 1, use Função Lookup (Construtor de Relatórios 3.0 e SSRS). Para recuperar vários valores de um conjunto de dados com pares de nome/valor para um nome em que exista uma relação de 1 para muitos, use Função LookupSet (Construtor de Relatórios 3.0 e SSRS).

As seguintes restrições são aplicadas:

  • Multilookup é avaliado depois que todas as expressões de filtro são aplicadas

  • Só há suporte para um nível de pesquisa. Uma expressão de origem, destino ou resultado não pode incluir uma referência a uma função de pesquisa.

  • Expressões de origem e destino devem ser avaliadas como o mesmo tipo de dados.

  • Expressões de origem, destino e resultado não podem incluir referências a variáveis de relatório ou grupo.

  • Multilookup não pode ser usado como uma expressão para os seguintes itens de relatório:

    • Cadeias de conexão dinâmicas para uma fonte de dados.

    • Campos calculados em um conjunto de dados.

    • Parâmetros de consulta em um conjunto de dados.

    • Filtros em um conjunto de dados.

    • Parâmetros de relatório.

    • A propriedade Report.Language.

Para obter mais informações, consulte Referência de funções de agregação (Construtor de Relatórios 3.0 e SSRS) e Compreendendo o escopo das expressões para totais, agregações e coleções internas (Construtor de Relatórios 3.0 e SSRS).

Exemplo

Suponha que um conjunto de dados denominado "Category" contenha o campo CategoryList, que é um campo que contém uma lista separada por vírgulas de identificadores de categoria; por exemplo, "2, 4, 2, 1".

O conjunto de dados CategoryNames contém o identificador de categoria e o nome da categoria, como mostra a tabela a seguir.

ID

Nome

1

Accessories

2

Bikes

3

Clothing

4

Components

Para procurar os nomes que correspondem à lista de identificadores, use Multilookup. Você primeiro deve dividir a lista em uma matriz de cadeia de caracteres, chamar Multilookup para recuperar os nomes de categoria e concatenar os resultados em uma cadeia de caracteres.

A expressão a seguir, quando colocada em uma caixa de texto em uma região de dados associada ao conjunto de dados Category, exibe "Bikes, Components, Bikes, Accessories":

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

Suponha que um conjunto de dados ProductColors contenha um campo identificador de cor ColorID e um campo de valor de cor Color, como mostra a tabela a seguir.

ColorID

Color

1

Red

2

Blue

3

Green

Suponha que o parâmetro de vários valores MyColors não esteja associado a um conjunto de dados para obter seus valores disponíveis. Os valores padrão para o parâmetro estão definidos como 2 e 3. A expressão a seguir, quando colocada em uma caixa de texto em uma tabela, concatena os vários valores selecionados para o parâmetro em uma lista separada por vírgulas e exibe "Blue, Green".

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