Funções do Construtor de Relatórios – função Lookup em um relatório paginado (Construtor de Relatórios)

Aplica-se a: Microsoft Report Builder (SSRS) Power BI Report Builder Report Designer no SQL Server Data Tools

Lookup retorna o primeiro valor correspondente para o nome especificado de um conjunto de dados que contém pares de nome/valor em um 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, Construtor de Relatórios do Power BI e no Designer de Relatórios no SQL Server Data Tools.

Sintaxe

Lookup(source_expression, destination_expression, result_expression, dataset)  

Parâmetros

Parâmetro Definição
source_expression (Variant) Uma expressão avaliada no escopo atual e que especifica o nome ou chave para procurar. Por exemplo, =Fields!ProdID.Value.
destination_expression (Variant) Uma expressão avaliada para cada linha em um conjunto de dados e que especifica o nome ou a chave para correspondência. Por exemplo, =Fields!ProductID.Value.
result_expression (Variant) Uma expressão avaliada para a linha do conjunto de dados em que source_expression = destination_expression e que especifica o valor a ser recuperado. Por exemplo, =Fields!ProductName.Value.
conjunto de dados Uma constante que especifica o nome do conjunto de dados no relatório. Produtos pode ser um exemplo de um conjunto de dados a ser usado.

Return

Lookup retorna Variant ou Nothing se não houver correspondência.

Comentários

Use Lookup para recuperar o valor do conjunto de dados especificado de um par nome/valor em que há uma relação de 1 para 1. Por exemplo, para um campo de ID em uma tabela, você pode usar Lookup para recuperar o Nome correspondente de um conjunto de dados que não esteja associado à região de dados.

Lookup faz o seguinte:

  • Avalia a expressão de origem no escopo atual.

  • Avalia a expressão de destino para cada linha do conjunto de dados especificado depois que são aplicados filtros, com base na ordenação do conjunto de dados especificado.

  • Na primeira correspondência da expressão de origem e destino, avalia a expressão resultante para aquela linha no conjunto de dados.

  • Retorna o valor da expressão resultante.

Para recuperar múltiplos valores para um único nome ou campo-chave em que há uma relação de 1 para muitos, use as funções do Report Builder — função LookupSet em um relatório paginado (Report Builder). Para chamar Lookup para um conjunto de valores, use Funções do Report Builder – função Multilookup em um relatório paginado (Report Builder).

As restrições a seguir se aplicam:

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

  • Só um nível de pesquisa tem suporte. 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. O tipo de retorno é o mesmo que o tipo de dados da expressão resultante avaliada.

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

  • Lookup não pode ser usada 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 Funções do Report Builder – referência de funções de agregação em relatórios paginados (Report Builder) e Escopo de Expressão para Totais, Agregados e Coleções Internas (Report Builder).

Exemplo

No exemplo seguinte, suponha que a tabela esteja associada a um conjunto de dados que inclui um campo para o identificador de produto ProductID. Um conjunto de dados separado chamado Produto contém a ID do identificador de produto correspondente e o nome do produto.

Na expressão seguinte, Lookup compara o valor de ProductID com a ID em cada linha do conjunto de dados chamado Produto e, quando uma correspondência é localizada, retorna o valor do campo Nome para aquela linha.

=Lookup(Fields!ProductID.Value, Fields!ID.Value, Fields!Name.Value, "Product")