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 aplicadasSó 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)