Partilhar via


Função Multilookup (Construtor de Relatórios 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ção

Você pode criar e modificar definições de relatório (.rdl) no Construtor de Relatórios e no Designer de Relatórios no SQL Server Data Tools. Cada ambiente de criação fornece modos diferentes para criar, abrir e salvar relatórios e itens relacionados. Para obter mais informações, consulte Criando relatórios em Report Designer e Report Builder (SSRS) 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 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.

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

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:

  • Avalia a expressão de origem no escopo atual e gera uma matriz de objetos variantes.

  • Para cada objeto na matriz, chama Função Lookup (Construtor de Relatórios e SSRS) e adiciona o resultado à matriz de retorno.

  • Retorna o conjunto de resultados.

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

As restrições a seguir se aplicam:

  • 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, confira Referência de funções de agregação (Construtor de Relatórios e SSRS) e Escopo das expressões para totais, agregações e coleções internas (Construtor de Relatórios 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 Acessórios
2 Bikes
3 Clothing
4 Componentes

Para pesquisar 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 seguinte expressão, 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")),  
   ", ")  

Exemplo

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 Vermelho
2 Azul
3 Verde

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

Consulte Também

Uso de expressões em relatórios (Construtor de Relatórios e SSRS)
Exemplos de expressões (Construtor de Relatórios e SSRS)
Tipos de dados em expressões (Construtor de Relatórios e SSRS)
Escopo das expressões para totais, agregações e coleções internas (Construtor de Relatórios e SSRS)