Sie können Funktionen bereitstellen, mit denen der Nutzer die ALV-Ausgabe bedienen kann. Die Funktionen, die das System für ALV bereitstellt, werden als generische ALV-Funktionen bezeichnet. Generische ALV-Funktionen sind z. B. Sortieren, Filtern, Layout-Einstellungen. Generisch bedeutet hier, dass das System prüft, ob eine Funktion in einer bestimmten Situation sinnvoll ist. Entsprechend aktiviert oder deaktiviert es die Drucktaste bzw. den Menüeintrag. Dagegen kann das System bei selbstdefinierten Funktionen keinen Einfluss auf den Aktivierungsstatus nehmen.
Die Namen aller generischen ALV-Funktionen finden Sie als Konstanten in den Interfaces IF_SALV_C_FUNCTION LIST (für die einfache, zweidimensionale Tabelle und die hierarchisch-sequenzielle Liste) bzw. IF_SALV_C_FUNCTION_TREE (für die Baumstruktur).
Wenn der Nutzer die Drucktaste einer generischen ALV-Funktion wählt, löst er damit nacheinander zwei Ereignisse aus:
·
BEFORE_SALV_FUNCTION
Das Ereignis findet
statt, bevor die Funktion ausgeführt wird
·
AFTER_SALV_FUNCTION
Das Ereignis findet statt, wenn die Funktion abgeschlossen ist
Beide Ereignisse stammen aus den Klassen CL_SALV_EVENTS_LIST bzw. CL_SALV_EVENTS_TREE.
Wenn Sie Ihre Anwendung auf diese Ereignisse registrieren, können Sie somit die Aktion des Nutzers behandeln und eine gewünschte Funktion starten.
Je nachdem, ob Sie eine generische ALV-Funktion in einer ALV-Ausgabe im Container einsetzen oder in einer Fullscreen-Darstellung, gehen Sie unterschiedlich vor, um die Position einer Drucktaste festzulegen:
· In der Container-Darstellung (einfache, zweidimensionale Tabelle oder Baumstruktur) können Sie die Reihenfolge der Drucktasten nicht ändern.
· In den anderen Darstellungsarten verwenden Sie den Bildschirmstatus, um die Position einer Drucktaste festzulegen. Die Drucktaste wird dann an der hier festgelegten Position angezeigt, unabhängig davon, in welcher Reihenfolge Sie die entsprechende SET-Funktion aufrufen.
Sie können nur über den Bildschirmstatus eine Funktion als Menüeintrag organisieren. In der Container-Darstellung können Sie keinen Einfluss auf die Menüstruktur nehmen.
Sie können jede generische ALV-Funktion einzeln aktivieren oder deaktivieren. Die meisten generischen ALV-Funktionen gehören jedoch zu sinnvoll zusammengestellten Gruppen von Funktionen. So können Sie mit einem einzigen Befehl alle Funktionen dieser Gruppe aktivieren.
Zu generischen ALV-Funktionen können Sie folgende Einstellungen vornehmen:
· Funktionseinstellungen holen
· Generische ALV-Funktion aktivieren
· Sichtbarkeit und Aktivierungsstatus einer generischen ALV-Funktion prüfen
Für all diese Funktionen gilt:
Darstellungsart ALV-Werkzeug |
Klass. ABAP-Liste |
Fullscreen |
Im Container |
Einfache, zweidimensionale Tabelle |
Ja |
Ja |
Ja |
Hierarchisch-sequenzielle Liste |
Ja |
|
|
Baumstruktur |
|
Ja |
Ja |
Mit jeder Funktion, die Sie aktivieren, erzeugen Sie ein Objekt der Klasse CL_SALV_FUNCTION. All diese Objekte verwalten Sie über die Liste aller Funktionsobjekte: CL_SALV_FUNCTIONS_TREE (für die Baumstruktur) oder CL_SALV_FUNCTIONS_LIST (für die einfache, zweidimensionale Tabelle oder die hierarchisch-sequenzielle Liste).
In jeder ALV-Hauptklasse existiert die Methode GET_FUNCTIONS, die die Einstellungen aller Funktionen zurückgibt. Über dieses Objekt nehmen Sie alle Einstellungen zu generischen ALV-Funktionen vor.
Methoden
Funktion |
Klasse |
Methode |
FUNCTIONS-Objekt holen |
CL_SALV_TABLE CL_SALV_HIERSEQ_TABLE CL_SALV_TREE |
GET_FUNCTIONS |
Alle Funktionsobjekte holen |
CL_SALV_FUNCTIONS_LIST CL_SALV_FUNCTIONS_TREE |
GET_FUNCTIONS |
Prüfen, ob eine Funktion eine generische ALV-Funktion ist |
IS_SALV_FUNCTION |
Für jede generische ALV-Funktion existiert eine Setter-Methode, über die Sie die Drucktaste bzw. den Menüeintrag der Funktion für den Nutzer sichtbar und nutzbar schalten.
Sie haben verschieden Möglichkeiten, generische ALV-Funktionen anzuzeigen:
· Sie aktivieren jede generische ALV-Funktion einzeln
· Sie schalten eine Funktionsgruppe ein. Alle Funktionen dieser Funktionsgruppe werden gleichzeitig aktiviert
· Sie schalten alle generischen ALV-Funktionen gleichzeitig ein
In den listartigen ALV-Ausgaben (einfache, zweidimensionale Tabelle und hierarchisch-sequenzielle Liste) steht darüber hinaus eine voreingestellte Standardauswahl der häufigsten generischen ALV-Funktionen zur Verfügung.
Methoden
Funktion |
Klasse |
Methode |
Einzelne generische ALV-Funktion aktivieren |
CL_SALV_FUNCTIONS_LIST CL_SALV_FUNCTIONS_TREE |
SET_ |
Funktionsgruppe aktivieren |
SET_GROUP_ |
|
Alle generischen ALV-Funktionen aktivieren |
SET_ALL |
|
Voreingestellte Standardauswahl an generischen ALV-Funktionen aktivieren |
CL_SALV_FUNCTIONS_LIST |
SET_DEFAULT |
Mit den Setter-Methoden (siehe oben) machen Sie eine generische ALV-Funktion sichtbar bzw. unsichtbar. In einigen Fällen kann eine generische ALV-Funktion zwar sichtbar, jedoch vorübergehend nicht bedienbar sein: Die generische ALV-Funktion ist deaktiviert.
Während Sie bei selbstdefinierten Funktionen den Aktivierungsstatus beeinflussen können, haben Sie diese Möglichkeit bei generischen ALV-Funktionen nicht. Hier beeinflusst ausschließlich die interne Logik von ALV, ob eine Funktion bedienbar ist oder nicht.
Sie setzen die Gruppe Filter und machen damit die beiden Funktionen SET_FILTER und SET_FILTER_DELETE sichtbar. Solange Sie jedoch keinen Filter definiert haben, bleibt die Funktion SET_FILTER_DELETE dennoch deaktiviert.
Sie können den Aktivierungsstatus einer generischen ALV-Funktion prüfen. Jedoch erfasst die entsprechende Methode nicht den Aktivierungsstatus, den das System aufgrund seiner internen Logik gesetzt hat.
Wenn Sie versuchen, bei einer generischen ALV-Funktion den Aktivierungsstatus zu ändern, erhalten Sie einen Fehler.
Methoden
Funktion |
Klasse |
Methode |
Sichtbarkeit prüfen |
CL_SALV_FUNCTIONS_LIST CL_SALV_FUNCTIONS_TREE |
IS_VISIBLE |
Aktivierungsstatus prüfen |
IS_ENABLED |