Funktionsbaustein EFG SELECTION LIST
Aus SAP-Wiki
Zur Navigation springenZur Suche springen
Der Funktionsbaustein EFG_SELECTION_LIST bietet vielfältige Möglichkeiten eine Liste (mit maximal 3 Spalten) als Popup auf den Bildschirm zu bringen, um einen Eintrag auszuwählen.
Die Parameter des Funktionsbausteins sind nicht sehr intuitiv und es dauert etwas, bis man die Möglichkeiten des Funktionsbausteins durchschaut hat.
Coding
DATA: lv_title TYPE string,
lt_sellist TYPE STANDARD TABLE OF efgsellist,
ls_sellist TYPE efgsellist,
ls_header TYPE efgsellist,
lv_selectind TYPE sy-tabix, "Ausgewählte Zeile
ls_selected TYPE efgsellist. "Daten
* Titel der Liste
lv_title = 'Auswahl Variable'(003).
* Spaltenüberschriften
ls_header-typetext = 'Funktion'.
ls_header-keytext = 'Variable'.
ls_header-text = 'Variablenbezeichnung'.
ls_sellist-linetype = space. "CHAR 1 Zeilentyp für die Auswahlliste
ls_sellist-typecolor = 5. "CHAR 1 Farbdefinition BOR-Objekte: Farbe
ls_sellist-keycolor = 5. "CHAR 1 Farbdefinition BOR-Objekte: Farbe
"ls_sellist-topofpage = 'X'. "CHAR 1 Kennzeichen: Zeile wird zum Zeitpunkt Top-of-Page ausgegeben"
"ls_sellist-SELECTED "CHAR 1 Kennzeichen: Zeile ausgewählt
"ls_sellist-NO_SELECT "CHAR 1 Kennzeichen: Nicht auswählbar
"ls_sellist-BOX_INVSBL "CHAR 1 Kennzeichen: Ankreuzfeld nicht anzeigen
"ls_sellist-callindex = sy-tabix. "INT4 10 Vom Aufrufer verwendbares Indexfeld
"ls_sellist-typeintsv = 'X'. "CHAR 1 Farbdefinition BOR-Objekte: Intensitätsflag
"ls_sellist-TYPETEXT "CHAR 30 Typ eines Objekts (zur Ausgabe aufbereitet)
"ls_sellist-KEYINTSV "CHAR 1 Farbdefinition BOR-Objekte: Intensitätsflag
"ls_sellist-TEXTINTSV "CHAR 1 Farbdefinition BOR-Objekte: Intensitätsflag
"ls_sellist-MULTITEXT "CHAR 172 Text, der über mehrere Spalten geht
* Selektion hier Felder Typ (TYPETEXT), Key (KEYTEXT) und Text (TEXT) aus einer Tabelle
select
funktion
variab
kurzbeschr
into (ls_sellist-typetext,
ls_sellist-keytext,
ls_sellist-text)
from /vtis/bc_variabl
where funktion = <fv_funktion>
or funktion = 'GL'. "Globale Variable für alle Fachbereiche/Funktionen
append ls_sellist to lt_sellist. "Füllen der Datensätze der Liste
endselect.
* Liste zur Auswahl von Variablen
CALL FUNCTION 'EFG_SELECTION_LIST'
EXPORTING
x_title = lv_title "Titel der Liste
x_popup = 'X' "Liste erscheint als Popop
* x_select_mode =
x_hotspot = 'X' "Key-Spalte ist als Hotspot klickbar
* X_COMMENT1 =
* X_COMMENT2 =
* X_COMMENT3 =
x_suppress_type = space "Damit die Typ-Spalte erscheint
* X_SUPPRESS_KEY = ' '
X_MINLEN_TYPE = 10 "Länge Typ-Spalte
x_minlen_key = 30 "Länge Key-Spalte
x_minlen_text = 60 "Länge Text-Spalte
* X_CALLBACK_PROGRAM =
* X_CALLBACK_USER_COMMAND =
* X_CALLBACK_STATUS =
* X_CUA_STATUS =
* x_allow_clipboard = 'X'
* x_show_export_icon = 'X'
x_str_header = ls_header "Header-Informationen
* X_STR_SEL_STATE =
x_flg_alv = 'X' "Darstellung Liste im modernen Layout
* X_RIF_ALV_CALLBACK =
x_width = 100 "Breite Liste
IMPORTING
y_selectind = lv_selectind "Zeilenindex Selektion
y_str_selected = ls_selected "Mehr Detailinformationen Selektion
TABLES
t_selectlist = lt_sellist[]
EXCEPTIONS
cancelled = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE i531(0u) WITH 'Es wurde kein Eintrag selektiert'(001).
RETURN.
ENDIF.
* Lesen gewählter Datensatz
READ TABLE lt_sellist INTO ls_sellist INDEX lv_selectind.
Liste
Ein Doppelklick auf eine Zeile, bzw. den Hotspot auf die Keyspalte (hier mit Spaltentitel "Variable") gibt diesen Datensatz als Rückgabeparameter des Funktionsbausteins (Y_SELECTIND) zurück.
