Partilhar via


Função de ER LISTDISTINCT

Importante

Some or all of the functionality noted in this article is available as part of a preview release. The content and the functionality are subject to change. For more information about preview releases, see Service update availability.

A função LISTDISTINCT calcula a expressão especificada como seletor para cada registo da lista especificada. Devolve um novo valor Lista de registos que contém um único registo para cada valor do seletor único.

Sintaxe

LISTDISTINCT (list, selector)

Argumentos

list: Lista de registos

O caminho válido de uma origem de dados do tipo de dados Lista de registos.

selector: Tipo de dados primitivos

Uma expressão válida utilizada para calcular um valor do seletor para cada registo na lista especificada.

Os seguintes tipos de dados são suportados para este parâmetro:

  • Booleano
  • Data
  • DateTime
  • GUID
  • Número Inteiro
  • Int64
  • Real
  • Cadeia

Valores de retorno

Lista de registos

A lista de registos resultante.

Notas de utilização

A estrutura da lista criada corresponde à estrutura da lista especificada.

O mesmo valor do seletor pode ser calculado para vários registos na lista especificada. Neste caso, os valores de campo do registo correspondente na lista criada são iguais aos valores do primeiro registo da lista especificada para a qual o valor do seletor é calculado.

A execução desta função é efetuada em qualquer origem de dados de Relatórios eletrónicos (ER) do tipo Lista de registos que esteja presente na memória.

A origem de dados GROUPBY também pode ser utilizada para gerar a lista de registos para a qual o seletor com valores distintos é calculado. Contudo, do ponto de vista do desempenho e do consumo de memória, é melhor utilizar a função LISTDISTINCT do que a origem de dados GROUPBY, porque a execução da função é efetuada na memória.

Exemplo

O exemplo seguinte mostra como pode obter a lista de números únicos de contas de clientes para os quais pelo menos uma fatura de venda ou uma fatura de projeto foi emitida durante um período específico.

  1. Introduza a origem de dados SalesInvoice do tipo Record list que se refere à tabela de aplicações CustInvoiceJour e filtra as faturas de venda para períodos específicos.

    O campo InvoiceAccount desta origem de dados devolve o número de conta de um cliente faturado.

  2. Introduza a origem de dados ProjectInvoice do tipo Record list que se refere à tabela de aplicações ProjInvoiceJour e filtra as faturas de projeto para períodos específicos.

    O campo InvoiceAccount desta origem de dados devolve o número de conta de um cliente faturado.

  3. Configure a origem de dados AllInvoices do tipo Calculated field que contém a expressão LISTJOIN(SalesInvoice, ProjectInvoice).

    Esta origem de dados devolve a lista associada de faturas de venda e faturas de projeto.

  4. Configure a origem de dados InvoicedCustomer do tipo Record list que contém a expressão LISTDISTINCT(AllInvoices, AllInvoices.InvoiceAccount).

    Esta origem de dados devolve uma nova lista que contém um único registo para cada cliente único que tenha sido faturado durante o período definido. O campo InvoiceAccount desta lista contém um número de conta de cliente.

Recursos adicionais

Funções de lista