Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
collection.orderBy( )
|
collection.orderBy ( {Kriterium} ) -> Funktionsergebnis | ||||||||
Parameter | Typ | Beschreibung | ||||||
Kriterium | Text, Collection, Lange Ganzzahl |
![]() |
Text: Eigenschaftspfad(e) zum Sortieren der Collection Collection: Collection der Kriterium Objekte Lange Ganzzahl: ck ascending oder ck descending (skalare Werte) |
|||||
Funktionsergebnis | Collection |
![]() |
Sortierte Kopie der Collection (flache Kopie) | |||||
Die Funktion collection.orderBy( ) sortiert die Elemente der Collection und gibt eine neue sortierte Collection zurück.
Diese Funktion gibt eine flache Kopie (shallow copy) zurück, d.h. Objekte oder Collections der beiden Collections nutzen dieselbe Referenz. Ist die ursprüngliche Collection eine shared collection, ist die zurückgegebene Collection ebenfalls eine shared collection.
Hinweis: Diese Funktion ändert nicht die ursprüngliche Collection.
Ohne den Parameter Kriterium sortiert die Funktion nur skalare Werte der Collection in aufsteigender Reihenfolge, d.h. andere Elementtypen wie Objekte oder Collections werden unsortiert zurückgegeben. Für eine andere Sortierung können Sie im Parameter Kriterium entweder die Konstante ck ascending oder ck descending übergeben (siehe unten).
Über den Parameter Kriterium können Sie auch definieren, wie Collection Elemente sortiert werden. Es gibt drei Syntaxarten:
Konstante | Typ | Wert | Kommentar |
ck ascending | Lange Ganzzahl | 0 | Elemente in aufsteigender Reihenfolge sortieren (Standard) |
ck descending | Lange Ganzzahl | 1 | Elemente in absteigender Reihenfolge sortieren |
Enthält die Collection Elemente verschiedener Typen, werden sie zuerst nach Typ gruppiert und anschließend sortiert. Für die Typen gilt folgende Reihenfolge:
Eine Collection mit Zahlen in aufsteigender und absteigender Reihenfolge sortieren:
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)
Eine Collection mit Objekten nach einer Textformel mit Eigenschaftennamen sortieren:
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")
Eine Collection mit Objekten über einen Eigenschaftspfad sortieren:
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")
Eine Collection mit Objekten über eine Collection mit Kriterium Objekten sortieren:
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)
Mit einem Eigenschaftspfad sortieren:
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)
Produkt: 4D
Thema: Collections
Nummer:
905251
Erstellt: 4D v16 R6
4D Programmiersprache ( 4D v19)
4D Programmiersprache ( 4D v19.1)
4D Programmiersprache ( 4D v19.4)
4D Programmiersprache ( 4D v19.5)
4D Programmiersprache ( 4D v19.6)
4D Programmiersprache ( 4D v19.7)
4D Programmiersprache ( 4D v19.8)