Layoutvariante bei Nutzung REUSE ALV GRID DISPLAY LVC
Siehe Kategorie: ALV.
Siehe Selektionsvarianten bei Reporten.
Siehe ALV-Vorlage REUSE ALV GRID DISPLAY LVC.
Die Layoutvarianten eines Reports sind von den Selektionsvarianten zu unterscheiden. Die Selektionsvarianten betreffen die Werte von Selektionsparametern im Selektionsbildschirm eines Reports; die Layoutvarianten die Darstellung der ALV-Liste von einem Report.
Die Layoutvarianten können als Standard (benutzerübergreifend) oder benutzerabhängig gespeichert werden.
Die Layoutvariante nimmt Einfluss auf
- Felder, die angezeigt, bzw. ausgeblendet werden
- Reihenfolge der Felder
- Sortierung der Liste
- Filterung der Felder
- Summierung der Werten von Feldern
- u. a.
Diese Layoutvarianten können bereits im Selektionsbildschirm zur Auswahl angeboten werden, wenn man weiß wie es geht. Sodass ein User von einem ALV-Report sich eine für den User optimale Darstellung der Felder speichern kann und dann mit dieser Layoutvariante arbeiten kann, ohne sie jedes mal erneut manuell wiederherstellen zu müssen.
ALV-Layoutvarianten transportieren
Layoutvariante speichern
Auf den linken Button "Layout ändern" drücken
Layout nach Wunsch ändern, z. B. Felder ausblenden. Unter "Spaltenvorrat" sind alle Felder, die ausgabefähig sind, aber aktuell nicht ausgegeben werden.
Hat man die Auswahl getroffen, drückt man auf Button "Speichern". Dann kann diese Layoutvariante aus der ALV-Liste heraus aufgerufen werden.
Für die Variante vergibt man einen Namen. Eine benutzabhängige Variante beginnt mit einem Buchstaben. Eine Standardvariante mit "/". "Voreinstellung" bedeutet, dass diese Layoutvariante bei einem Report zur Anzeige der ALV-Liste verwendet wird, es sei denn der Benutzer hat eine benutzerabhängige Variante gespeichert.
Aufruf ALV-Layoutvariante per Parameterfeld
Im Selektionsbildschirm
Wenn die Wertehilfe im Feld Layout aufgerufen wird, sieht man alle Benutzerlayoutvarianten und maximal eine Standardvariante. Die persönliche Variante erkennt man an dem Haken im Feld .
Definition Layoutvariante im Selektionsbildschirm
Parameters: p_var TYPE disvariant-variant. "Layout
Beim Ereignis Initialization
So lädt das Programm eine vorhandene Standardvariante
*----------------------------------------------------------------------* * INITIALIZATION *----------------------------------------------------------------------* initialization. DATA: ls_layout TYPE salv_s_layout_info, ls_key TYPE salv_s_layout_key. ls_key-report = sy-repid. ls_layout = cl_salv_layout_service=>get_default_layout( s_key = ls_key restrict = if_salv_c_layout=>restrict_none ). p_var = ls_layout-layout.
Beeinflussung der F4-Hilfe für Variantenfeld beim Ereignis "AT SELECTION-SCREEN"
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_var. * fill F4-Layout PERFORM f4_layouts USING if_salv_c_layout=>restrict_none CHANGING p_var.
*&---------------------------------------------------------------------* *& Form f4_layouts *&---------------------------------------------------------------------* FORM f4_layouts USING i_restrict TYPE salv_de_layout_restriction CHANGING c_layout TYPE disvariant-variant. DATA: ls_layout TYPE salv_s_layout_info, ls_key TYPE salv_s_layout_key. ls_key-report = sy-repid. * ls_key-HANDLE = 'NUM1'. "Wenn mehrere ALV-Liste im Report, die mit HANDLE unterschieden werden ls_layout = cl_salv_layout_service=>f4_layouts( s_key = ls_key restrict = i_restrict ). c_layout = ls_layout-layout. ENDFORM. " f4_layouts
Aufruf ALV-Funktionsbaustein
Die ausgewälte Layoutvariante wird als Übergabeparameter an den ALV-Funktionsbaustein übergeben. Im Parameter LS_VARIANT wird die Variante gespeichert.
Mit dem Parameter I_SAVE = 'A' wird dem ALV-Report mitgeteilt, dass sowohl eine benutzerabhängige Variante als auch eine Standardvariante in der ALV-Liste gespeichert werden kann.
Mit I_DEFAULT = 'X' kann der Report eine Standardvariante mit Voreinstellung verwenden. In diesem Fall muss keine Layoutvariante übergeben werden, da es pro Report nur eine Layoutvariante als Voreinstellung geben kann.
Gibt es in einem Report zwei oder mehr ALV-Listen, muss bei der Struktur IS_VARIANT auch das Feld HANDLE gefüllt werden. Hier muss dann pro ALV-Liste eine eindeutige Nummer stehen, z. B. '1', '2' etc. Wenn es nur eine ALV-Liste in einem Report gibt, muss das Feld HANDLE nicht gefüllt werden. Wurde eine HANDLE-Nummer beim Aufruf der ALV-Liste gefüllt und es wurden dann Layoutvarianten gespeichert, sind diese dann auch mit der HANDLE-Nummer verknüpft. Bei einer nachträglichen Änderung der HANDLE-Nummer beim Aufruf, würden dann die alten Layoutvarianten verlorengehen.
Data: ls_variant type DISVARIANT. ls_variant-variant = p_var. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING i_interface_check = 'I' i_callback_program = l_repid is_layout_lvc = ls_layout " Layout ALV it_fieldcat_lvc = lt_fcat " Fields in List i_default = 'X' i_save = 'A' is_variant = ls_variant it_events = lt_events TABLES t_outtab = lt_art EXCEPTIONS program_error = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE i531(0u) WITH 'Problem beim Fuba REUSE_ALV_GRID_DISPLAY_LVC'. ENDIF.