MULTI SORT ARRAY

4D - Documentation   Français   English   German   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 2004 (Geändert)


MULTI SORT ARRAY (Array{; Sortieren}{; Array2; Sortieren2; ...; ArrayN; SortierenN})

ParameterTypBeschreibung
ArrayArrayZu sortierende Array(s)
Sortieren> oder <> aufsteigend sortieren oder
< absteigend sortieren
Ohne Angabe = keine Sortierung

MULTI SORT ARRAY (ZeigerArrayName; SortArrayName)

ParameterTypBeschreibung
ZeigerArrayNameZeiger ArrayArray der Array Zeiger
SortArrayNameLange Ganzzahl ArraySortierfolge Array(1 = aufsteigend,
-1 = absteigend,
0 = Anpassung an vorige Sortierung)

Beschreibung

Der Befehl MULTI SORT ARRAY sortiert einen Satz Arrays auf mehreren Ebenen. Das ist besonders hilfreich bei gruppierten rollbaren Bereichen in Formularen.

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 eineunbegrenzte Anzahl an Paaren übergeben (Array;> oder <) und/oder nur Arrays. Alle als Parameter übergebenen Arrays werden aufeinander abgestimmt sortiert.

Sie können Arrays jeder Art übergeben mit Ausnahme von Zeigern oder Bildern.Sie können nach einem Element in einem zweidimensionalen Array (z.B. ein2DArray{$vlDiesesElement}) sortieren, jedoch nicht nach dem 2D Array selbst, z.B. ein2DArray).

Wollen Sie den Inhalt eines Array als Sortierkriterium zu verwenden, übergeben Sie den Parameter Sortieren. Der Wert des Parameter (> 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.

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

Hinweise:

Arrays vom Typ Zeiger oder Bild lassen sich nicht sortieren. Sie können ein Element eines zweidimensionalen Array (z.B. a2DArray{$vlThisElement}) sortieren, jedoch nicht das 2D Array selbst (z.B. a2DArray).

Jedes Element des Array ZeigerArrayName muss eine Entsprechung im Array SortArrayName haben. Deshalb müssen beide Arrays exakt dieselbe Anzahl Elemente haben.

Beispiele

1. 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;>)

2. 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;>).

Referenz

ORDER BY, SELECTION TO ARRAY, SORT ARRAY.

Anwendung des Befehls

Sort Multiple Arrays


4D - Documentation   Français   English   German   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next