Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
ORDER BY ATTRIBUTE
|
ORDER BY ATTRIBUTE ( {Tabellenname ;} Objektfeld ; Attributpfad ; > oder < {; Objektfeld2 ; Attributpfad2 ; > oder <2 ; ... ; ObjektfeldN ; AttributpfadN ; > oder <N} {; *} ) | ||||||||
Parameter | Typ | Beschreibung | ||||||
Tabellenname | Tabelle |
![]() |
Tabelle, deren ausgewählte Datensätze sortiert werden sollen Ohne Angabe Haupttabelle |
|||||
Objektfeld | Objektfeld |
![]() |
Objektfeld mit dem Attribut zum Sortieren | |||||
Attributpfad | String |
![]() |
Name oder Pfad des Attributs zum Setzen der Sortierrichtung für jede Ebene | |||||
> oder < | Operator |
![]() |
Sortierrichtung für jede Ebene: > aufsteigend, < absteigend | |||||
* | Operator |
![]() |
Sortiermodus beibehalten | |||||
Der Befehl ORDER BY ATTRIBUTE sortiert (reorders) die Datensätze der aktuellen Auswahl von Tabellenname für den aktuellen Prozess nach dem Inhalt des Attributpfads von ObjektFeld. Ist die Sortierung abgeschlossen, wird der erste Datensatz der Auswahl zum aktuellen Datensatz.
Geben Sie den Parameter Tabellenname nicht an, bezieht sich der Befehl auf die Standardtabelle, falls angegeben. Sonst verwendet 4D die Tabelle des ersten Feldes, das als Parameter übergeben ist.
In Objektfeld übergeben Sie das Objektfeld, dessen Attribut sie für die Sortierung verwenden wollen. Dieses Feld kann zu Tabellenname gehören oder zu einer damit verknüpften Tabelle mit automatischer oder manueller Verknüpfung. In diesem Fall ist die Sortierung immer sequentiell.
In Attributpfad übergeben Sie den Pfad des Attributs, dessen Werte Sie zum Sortieren der Datensätze verwenden wollen, z.B. "children.girls.age".
Hinweise:
Enthält das Feldattribut Werte in verschiedenen Datentypen (z.B. Zahlen, Strings, Booleans), werden sie zuerst nach Typ, dann nach Wert gruppiert.
Ist der Wert des Feldattributs für einige Datensätze Null (z.B. der Attributwert ist Null oder Attributpfad existiert nicht im Feld) gilt folgendes:
Sie können die Auswahl nach einer oder mehreren Ebenen sortieren. Für jede Sortierebene geben Sie ein Objektfeld, einen Attributpfad und die Sortierrichtung > oder < an. Mit dem Symbol “größer als” (>) wird in aufsteigender Richtung sortiert, mit dem Symbol “kleiner als” (<) in absteigender Richtung. Geben Sie keine Sortierrichtung an, wird standardmäßig in aufsteigender Richtung sortiert.
Ist nur ein Feld angegeben (eine Sortierebene) und es ist indiziert, wird der Index für die Sortierung verwendet. Ist das Feld nicht indiziert oder gibt es mehrere Felder, wird die Sortierung sequentiell ausgeführt.
Bei Mehrfachsortierung (Sortierung über mehrere Felder) können Sie ORDER BY ATTRIBUTE so oft wie erforderlich aufrufen und den optionalen Parameter * setzen, außer für den letzten Aufruf von ORDER BY ATTRIBUTE, der dann den Sortiervorgang startet. Dieses Feature ist hilfreich zum Verwalten von Mehrfachsortierungen in angepassten Benutzeroberflächen. Sie können auch Aufrufe von ORDER BY ATTRIBUTE mit Aufrufen von ORDER BY kombinieren.
Hinweis: Mit dieser Syntax können Sie nur eine Sortierebene (Feld) pro Aufruf von ORDER BY ATTRIBUTE übergeben.
Unabhängig von der Art der Sortierung zeigt 4D automatisch eine Meldung mit einem Ablaufbalken, wenn der Sortiervorgang eine Zeit lang andauert. Diese Meldung lässt sich über die Befehle MESSAGES ON und MESSAGES OFF an- und abschalten. Erscheint der Ablaufbalken, kann der Benutzer auf die Schaltfläche Stop klicken, um die Sortierung zu unterbrechen. Ist die Sortierung abgeschlossen, wird OK auf 1 gesetzt. Wird sie unterbrochen, wird OK auf 0 (Null) gesetzt.
Die aktuelle Auswahl nach Alter (absteigend) und dann nach Name (aufsteigend) sortieren. Die Eingabereihenfolge ist:
// [Customer]OB_Info contents partial export {"LastName":"Giorgio","age":33,"client":true}, {"LastName":"Sarah","age":42,"client":true}, {"LastName":"Mikken","age":"Forty-six","client":true}, {"LastName":"Wesson","age":44,"client":true}, {"LastName":"Johnson","age":44,"client":false}, {"LastName":"Hamp","age":"Sixty","client":true}, {"LastName":"Smeldorf","age":33,"client":true}, {"LastName":"Martin","client":true], {"LastName":"Evan","age":36,"client":true}, {"LastName":"Collins","age":33,"client":true,"Sex":"female"}, {"LastName":"Garbando","age":60,"client":false,"Sex":"male"}, {"LastName":"Smeldorf","age":54,"client":true}, {"LastName":"Smith","age":42,"client":true}, {"LastName":"Jones","age":52,"client":true}, {"LastName":"Kerrey","age":44,"client":true}, {"LastName":"Gordini","client":true}, {"LastName":"Delaferme","age":54,"client":true}, {"LastName":"Belami","age":"Forty-six","client":true}, {"LastName":"Smeldorf","age":22,"client":true}, {"LastName":"Smeldorf","age":70,"client":true}
Mit dieser Anweisung:
ORDER BY ATTRIBUTE([Customer];[Customer]OB_Info;"age";<;[Customer]OB_Info;"LastName";>)
werden Datensätze in folgender Reihenfolge sortiert:
{"LastName":"Smeldorf","age":70,"client":true} {"LastName":"Garbando","age":60,"client":false,"Sex":"male"}, {"LastName":"Delaferme","age":54,"client":true}, {"LastName":"Smeldorf","age":54,"client":true}, {"LastName":"Jones","age":52,"client":true}, {"LastName":"Johnson","age":44,"client":false}, {"LastName":"Kerrey","age":44,"client":true}, {"LastName":"Wesson","age":44,"client":true}, {"LastName":"Sarah","age":42,"client":true}, {"LastName":"Smith","age":42,"client":true}, {"LastName":"Evan","age":36,"client":true}, {"LastName":"Collins","age":33,"client":true,"Sex":"female"}, {"LastName":"Giorgio","age":33,"client":true}, {"LastName":"Smeldorf","age":33,"client":true}, {"LastName":"Smeldorf","age":22,"client":true}, {"LastName":"Hamp","age":"Sixty","client":true}, //Stringwerte in Alter {"LastName":"Belami","age":"Forty-six","client":true}, //werden separat verwaltet {"LastName":"Mikken","age":"Forty-six","client":true} {"LastName":"Gordini","client":true}, //stehen am Ende, da {"LastName":"Martin","client":true}, //Alter null ist (fehlt)
Produkt: 4D
Thema: Suchen
Nummer:
1407
Erstellt: 4D v16 R2
4D Programmiersprache ( 4D v20 R7)