Auf- und zuklappen von Details im ALV
Heute hat ein Mitglied unserer Telegram-Gruppe die Frage gestellt, wie man in die Spalte eines ALV einen Button einbinden kann, um durch diesen weitere Zeilen mit Details ein- oder ausblenden zu können .
Fragestellung und Entscheidung zur Umsetzung:
- Gibt es in den Reporten von SAP bereits Demo- oder Produktivprogramme, die diese Funktion benutzen?
- Ja, in Transaktion ME2ON kann man diese Funktion finden.
- Lässt sich die Funktion direkt aus den Programmen von SAP kopieren und benutzen?
- Nein, da die neuen MM-Transaktionen ein komplexen Programmablauf haben und die Funktion nicht direkt durch den ALV ausgeführt wird, sondern durch das Verlassen und erneutes Aufrufen des Dynpros.
Lösung
Für die Funktion habe ich einen Button mit Hotspot in eine Spalte eingebaut. Wird nun der Button durch den Benutzer betätigt, werden durch den Eventbehandler weitere Details unterhalb der Zeile eingefügt und der ALV aufgefrischt. Durch das Hinzufügen der Details zur Zeile, wird das Aufklappsymbol durch das Zuklappsymbol ausgetauscht. Wird der Button erneut betätigt, werden die Details wieder aus dem ALV entfernt und dern ALV aufgefrischt.
Auf der Drucktastenleiste des ALV gibt es auch zwei Button, um durch einen Druck entweder alle Details ein- oder auszublenden. Wird der Button für das Aufklappen betätigt, werden zu allen Zeilen, die einen Button für das Aufklappen enthalten, die Details jeweils unter die Zeile in den ALV eingefügt und der ALV aufgefrischt. Wird der Button für das Zuklappen betätigt, werden die Details wieder aus dem ALV entfernt und der ALV aufgefrischt.
Hol Dir den Source von meinem GitHub
Herunterladen
Du kannst den Code entsprechend Deines Releases herunterladen. Verfügbare Versionen sind:
Verwendung von cl_salv_table
Verwendung von cl_gui_alv_grid
GitHub Repo mit abapGit importieren
Du kannst den Code auch direkt mit abapGit importieren. Nähere Information, wie man den Code mit abapGit importiert, findest Du hier.
Links zum Kopieren https://github.com/stekoester/exp_col_in_salv
oder https://github.com/stekoester/exp_col_in_alv