Code: Alles auswählen.
Variablendeklarationen für ALV Grid
DATA:
fieldcat TYPE slis_t_fieldcat_alv, "Feldkatalog
*Workarea für einzelne Zeilen eines Feldkatalogs. Wird benötigt, falls
*das Feldkatalog um eigene Spalten erweitert werden soll.
wrk_fieldcat_alv LIKE LINE OF fieldcat,
*ALV-Überschrift
sav_listenname TYPE lvc_title,
g_repid LIKE sy-repid,
* Variablen für die Layout-Variante
variante LIKE disvariant,
def_variante LIKE disvariant,
variant_exit(1) TYPE c.
*********************************************************
*************** Selektionsbildschirm ********************
*********************************************************
*Feld für die Variante im Selektionsbildschirm
PARAMETERS: p_vari LIKE disvariant-variant.
* F4-Hilfe für die Anzeigevariante
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
*Initialisierung
g_repid = sy-repid.
CLEAR variante.
variante-report = g_repid.
* Get default variant
def_variante = variante.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = 'A'
CHANGING
cs_variant = def_variante
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
p_vari = def_variante-variant.
ENDIF.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = variante
i_save = 'A'
* it_default_fieldcat =
IMPORTING
e_exit = variant_exit
es_variant = def_variante
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 variant_exit = space.
p_vari = def_variante-variant.
ENDIF.
ENDIF.
AT SELECTION-SCREEN.
VARIANTE-REPORT = SY-REPID.
* Variante einlesen
IF NOT P_VARI IS INITIAL.
MOVE VARIANTE TO DEF_VARIANTE.
MOVE P_VARI TO DEF_VARIANTE-VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
I_SAVE = 'A'
CHANGING
CS_VARIANT = DEF_VARIANTE.
VARIANTE = DEF_VARIANTE.
ELSE.
CLEAR VARIANTE.
VARIANTE-REPORT = SY-REPID.
ENDIF.
start-of-selection.
********************************************************
* HAUPTPROGRAMM
********************************************************
Welchen Code hast du gepostet?Sava hat geschrieben:Jedoch wenn ich auf das Feld bzw. auf den Parameter ein anderes Layout auswählen will, erscheint kein PopUP zur Auswahl :/
Code: Alles auswählen.
* F4-Hilfe für die Anzeigevariante
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
Code: Alles auswählen.
SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-014.
parameters: p_vari type slis_vari default '/STANDARD'.
SELECTION-SCREEN END OF BLOCK b4.
* F4-Hilfe für die Anzeigevariante
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
INITIALIZATION.
g_repid = sy-repid.
CLEAR variante.
variante-report = g_repid.
* Get default variant
def_variante = variante.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = 'A'
CHANGING
cs_variant = def_variante
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
p_vari = def_variante-variant.
ENDIF.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = variante
i_save = 'A'
* it_default_fieldcat =
IMPORTING
e_exit = variant_exit
es_variant = def_variante
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 variant_exit = space.
p_vari = def_variante-variant.
ENDIF.
ENDIF.
VARIANTE-REPORT = SY-REPID.
* Variante einlesen
IF NOT P_VARI IS INITIAL.
MOVE VARIANTE TO DEF_VARIANTE.
MOVE P_VARI TO DEF_VARIANTE-VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
I_SAVE = 'A'
CHANGING
CS_VARIANT = DEF_VARIANTE.
VARIANTE = DEF_VARIANTE.
ELSE.
CLEAR VARIANTE.
VARIANTE-REPORT = SY-REPID.
ENDIF.
Dann ließ bitte die Doku zu dem Ereignis AT SELECTION SCREEN ON VALUE REQUEST und INITIALIZATION für die Grundlagen.Sava hat geschrieben:Das habe ich eigentlich eingebaut, siehe hier: