Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
collection.orderBy( )
|
collection.orderBy ( {critério} ) -> Resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
critério | Texto, Collection, Inteiro longo |
![]() |
Texto: rota de propriedade com a qual vai ordernar a coleção Coleção: coleção de critérios de objetos intLong: ck ascending ou ck descending (valores escalares) |
|||||
Resultado | Collection |
![]() |
Cópia ordenada da coleção (cópia superficial) | |||||
O método collection.orderBy( ) devolve uma nova coleção que contenha todos os elementos da coleção na ordem especificada por criterio.
Este método devolve uma cópia superficial, o que significa que os objetos ou coleções em ambas coleções compartem a mesma referência. Se a coleção original for uma coleção compartida, a coleção devolvida também é uma coleção compartida.
Nota: este método não modifica a coleção original.
Se omitir o parâmetro criterio, o método ordena os valores escalares na coleção em ordem ascendente (outros tipos de elementos como objetos ou coleções forem devolvidas desordenadas). Pode modificar esta ordem automática passando as constantes ck ascending ou ck descending no parâmetro criterio (ver abaixo).
Também pode passar um parâmetro criterio para definir como devem ser ordenados os elementos da coleção. Três sintaxes são compatíveis para este parâmetro:
Constante | Tipo | Valor | Comentário |
ck ascending | Inteiro longo | 0 | Os elementos são ordenados de forma ascendente (pré-determinado) |
ck descending | Inteiro longo | 1 | Os elementos são ordenados em ordem descendente |
Se a coleção contiver elementos de diferentes tipos, primeiro são agrupados por tipo e são ordenados depois. Os tipos são devolvidos na ordem abaixo:
Ordenar uma coleção de números em ordem ascendente e descendente:
C_COLLECTION($c;$c2;$3)
$c:=New collection
For($vCounter;1;10)
$c.push(Random)
End for
$c2:=$c.orderBy(ck ascending)
$c3:=$c.orderBy(ck descending)
Ordenar uma coleção de objetos baseada em uma fórmula de texto com nomes de propriedade:
C_COLLECTION($c)
$c:=New collection
For($vCounter;1;10)
$c.push(New object("id";$vCounter;"value";Random))
End for
$c2:=$c.orderBy("value desc")
$c2:=$c.orderBy("value desc, id")
$c2:=$c.orderBy("value desc, id asc")
Ordenar uma coleção de objetos com uma rota de propriedade:
C_COLLECTION($c)
$c:=New collection
$c.push(New object("name";"Cleveland";"phones";New object("p1";"01";"p2";"02")))
$c.push(New object("name";"Blountsville";"phones";New object("p1";"00";"p2";"03")))
$c2:=$c.orderBy("phones.p1 asc")
Se quiser ordenar uma coleção de objetos utilizando uma coleção de objetos critério:
C_COLLECTION($crit;$c)
$crit:=New collection
$c:=New collection
For($vCounter;1;10)
$c.push(New object("id";$vCounter;"value";Random))
End for
$crit.push(New object("propertyPath";"value";"descending";True))
$crit.push(New object("propertyPath";"id";"descending";False))
$c2:=$c.orderBy($crit)
Ordenar com uma rota de propriedade:
C_COLLECTION($crit;$c)
$c:=New collection
$c.push(New object("name";"Cleveland";"phones";New object("p1";"01";"p2";"02")))
$c.push(New object("name";"Blountsville";"phones";New object("p1";"00";"p2";"03")))
$crit:=New collection(New object("propertyPath";"phones.p2";"descending";True))
$c2:=$c.orderBy($crit)
Produto: 4D
Tema: Coleções
Número
905251
Criado por: 4D v16 R6
Manual de linguagem 4D ( 4D v19)
Manual de linguagem 4D ( 4D v19.1)
Manual de linguagem 4D ( 4D v19.4)
Manual de linguagem 4D ( 4D v19.5)
Manual de linguagem 4D ( 4D v19.6)
Manual de linguagem 4D ( 4D v19.7)
Manual de linguagem 4D ( 4D v19.8)