Partilhar via


Função Lookup (Construtor de Relatórios 3.0 e SSRS)

Retorna o primeiro valor correspondente para o nome especificado de um conjunto de dados que contém pares de nome/valor.

ObservaçãoObservação

É possível criar e modificar definições de relatórios (.rdl) no Report Builder 3.0 e no Designer de Relatórios no Business Intelligence Development Studio. Cada ambiente de criação fornece diferentes maneiras de criar, abrir e salvar relatórios e itens relacionados. Para obter mais informações, consulte Projetando e implementando relatórios usando o Designer de Relatórios (Reporting Services) na Web em microsoft.com.

Sintaxe

Lookup(source_expression, destination_expression, result_expression, dataset)

Parâmetros

  • source_expression
    (Variant) Uma expressão que é avaliada no escopo atual e que especifica o nome ou chave para procurar. Por exemplo, =Fields!ProdID.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!ProductID.Value.

  • result_expression
    (Variant) Uma expressão que é 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!ProductName.Value.

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

Retorno

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

Comentários

Use Lookup para recuperar o valor do conjunto de dados especificado para um par de nome/valor onde 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 Name 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 foram aplicados filtros, com base no agrupamento 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 diversos valores para um único nome ou campo chave onde há uma relação de 1 para muitos, use Função LookupSet (Construtor de Relatórios 3.0 e SSRS). Para chamar Lookup para um conjunto de valores, use Função Multilookup (Construtor de Relatórios 3.0 e SSRS).

As seguintes restrições são aplicadas:

  • 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 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, consulte Referência de funções de agregação (Construtor de Relatórios 3.0 e SSRS) e Compreendendo o escopo das expressões para totais, agregações e coleções internas (Construtor de Relatórios 3.0 e SSRS).

Exemplo

No exemplo a seguir, digamos que a tabela esteja associada a um conjunto de dados que inclua 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 de produto Name.

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

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