Sortieren 
Sie können die Reihenfolge der Datensätze nach bestimmten Regeln ändern, indem Sie die ALV-Ausgabe sortieren. Dabei geben Sie an, welche Felder die Werte enthalten, die alphabetisch bzw. numerisch sortiert werden, und die somit die Reihenfolge aller Zeilen bestimmen.
Zur Sortierung können Sie folgende Einstellungen vornehmen:
Sortierungseinstellungen (auch Sortierbedingung genannt) eines Feldes erzeugen, holen und löschen
Sortierrichtung und Sortierreihenfolge festlegen
Gleiche Werte zusammenfassen
Sortieren eines Feldes verbieten
Sortieren durch Klick auf den Spaltentitel ermöglichen
Sortieren eines Feldes nach den Werten eines anderen
Registerkarte zum Sortieren ein- und ausblenden

Überblick über die Einstellungen zur Sortierung
Die Sortierung ist eine Eigenschaft eines Feldes in der ALV-Ausgabe (siehe Felder). Um die Sortierbedingung eines Feldes zu erzeugen, zu holen oder zu löschen, verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_SORT (implementierende Klasse CL_SALV_WD_FIELD).
Methoden zum Erzeugen, Holen und Löschen der Sortierbedingung
Funktion |
Methode |
Sortierbedingung holen |
GET_SORT_RULE |
Sortierbedingung erzeugen |
CREATE_SORT_RULE |
Sortierbedingung löschen |
DELETE_SORT_RULE |
Die Sortierbedingung eines Feldes ist repräsentiert durch ein Objekt der Klasse CL_SALV_WD_SORT_RULE.
Hinweis
Wenn Sie Ihrer ALV-Ausgabe eine neue Datentabelle mit neuer Struktur zuweisen, werden die Sortierbedingungen aller Felder automatisch gelöscht.
Sie können zu jeder einzelnen Sortierbedingung festlegen, ob Sie die Werte des Feldes aufsteigend (z. B. a, b, c) oder absteigend (z. B. c, b, a) sortieren möchten: Sie legen die Sortierrichtung fest.
Wenn Sie die ALV-Ausgabe nach mehreren Feldern sortieren, ändert sich das Ergebnis, je nachdem, in welcher Reihenfolge die Felder nacheinander sortiert werden. Standardmäßig werden die Felder in der Reihenfolge sortiert, in der Sie ihre Sortierbedingungen erzeugt haben. Sie können diese Reihenfolge ändern. Dazu weisen Sie dem Feld (bzw. seiner Sortierbedingung) eine Positionsnummer in der Sortierreihenfolge zu.
Um Sortierrichtung oder Sortierreihenfolge einer Sortierbedingung zu ändern, verwenden Sie Methoden der Klasse CL_SALV_WD_SORT_RULE.
Methoden zu Sortierrichtung und Sortierreihenfolge
Funktion |
Methode |
Sortierrichtung festlegen |
SET_SORT_ORDER |
Sortierrichtung holen |
GET_SORT_ORDER |
Position des Feldes innerhalb der Sortierreihenfolge festlegen |
SET_SORT_POSITION |
Position des Feldes innerhalb der Sortierreihenfolge holen |
GET_SORT_POSITION |
Darüber hinaus können Sie für ein Feld festlegen, in welcher Sortierrichtung seine Werte bevorzugt sortiert werden, wenn der Benutzer die dazugehörige Spalte sortiert.
Um die bevorzugte Sortierrichtung eines Feldes festzulegen, verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_SORT (implementierende Klasse CL_SALV_WD_FIELD).
Methoden zur bevorzugten Sortierrichtung
Funktion |
Methode |
Bevorzugte Sortierrichtung festlegen |
SET_INITIAL_SORT_ORDER |
Bevorzugte Sortierrichtung holen |
GET_INITIAL_SORT_ORDER |
Standardmäßig werden in einer sortierten ALV-Ausgabe im sortierten Feld gleiche Werte zu einem zusammengefasst: Die Werte sind gruppiert. Sie können festlegen, dass in jeder Zeile ein Wert steht, auch wenn sich dieser Wert nicht ändert. Dazu verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_SORT (implementierende Klasse CL_SALV_WD_FIELD).
Methoden zum Gruppieren von sortierten Werten
Funktion |
Methode |
Werte gruppieren/ Gruppierung aufheben |
SET_GROUPING_ALLOWED |
Prüfen, ob Werte gruppiert sind |
IS_GROUPING_ALLOWED |
Sie können für ein Feld gezielt das Sortieren verbieten. Dies hat folgende Auswirkungen:
Im Dialogfenster Einstellungen wird auf der Registerkarte Sortierung die entsprechende Spalte nicht mehr angeboten
Wenn Sie das Sortieren von Spalten durch Klick auf den Spaltentitel zulassen (siehe unten), ist diese Funktion für die entsprechende Spalte nicht verfügbar, die Pfeilikonen sind ausgeblendet.
Wenn Sie in Ihrer Anwendung für dieses Feld eine Sortierbedingung definiert haben, hat diese Einstellung in der ALV-Ausgabe keine Auswirkung.
Um das Sortieren eines Feldes zu verbieten, verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_SORT (implementierende Klasse CL_SALV_WD_FIELD).
Methoden zum Verbieten von Sortierungen
Funktion |
Methode |
Sortieren verbieten |
SET_SORT_ALLOWED |
Prüfen, ob Sortieren erlaubt ist |
IS_SORT_ALLOWED |
Sie können in den Spaltentiteln der ALV-Ausgabe kleine Pfeilikonen anzeigen, über die der Benutzer ganz einfach die Spalte aufsteigend oder absteigend sortieren kann.
Darüber hinaus können Sie zusätzlich festlegen, ob der Benutzer nur nach jeweils einer Spalte sortieren kann, oder ob er unter Zuhilfenahme der STRG-Taste mehrere Spalten sortiert.
Um das Sortieren durch Klick auf den Spaltentitel zu ermöglichen, verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_STD_FUNCTIONS (implementierende Klasse CL_SALV_WD_CONFIG_TABLE).
Methoden zum Sortieren durch Klick auf Spaltentitel
Funktion |
Methode |
Pfeilikonen in den Spaltentiteln einblenden |
SET_SORT_HEADERCLICK_ALLOWED |
Prüfen, ob Pfeilikonen in den Spaltentiteln eingeblendet sind |
IS_SORT_HEADERCLICK_ALLOWED |
Um zusätzlich dem Benutzer zu ermöglichen, mehrere Spalten durch Klick auf den Spaltentitel zu sortieren, verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_TABLE_SETTINGS (implementierende Klasse CL_SALV_WD_CONFIG_TABLE).
Methoden zum Sortieren mehrerer Spalten durch Klick auf Spaltentitel
Funktion |
Methode |
Sortieren mehrerer Spalten ermöglichen |
SET_MULTI_COLUMN_SORT |
Prüfen, ob Sortierung nach mehreren Spalten möglich ist |
GET_MULTI_COLUMN_SORT |
Sie können ein Feld angeben, nach dem das aktuelle Feld sortiert wird, wenn das Feld selbst nicht das gewünschte Ergebnis liefert. Dazu verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_COLUMN_SERVICE_REF (implementierende Klasse CL_SALV_WD_COLUMN).
Methoden zum Sortieren nach den Werten eines anderen Feldes
Funktion |
Methode |
Feldnamen des anderen Feldes festlegen |
SET_SORT_FIELDNAME |
Feldnamen des anderen Feldes holen |
GET_SORT_FIELDNAME |