Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: Construtor de Relatórios da Microsoft (SSRS)
Designer de Relatórios
do Power BI no SQL Server Data Tools
Devolve o conjunto de valores de primeira correspondência para o conjunto especificado de nomes de um conjunto de dados que contém pares nome/valor num relatório paginado.
Observação
Você pode criar e modificar arquivos de definição de relatório paginado (.rdl) no Construtor de Relatórios da Microsoft, no Construtor de Relatórios do Power BI e no Designer de Relatórios no SQL Server Data Tools.
Sintaxe
Multilookup(source_expression, destination_expression, result_expression, dataset)
Parâmetros
source_expression
(VariantArray) Uma expressão avaliada no âmbito atual e que especifica o conjunto de nomes ou chaves a consultar. Por exemplo, para um parâmetro multivalor, =Parameters!IDs.value.
destination_expression
(Variante) Uma expressão que é avaliada para cada linha de um conjunto de dados e que especifica o nome ou a chave a corresponder. Por exemplo, =Fields!ID.Value.
result_expression
(Variante) Uma expressão avaliada para a linha no conjunto de dados onde source_expression = destination_expression, e que especifica o valor a recuperar. Por exemplo, =Fields!Name.Value.
dataset
Uma constante que especifica o nome de um conjunto de dados no relatório. Por exemplo, "Cores".
Devolução
Retorna um VariantArray, ou Nada se não houver correspondência.
Observações
Utilize Multilookup para recuperar um conjunto de valores de um conjunto de dados para pares de nome e valor onde cada par tem uma relação de 1-para-1. MultiLookup é equivalente a chamar Lookup para um conjunto de nomes ou chaves. Por exemplo, para um parâmetro multivalor baseado em identificadores de chave primária, pode usar Multilookup numa expressão numa caixa de texto numa tabela para recuperar valores associados de um conjunto de dados que não está ligado ao parâmetro ou à tabela.
O Multilookup faz o seguinte:
Avalia a expressão de origem no âmbito atual e gera um array de objetos variantes.
Para cada objeto no array, chama a Função de Pesquisa (Construtor de Relatórios e SSRS) e adiciona o resultado ao array de retorno.
Devolve o conjunto de resultados.
Para recuperar um único valor de um conjunto de dados com pares nome-valor para um nome especificado onde existe uma relação 1-para-1, use a Função de Pesquisa (Construtor de Relatórios e SSRS). Para recuperar múltiplos valores de um conjunto de dados com pares nome-valor para um nome que tenha uma relação de um para muitos, use a Função LookupSet (Construtor de Relatórios e SSRS).
Aplicam-se as seguintes restrições:
Multilookup é avaliado depois que todas as expressões de filtro são aplicadas
Apenas um nível de consulta é suportado. Uma expressão de origem, destino ou resultado não pode incluir uma referência a uma função de consulta.
As expressões de origem e destino devem ser avaliadas para o mesmo tipo de dado.
Expressões de origem, destino e resultado não podem incluir referências a variáveis de relatório ou de grupo.
Multilookup não pode ser usado como expressão para os seguintes itens do relatório:
Strings de ligação dinâmicas para uma fonte de dados.
Campos calculados num conjunto de dados.
Consultar parâmetros num conjunto de dados.
Filtros num conjunto de dados.
Reporte os parâmetros.
A propriedade Report.Language.
Para mais informações, consulte Aggregate Functions Reference (Report Builder e SSRS) e Expression Scope for Totais, Aggregates e Coleções Incorporadas (Report Builder e SSRS).
Examples
A. Use a função MultiLookup
Assuma que um conjunto de dados chamado "Categoria" contém 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 e o nome da categoria, conforme mostrado na tabela seguinte.
| ID | Nome |
|---|---|
| 1 | Acessórios |
| 2 | Bicicletas |
| 3 | Vestuário |
| 4 | Components |
Para consultar os nomes que correspondem à lista de identificadores, use Multilookup. Deves primeiro dividir a lista num array de strings, chamar o Multilookup para recuperar os nomes das categorias e concatenar os resultados numa string.
A expressão seguinte, quando colocada numa caixa de texto numa região de dados associada ao conjunto de dados da Categoria, mostra "Bicicletas, Componentes, Bicicletas, Acessórios":
=Join(MultiLookup(Split(Fields!CategoryList.Value,","),
Fields!CategoryID.Value,Fields!CategoryName.Value,"Category")),
", ")
B. Use MultiLookup com parâmetro multivalorado
Assuma que um conjunto de dados ProductColors contém um campo identificador de cor ColorID e um campo de valor de cor Color, como mostrado na tabela seguinte.
| ColorID | Cor |
|---|---|
| 1 | Red |
| 2 | Blue |
| 3 | Green |
Assuma que o parâmetro multivalor MyColors não está ligado a um conjunto de dados pelos seus valores disponíveis. Os valores padrão do parâmetro são definidos para 2 e 3. A expressão seguinte, quando colocada numa caixa de texto numa tabela, concatena os múltiplos valores selecionados para o parâmetro numa lista separada por vírgulas e mostra "Azul, Verde".
=Join(MultiLookup(Parameters!MyColors.Value,Fields!ColorID.Value,Fields!Color.Value,"ProductColors"),", ")