Skip to content

ComboBox ​

Auswahl-Komponente mit Dropdown-Liste. Pflegt Items als Key/Text-Paare, die statisch im Designer oder dynamisch aus ABAP befüllt werden. Der Anwender kann immer frei in das Feld tippen; editable = false macht das Feld schreibgeschützt. Unterstützt ValueState-Markierung und Validatoren.

Designer-Attribute ​

AttributBeschreibungDefault
controlIdEindeutige IDautomatisch generiert
widthBreite (CSS-Wert)100%
maxWidthMaximale Breite (CSS-Wert)100%
valueStateStatus-Hervorhebung. Werte: Error, Warning, Success, Information, NoneNone
valueStateTextTooltip bei aktivem ValueState–
showClearIconSymbol zum Leeren des Felds anzeigentrue
selectedKeyAktuell selektierter key–
valueAktuell angezeigter Wert (text des selektierten Items)–
visibleSichtbartrue
editableBearbeitbar oder schreibgeschützttrue
valueHelpFieldFeld der Wertehilfe, das diese Komponente führt — darüber wird sie als Filter gefüllt und als Ergebnis beschrieben–
fontSizeSchriftgröße (CSS-Wert)–
colorVordergrundfarbe (Hex)–
backgroundColorHintergrundfarbe (Hex)–
spanS / spanM / spanL / spanXLGrid-Layout12

ComboBoxItem ​

AttributBeschreibungDefault
controlIdEindeutige ID der Komponenteautomatisch generiert
textAnzeigetext des Eintrags–
keySchlüssel des Eintrags–

ABAP-API ​

Zugriff über me->get_combo_box( '<controlId>' ).

MethodeZweck
GET_VALUE / SET_VALUEAnzeigewert (Text)
GET_SELECTED_KEY / SET_SELECTED_KEYSelektierter Key
ADD_ITEMNeues Item anhängen
REMOVE_ITEMItem nach Key entfernen
REMOVE_ALL_ITEMSAlle Items entfernen
ITEMS_COUNTAnzahl Items
SET_VALUE_STATEStatus-Hervorhebung
SET_VALUE_STATE_TEXTStatus-Tooltip
INITSetzt selectedKey und value auf leer; valueState bleibt erhalten
ADD_ITEMSMehrere Einträge aus einer internen Tabelle hinzufügen

Geerbte Methoden: siehe Control.

ADD_ITEM ​

ÜbergabeTypBeschreibung
IV_KEYStringEindeutiger Key (Pflicht)
IV_TEXTStringAnzuzeigender Text

Ein leerer IV_KEY löst eine Ausnahme /mobbuild/cx_exception aus; ein vorhandener Eintrag mit demselben Key wird ersetzt.

ADD_ITEMS ​

Fügt je Zeile einer internen Tabelle ein Item hinzu (intern über ADD_ITEM, dieselben Regeln).

ÜbergabeTypBeschreibung
IT_DATAbeliebige interne TabelleDatenquelle
IV_KEY_FIELD_NAMEStringName des Strukturfelds, das den Key liefert
IV_TEXT_FIELD_NAMEStringName des Strukturfelds, das den Anzeigetext liefert

REMOVE_ITEM ​

ÜbergabeTypBeschreibung
IV_KEYStringKey des zu entfernenden Items

SET_SELECTED_KEY ​

ÜbergabeTypBeschreibung
IV_VALUEStringKey des zu selektierenden Items. Existiert der Key nicht, wird value auf initial gesetzt.

Beispiel: /mobbuild/cl_ex_combo_box_1 ​

Das Beispiel zeigt eine validierende ComboBox: Beim Submit wird geprüft, ob Green ausgewählt wurde. Falls nicht, wird Green der Item-Liste hinzugefügt und die ComboBox als fehlerhaft markiert. Bei korrekter Auswahl wird Green entfernt:

abap
METHOD on_pai.

  IF me->get_event( )->get_event_key( ) EQ 'Submit'.

    DATA(lo_cb_color) = me->get_combo_box( 'cbColors' ).

    IF lo_cb_color->get_selected_key( ) EQ 'Green' OR
       lo_cb_color->get_value( )        EQ 'Green'.

      " richtige Auswahl: ValueState zurücksetzen, Item entfernen
      lo_cb_color->set_value_state( /mobbuild/cl_value_state=>co_none ).
      lo_cb_color->set_value_state_text( space ).
      lo_cb_color->remove_item( iv_key = 'Green' ).
      lo_cb_color->set_selected_key( iv_value = space ).

    ELSE.

      " falsche Auswahl: ValueState auf Error, Item hinzufügen
      lo_cb_color->set_value_state( /mobbuild/cl_value_state=>co_error ).
      lo_cb_color->set_value_state_text( 'please select the Green color' ).
      lo_cb_color->add_item( iv_key = 'Green' iv_text = 'Green' ).
      lo_cb_color->set_selected_key( iv_value = 'Green' ).

    ENDIF.

    me->set_focus( iv_control_id = 'cbColors' ).

  ENDIF.

ENDMETHOD.
abap
METHOD on_pbo.

  DATA(lo_cb_color) = me->get_combo_box( 'cbColors' ).

  lo_cb_color->set_selected_key( space ).
  lo_cb_color->set_value_state( /mobbuild/cl_value_state=>co_none ).
  lo_cb_color->set_value_state_text( space ).
  lo_cb_color->remove_item( iv_key = 'Green' ).

  me->set_focus( iv_control_id = 'cbColors' ).

ENDMETHOD.

set_selected_key vs. set_value

set_selected_key setzt gleichzeitig den value aus dem text-Feld des passenden Items. Existiert der Key nicht in der Item-Liste, wird value initial gesetzt. Mit set_value setzen Sie den Anzeigetext direkt, ohne selectedKey zu ändern – etwa wenn die ComboBox als frei tippbare Vorschlagsliste dient.

Events im Designer ​

EventAuslöser
onChangeAuswahl eines Items bzw. Wertänderung (auch beim freien Tippen)

Nächste Schritte ​

  • RadioGroup – Alternative, wenn alle Optionen sichtbar sein sollen
  • SegmentedButton – wenige Optionen als Button-Reihe
  • List – Mehrfachauswahl in Listenform
  • Validatoren – Eingabeprüfung ohne ABAP-Code