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.

EFG SELECTION LIST1.jpg