DISTINCT ATTRIBUTE VALUES
DISTINCT ATTRIBUTE VALUES ( campoObjeto ; rota ; arrayValores )
Parâmetro | Tipo | Descrição | |
---|---|---|---|
campoObjeto | Field | → | Campo Objeto do qual obtém a lista de valores atributo distintos |
rota | Text | → | Rota do atributo cujos valores distintos deseja obter. |
arrayValores | Text array, Integer array, Boolean array, Date array, Time array | ← | Valores distintos na rota atributo |
Descrição
Tema: Arrays
O comando DISTINCT ATTRIBUTE VALUES cria e preenche o arrayValores com valores náo repetidos (únicos) procedentes do atributo rota no campo campoObjeto para a seleção atual da tabela a que pertence o campo. Se campoObjeto não for um campo de objeto indexado, um erro é devlvido.
Passe em rota uma rota atributo válida. Utilize a notação ponto padrão para definir rotas a atributos aninhados, por exemplo "empresa.endereço.numero". Lembre que os nomes de atributos objeto são sensíveis às maiúsculas e minúsculas.
O array que passou em arrayValores deve ser do mesmo tipo que o atributo rota passado como parâmetro, do contrário o array volta ser digitado. Só se admitem os seguintes tipos de arrays: numérico, texto, data e hora (os valores devem ser escalar: ponteiros, objetos, blobs ou imagens não são suportados).
Depois da chamada, o tamanho do array é igual ao número de valores diferentes que se encontram na seleção. O comando não muda a seleção atual ou o registro atual.
Usar a propriedade virtual comprimento
Pode usar a propriedade virtual "comprimento" com este comando. Está automaticamente disponível para todos os atributos do tipo array e oferece o tamanho do array, ou seja, o número de elementos contidos pelo array. Esta propriedade foi criada para ser usada em pesquisas (ver QUERY BY ATTRIBUTEQUERY BY ATTRIBUTE). Pode também ser usada com o comando DISTINCT ATTRIBUTE VALUES para obter os diversos tamanhos de array para um atributo.
Exemplo
Se seu banco de dados contiver um campo objeto [Customer]full_Data (indexado) com 12 registros:
Se executar este código:
ARRAY LONGINT(aLAges;0)
ALL RECORDS([Customer])
//obtém os valores distintos para o atributo "age"
DISTINCT ATTRIBUTE VALUES([Customer]full_Data;"age";aLAges)
O array aLAges obtém os seguintes 9 elementos:
//aLAges{1}=33
//aLAges{2}=35
//aLAges{3}=36
//aLAges{4}=40
//aLAges{5}=42
//aLAges{6}=44
//aLAges{7}=52
//aLAges{8}=54
//aLAges{9}=60