da ist mein Beitrag, wie man kann mit Varianten arbeiten. Man muss sich ein Parameter P_VARI auf dem Selectionscreen vorstellen, über den wird Anzeigevariante gesteuert (z.B. für Jobs). Danach ein Beitrag für USER_COMMAND.
Wichtige Bemerkung: Einzellne Teile sind aus verschiedenen Programmen geholt, also ist möglich, dass man konnte es besser schreiben. Hauptsache, das Programm funktioniert problemlos.
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
- EXPORTING
- i_callback_program = alv_repid
- i_callback_user_command = 'USER_COMMAND'
- is_layout = alv_layout
- it_fieldcat = alv_fieldcat
- i_default = 'X'
- i_save = alv_save
- is_variant = variante
- GeSHi ©
Mit diesem Code man kann eine Standardvariante suchen und Namen in ein Parameter auf dem Selektionscreen füllen:
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- variant_save = 'A'.
- clear variante.
- * Default-Variante holen:
- def_variante = variante.
- call function 'REUSE_ALV_VARIANT_DEFAULT_GET'
- exporting
- i_save = variant_save
- changing
- cs_variant = def_variante
- exceptions
- not_found = 2.
- p_vari = def_variante-variant.
- GeSHi ©
So man kann über die F4 Taste eine Variante suchen:
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- call function 'REUSE_ALV_VARIANT_F4'
- exporting
- is_variant = variante
- i_save = variant_save
- * it_default_fieldcat =
- importing
- e_exit = variant_exit
- es_variant = def_variante
- exceptions
- not_found = 2.
- with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
- else.
- p_vari = def_variante-variant.
- GeSHi ©
Und so wird die Variante an den GRID vergeben:
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- GeSHi ©
Und so man kann ablesen, was User gedrückt hat:
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- GeSHi ©
Man kann über
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- I_CALLBACK_PF_STATUS_SET
- GeSHi ©
Das war's von mir dazu.
Gruß
Kotelna