Partilhar via


Funções do Report Builder - Função Multilookup num relatório paginado (Report Builder)

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:

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