Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
MULTI SORT ARRAY
|
MULTI SORT ARRAY ( ArrayName {; Sortieren}{; ArrayName2 ; Sortieren2 ; ... ; ArrayNameN ; SortierenN} ) | ||||||||
Parameter | Typ | Beschreibung | ||||||
ArrayName | Array |
![]() |
Zu sortierende Array(s) | |||||
Sortieren | Operator |
![]() |
">" aufsteigend sortieren oder "<" absteigend sortieren Ohne Angabe "aa" keine Sortierung |
|||||
MULTI SORT ARRAY ( ZeigerArrayName ; SortArrayName ) | ||||||||
Parameter | Typ | Beschreibung | ||||||
ZeigerArrayName | Array Zeiger |
![]() |
Array der Array Zeiger | |||||
SortArrayName | Array Lange Ganzzahl |
![]() |
Sortierfolge Array (1 = aufsteigend, -1 = absteigend, 0 = Anpassung an vorige Sortierung) | |||||
Der Befehl MULTI SORT ARRAY sortiert einen Satz Arrays auf mehreren Ebenen.
Der Befehl akzeptiert zwei Syntaxarten.
• Erste Syntax: MULTI SORT ARRAY (Array{; Sortieren}{; Array2; Sortieren2; ...; arrayN; SortierenN})
Dies ist die einfachste Syntax; hier übergeben Sie direkt die Namen der synchronisierten Arrays, auf die Sie eine Sortierung nach mehreren Kriterien anwenden wollen.
Sie können eine unbegrenzte Anzahl an Paaren übergeben (Array;> oder <) und/oder nur Arrays. Alle als Parameter übergebenen Arrays werden aufeinander abgestimmt sortiert.
Wollen Sie den Inhalt eines Array als Sortierkriterium zu verwenden, übergeben Sie den Parameter Sortieren. Der Wert des Parameters (> oder <) bestimmt, ob das Array in aufsteigender oder in absteigender Reihenfolge sortiert wird. Ist der Parameter Sortieren nicht angegeben, wird der Inhalt des Array nicht als Sortierkriterium verwendet.
Hinweis: Sie müssen mindestens ein Sortierkriterium übergeben, damit der Befehl funktioniert. Gibt es kein Sortierkriterium, wird ein Fehler generiert.
Die Sortierebenen richten sich nach der Reihenfolge, in welcher die Arrays im Befehl übergeben wurden. Die Position eines Array mit einem Sortierkriterium in der Syntax bestimmt seine Sortierebene.
• Zweite Syntax: MULTI SORT ARRAY (ZeigerArrayName; SortArrayName)
Diese Syntax ist komplexer und hilfreich bei generischer Entwicklung. Sie können z.B. eine generische Methode erstellen, um Arrays jeglichen Typs zu sortieren, ja sogar die Entsprechung eines generischen Befehls SORT ARRAY erstellen.
Der Parameter ZeigerArrayName enthält den Namen eines Arrays mit Array Zeigern; jedes Element dieses Arrays ist ein Zeiger auf ein zu sortierendes Array. Die Sortierung erfolgt in der Reihenfolge, wie die Array Zeiger in ZeigerArrayName definiert sind. Achtung: Alle Arrays, auf die ptrArrayName zeigt, müssen die gleiche Anzahl von Elementen haben.
Hinweis: ZeigerArrayName kann das Array eines lokalen ($ptrArrayName), Prozess (ZeigerArrayName) oder Interprozess (<>ZeigerArrayName) Zeigers sein.
Umgekehrt dürfen die Elemente dieses Array nur auf Arrays vom Typ Prozess oder Interprozess zeigen.
Der Parameter SortArrayName Parameter kann das Array eines lokalen ($ZeigerArrayName), Prozess (ZeigerArrayName) oder Interprozess (<>ZeigerArrayName) Zeigers sein.
Umgekehrt dürfen die Elemente dieses Array nur auf Arrays vom Typ Prozess oder Interprozess zeigen.
0 = Das Array wird nicht als Sortierkriterium verwendet, sondern muss passend zu den anderen Sortierungen sortiert werden.
1 = Aufsteigend sortieren.
-1 = Absteigend sortieren
Für jedes Element des Arrays ptrArrayName muss es ein entsprechendes Element des Arrays sortArrayName geben. Beide Arrays müssen also genau die gleiche Anzahl von Elementen haben.
Hinweise:
Folgendes Beispiel verwendet die 1. Syntax: Es erstellt vier Arrays und sortiert sie nach Stadt in aufsteigender Reihenfolge, dann nach Lohn in absteigender Reihenfolge mit den beiden letzten Arrays names_array und telNum_array, die mit dem vorigen Sortierkriterium synchronisiert wird:
ALL RECORDS([Employees])
SELECTION TO ARRAY([Employees]City;cities;[Employees]Salary;
salaries;[Employees]Name;names;[Employees]TelNum;telNums)
MULTI SORT ARRAY(cities;>;salaries;<;names;telNums)
Wollen Sie das Array Namen als 3. Sortierkriterium verwenden, fügen Sie nach dem Parameter names_array das Zeichen > oder < zu.
Beachten Sie, dass die Syntax:
MULTI SORT ARRAY(cities;>;salaries;names;telNums)
gleichbedeutend ist mit:
SORT ARRAY(cities;salaries;names;telNums;>)
Folgendes Beispiel verwendet die 2. Syntax: Es erstellt vier Arrays und sortiert sie nach Stadt (aufsteigend) und Firma (absteigend); die beiden letzten Arrays names_Array und telNum_Array werden an die vorigen Sortierkriterien angepasst:
ALL RECORDS([Employees])
SELECTION TO ARRAY([Employees]City;cities;[Employees]Company;
companies;[Employees]Name;names;[Employees]TelNum;telNums)
ARRAY POINTER(pointers_Array;4)
ARRAY LONGINT(sorts_Array;4)
pointers_Array{1}:=->cities
sorts_Array{1}:=1
pointers_Array{2}:=->companies
sorts_Array{2}:=-1
pointers_Array{3}:=->names
sorts_Array{3}:=0
pointers_Array{4}:=->telNums
sorts_Array{4}:=0
MULTI SORT ARRAY(pointers_Array;sorts_Array)
Wollen Sie als drittes Sortierkriterium ein Array mit Namen verwenden, müssen Sie im Element sorts_Array{3} den Wert 1 zuweisen. Sollen die Arrays nur nach der Stadt sortiert werden, übergeben Sie in den Elementen sorts_Array{2}, sorts_Array{3} und sorts_Array{4} den Wert 0 (Null). Auf diese Weise erhalten Sie ein identisches Ergebnis zu SORT ARRAY(cities;companies;names;telNums;>).
Produkt: 4D
Thema: Arrays
Nummer:
718
Geändert: 4D 2004
4D Programmiersprache ( 4D v20 R7)