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.