Kontakt & Service
Jetzt Beratung vereinbaren

In wenigen Schritten einen Beratungs­termin mit unseren Experten buchen.

Anwender Helpdesk

Hilfestellung bei Problemen in Ihren SAP-Systemen.

Schulungen

Unser Schulungsangebot. Jetzt informieren!

Webinare

Unser Webinarangebot. Jetzt informieren!

SALV Spickzettel

News & Wissen SALV-Spickzettel: Daten schnell & strukturiert darstellen

Jeder Entwickler wird es kennen: Daten sollen strukturiert für den Endnutzer dargestellt werden. Hierfür bietet das SALV schnelle Lösungen an. Dieser Blogbeitrag gibt einen Überblick über die verschiedenen Möglichkeiten der Klasse CL_SALV_TABLE.

Einfache Vollbild-Darstellung einer Liste

Um einfach Datensätze in einer SALV-Liste anzuzeigen, ist nicht zwingend ein eigenes Dynpro oder ein Custom Container notwendig. Hierfür reicht folgender Code:

Der Factory-Methode der Klasse CL_SALV_TABLE kann als Containerobjekt die Konstante cl_gui_container=>default_screen übergeben werden. Um die Anzeige zu erzwingen, muss noch ein WRITE-Befehl ausgeführt werden, damit die Listausgabe gestartet wird:

ALV als Pop-up

Ähnlich einfach lässt sich ein ALV auch als Pop-up darstellen. Hier ist aber zusätzlich ein Dialogbox-Container notwendig, der folgendermaßen erstellt wird:

Diesen Container (lo_cont) übergeben wir dann an die Factory-Methode der ALV-Klasse:

Dadurch, dass wir jetzt eine neue Dialogbox erstellt haben, benötigen wir noch eine Handlerklasse, mit der wir das Pop-up bei Bedarf wieder zerstören können:

Diese Eventhandler-Methode (on_close) kann nach der Instanziierung des SALV registriert werden:

ALV in einem Custom Container

Zunächst erstellen wir ein neues Dynpro. Hierauf können wir ein Custom Control im Screen Painter erstellen, im dem unser ALV angezeigt wird. Hier kann man die Maße und Position sehr schnell auf der Oberfläche einstellen:

Wir erstellen nun im Report eine neue Instanz der Klasse CL_GUI_CUSTOM_CONTAINER, die unserem Container auf dem Dynpro entspricht:

Die Container-Instanz (lo_cont) kann anschließend wieder der SALV-Factory-Methode übergeben werden:

Layout

Um dem Benutzer das Speichern eigener Layouts zu ermöglichen, wird die Klasse CL_SALV_LAYOUT verwendet. Hier können Einstellungen zu sichtbarem Spaltenvorrat, Summen, Sortierungen, Filter etc. gespeichert werden.

Nach der Instanziierung des SALV-Objekts (lo_salv) können wir das zugehörige Layout-Objekt (lo_layout) holen:

In der Struktur ls_key kann man einen eindeutigen Key (sy-repid) zum ALV vergeben, der mit der Methode set_key gesetzt wird.

Mit der Methode set_save_restriction kann definiert werden, welche Art von Layouts erlaubt sind:

  • if_salv_c_layout=>restrict_none | Layout sichern ohne Einschränkung
  • if_salv_c_layout=>restrict_user_dependant | Layout sichern nur benutzerspezifisch
  • if_salv_c_layout=> restrict_user_independant | Layout sichern nur benutzerübergreifend

Soll der Benutzer bereits auf dem Selektionsbild ein vorhandenes Layout auswählen können, muss Folgendes im Selektions-Screen-Block hinzugefügt werden:

Über die F4-Hilfe kann der Benutzer gespeicherte Layouts wählen:

Damit das Layout nach der Selektion geladen wird, muss folgende Methode aufgerufen werden:

Fazit

Diese aufgezählten Funktionen bilden den Grundstock zur Erzeugung eines SALV und sollten für einfache Anwendungen ausreichen. In einem geplanten zweiten Teil werde ich auf speziellere Funktionalitäten, wie z. B. Summen und Aggregationen, Filter, Editierbarkeit etc. eingehen.

Stand: 19. Mai 2022
Newsletter Setzen Sie auf fundiertes Wissen aus allen Bereichen unserer Branche. Regelmäßig und stets aktuell.
Beratende Person
Kontakt Haben Sie Fragen oder wünschen weitere Informationen? Unsere Experten beraten Sie gerne.