Sie können die Reihenfolge der Datensätze nach bestimmten Regeln ändern, indem Sie die ALV-Ausgabe sortieren. Dabei geben Sie an, welche Spalten die Werte enthalten, die alphabetisch bzw. numerisch sortiert werden, und die somit die Reihenfolge aller Zeilen bestimmen.
Sie können bis zu neun Spalten angeben, nach denen die ALV-Ausgabe sortiert werden soll.
Datensätze, die in einer sortierten Spalte denselben Wert besitzen, bilden zusammen eine Gruppenstufe. Wenn sich dieser Wert zum nächsten Datensatz hin ändert, wird dies als Gruppenstufenwechsel bezeichnet.
Sie haben verschiedene Möglichkeiten, einen Gruppenstufenwechsel hervorzuheben.
Die Sortierungseinstellungen einer Spalte sind repräsentiert durch ein Objekt vom Typ CL_SALV_SORT. Die Gesamtheit aller Sortierungsobjekte ist repräsentiert durch ein Objekt vom Typ CL_SALV_SORTS.
Sie können über die Werte von numerischen Spalten Berechnungen anstellen. Standardmäßig werden hierzu alle Werte einer Spalte verwendet. Wenn Sie zusätzlich zum Gesamtergebnis der Berechnung Zwischenergebnisse benötigen, müssen die Zeilen hintereinander liegen, die die Teilwerte eines Zwischenergebnisses enthalten: Sie sortieren die ALV-Ausgabe. Das Sortieren ist somit Voraussetzung dafür, dass ALV Zwischenergebnisse ermitteln und anzeigen kann.
Zur Sortierung können Sie folgende Einstellungen vornehmen:
· Sortierungsobjekte holen
· Sortierungsobjekt erzeugen und löschen
· Sortierrichtung festlegen
· Spaltenreihenfolge der Sortierung festlegen
· Änderungen verbieten
· Gruppenstufenwechsel hervorheben
Für alle der folgenden Funktionen gilt:
Darstellungsart ALV-Werkzeug |
Klass. ABAP-Liste |
Fullscreen |
Im Container |
Einfache, zweidimensionale Tabelle |
Ja |
Ja |
Ja |
Hierarchisch-sequenzielle Liste |
Ja |
|
|
Baumstruktur |
|
Nein |
Nein |
In jeder ALV-Hauptklasse, in der Sortieren möglich ist, existiert die Methode GET_SORTS, die die Sortierungsobjekte aller Spalten der ALV-Ausgabe (Klasse CL_SALV_SORTS) zurückgibt. Über dieses Objekt erhalten Sie mit den Methoden GET bzw. GET_SORT das Sortierungsobjekt der gewünschten Spalte.
Methoden
Funktion |
Klasse |
Methode |
SORTS-Objekt holen |
CL_SALV_TABLE CL_SALV_HIERSEQ_TABLE |
GET_SORTS |
Alle Sortierungsobjekte holen |
CL_SALV_SORTS |
GET |
Alle Sortierungsobjekte einer Hierarchieebene holen |
CL_SALV_HIERSEQ_LEVEL |
GET_SORTS |
Bestimmtes Sortierungsobjekt holen |
CL_SALV_SORTS |
GET_SORT |
Prüfen, ob eine Spalte sortiert ist (ein Sortierungsobjekt existiert) |
IS_SORT_DEFINED |
Zu einer Spalte können Sie maximal ein Sortierungsobjekt erzeugen. Sie können die ALV-Ausgabe nach bis zu neun Spalten sortieren.
Sie können Sortierungsobjekte entweder einzeln, oder alle gemeinsam löschen.
Methoden
Funktion |
Klasse |
Methode |
Sortierungsobjekt erzeugen |
CL_SALV_SORTS |
ADD_SORT |
Einzelnes Sortierungsobjekt löschen |
REMOVE_SORT |
|
Alle Sortierungsobjekte löschen |
CLEAR |
Wenn Sie Ihrer ALV-Ausgabe eine neue Datentabelle mit neuer Struktur zuweisen, werden alle Sortierungsobjekte automatisch gelöscht.
Sie können zu jedem einzelnen Sortierungsobjekt festlegen, ob Sie die Spalte aufwärts (z. B. a, b, c) oder absteigend (z. B. c, b, a) sortieren möchten: Sie legen die Sortierrichtung fest.
Methoden
Funktion |
Klasse |
Methode |
Sortierrichtung festlegen |
CL_SALV_SORTS |
ADD_SORT (Parameter SEQUENCE) |
CL_SALV_SORT |
SET_SEQUENCE |
|
Sortierrichtung holen |
CL_SALV_SORT |
GET_SEQUENCE |
Wenn Sie die ALV-Ausgabe nach mehreren Spalten sortieren, ändert sich das Ergebnis, je nachdem, in welcher Reihenfolge die Spalten nacheinander sortiert werden.
Standardmäßig werden die Spalten in der Reihenfolge sortiert, in der Sie ihre Sortierobjekte erzeugt haben. Sie können diese Reihenfolge ändern.
Methoden
Funktion |
Klasse |
Methode |
Spaltenreihenfolge der Sortierung ändern |
CL_SALV_SORTS |
ADD_SORT (Parameter POSITION) |
SET_POSITION |
Standardmäßig kann der Nutzer Sortierungseinstellungen, die Sie über die Anwendung vorgeben, nachträglich ändern. Sie können dies jedoch ausdrücklich verbieten.
Methoden
Funktion |
Klasse |
Methode |
Änderungen am Sortierungsobjekt verbieten |
CL_SALV_SORTS |
ADD_SORT |
CL_SALV_SORT |
SET_OBLIGATORY |
|
Prüfen, ob Nutzer Änderungen am Sortierungsobjekt vornehmen darf |
CL_SALV_SORT |
IS_OBLIGATORY |
Wenn sich in einer sortierten Spalte zwischen zwei Datensätzen der Wert ändert, wird dies als Gruppenstufenwechsel bezeichnet. Sie können den Gruppenstufenwechsel auf zwei Arten hervorheben:
· Sie trennen die beiden Gruppenstufen durch eine waagerechte Linie
· Sie beginnen bei jeder Gruppenstufe eine neue Seite.
· Sie haben die Gruppierung der ALV-Ausgabe aktiviert.
Methoden
Funktion |
Klasse |
Methode |
Gruppierung der ALV-Ausgabe aktivieren |
CL_SALV_SORTS |
SET_GROUP_ACTIVE |
Prüfen, ob die Gruppierung der ALV-Ausgabe aktiviert ist |
IS_GROUP_ACTIVE |
|
Darstellung des Gruppenstufenwechsels festlegen |
ADD_SORT (Parameter GROUP) |
|
CL_SALV_SORT |
SET_GROUP |
|
Darstellung des Gruppenstufenwechsels holen |
GET_GROUP |