ALV Matchcode für benutzerspezifische Layouts

Der Benutzer kann das gewünschte Anzeigelayout eines ALV Grid (Spalten, Filter etc.) auswählen, sobald das ALV Grid in der Standardansicht angezeigt wird. Mit wenigen Codezeilen kann man die Auswahl des Layouts bereits auf dem Selektionsbild des Reports ermöglichen. Auf dieser Seite ist beschrieben, wie ein Matchcode auf das Layout realisiert werden kann. Die Zuweisung des gewählten Layouts an das ALV Grid und somit letztlich die eigentliche Ausgabe in diesem Layout wird in einem separaten Beitrag beschrieben.

Beispiel

*-----------------------------------------------------
* SELECTION SCREEN
*-----------------------------------------------------

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
SELECT-OPTIONS: so_scarr FOR lv_carrid,
                so_con FOR lv_connid. 

PARAMETERS: pm_alv TYPE slis_vari.
SELECTION-SCREEN END OF BLOCK b1.  

*----------------------------------------------------
* AT SELECTION-SCREEN ON VALUE REQUEST
*----------------------------------------------------

AT SELECTION-SCREEN ON VALUE-REQUEST FOR pm_alv.
  DATA: ls_layout_key  TYPE salv_s_layout_key,
        ls_layout_info TYPE salv_s_layout_info.

  ls_layout_key-report = sy-repid.
  ls_layout_info = cl_salv_layout_service=>f4_layouts( ls_layout_key ).
  pm_alv = ls_layout_info-layout.

Ergebnis

ALV Layout als Matchcode
ALV Layout als Matchcode