ALV-Layoutvariante im Selektionsbildschirm bei Klasse CL GUI ALV GRID
Aus SAP-Wiki
Zur Navigation springenZur Suche springen
In einer ALV-Layoutvariante können Einstellungen gespeichert werden wie
- Reihenfolge Ausgabe Felder
- Felder aus Anzeige ausblenden
- Filter
- Sortierung
- Layouteinstellungen
Die gewünschte Layoutvariante kann nach Anzeige der ALV-Liste gewählt werden - aber auch bereits im Selektionsbildschirm gewählt werden.
Selektionsbildschirm
Parameter: p_vari TYPE disvariant-variant.
Initialization
INITIALIZATION. PERFORM initialization changing p_vari.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR <FIELD>
*----------------------------------------------------------------------* * AT SELECTION-SCREEN ON VALUE-REQUEST FOR <field> *----------------------------------------------------------------------* AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari. PERFORM at_selection_screen_for_vari CHANGING p_vari.
Form INITIALIZATION
*&---------------------------------------------------------------------* *& Form INITIALIZATION *&---------------------------------------------------------------------* * Default Routinen *----------------------------------------------------------------------* FORM initialization changing pcv_vari type disvariant-variant. DATA: lv_report TYPE rsvar-report, ls_variant TYPE disvariant. * Defaultlayoutvariante ls_variant-report = sy-repid. ls_variant-handle = gv_handle_num1. CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET' "aus Tabelle LTDX EXPORTING i_save = 'A' CHANGING cs_variant = ls_variant EXCEPTIONS not_found = 2. IF sy-subrc = 0. pcv_vari = ls_variant-variant. ENDIF. ENDFORM. "INITIALIZATION
Form AT_SELECTION_SCREEN_FOR_VARI
*&---------------------------------------------------------------------* *& Form AT_SELECTION_SCREEN_FOR_VARI *&---------------------------------------------------------------------* * Liste aller Layoutvarianten wird angeboten und gewählt * Die Selektionsvarianten sind in der Tabelle LTDX gespeichrt *----------------------------------------------------------------------* FORM at_selection_screen_for_vari CHANGING pcv_vari TYPE disvariant-variant. DATA: ls_variant_in TYPE disvariant, ls_variant_out TYPE disvariant, lv_exit TYPE c. ls_variant_in-report = sy-repid. ls_variant_in-handle = gv_handle_num1. * Zeigt Liste aller Layoutvarianten an: Benutzervarianten und Standardvarianten CALL FUNCTION 'REUSE_ALV_VARIANT_F4' EXPORTING is_variant = ls_variant_in i_save = 'A' "Benutzer und Standardlayoutvarianten IMPORTING e_exit = lv_exit es_variant = ls_variant_out EXCEPTIONS not_found = 2. IF sy-subrc = 2. MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ELSE. IF lv_exit = space. pcv_vari = ls_variant_out-variant. ENDIF. ENDIF. ENDFORM. " AT_SELECTION_SCREEN_FOR_VARI
Form ALV_2000
*&---------------------------------------------------------------------* *& Form alv_2000 *&---------------------------------------------------------------------* * ALV-Output *----------------------------------------------------------------------* form alv_2000. **************** * Fill Variant * **************** ls_variant-report = sy-repid. ls_variant-handle = gv_handle_num1. ls_variant-variant = p_vari.
* Rufe die ALV-Liste auf CALL METHOD go_alv_cont1->set_table_for_first_display EXPORTING i_bypassing_buffer = 'X' "lv_bypassing_buffer i_save = 'A' "lv_save * i_default = 'X' is_layout = ls_layout * it_toolbar_excluding = lt_toolbar_excluding * is_variant = ls_variant CHANGING it_outtab = pct_list it_fieldcatalog = lt_fcat. endform.