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.

Designer-Attribute

AttributBeschreibungDefault
controlIdEindeutige IDautomatisch generiert
valueAktuell angezeigter Wert (text des selektierten Items)leer
selectedKeyAktuell selektierter keyleer
placeholderPlatzhalter, wenn nichts ausgewähltleer
enabledAktivtrue
editableFrei tippbar (zusätzlich zur Auswahl)true
visibleSichtbartrue
widthBreite (CSS-Wert)
valueStateStatus-HervorhebungNone
valueStateTextTooltip bei aktivem ValueStateleer
fontSizeSchriftgröße (CSS-Wert)
colorVordergrundfarbe (Hex)
backgroundColorHintergrundfarbe (Hex)
spanS / spanM / spanL / spanXLGrid-Layout12

Items werden als Kind-Komponenten (ComboBoxItem) im View-Tree gepflegt – siehe Eigenschaften-Panel der ComboBox.

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
GET_ITEMSTabelle aller Items
GET_VALUE_STATE / SET_VALUE_STATEStatus-Hervorhebung
GET_VALUE_STATE_TEXT / SET_VALUE_STATE_TEXTStatus-Tooltip
INITEingabe und Status zurücksetzen

Geerbte Methoden: siehe Control.

ADD_ITEM

ÜbergabeTypBeschreibung
IV_KEYStringEindeutiger Key
IV_TEXTStringAnzuzeigender Text

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. Direktes set_value bei aktivierbarer ComboBox erlaubt frei tippbaren Text – etwa wenn die ComboBox als typeable Vorschlagsliste fungieren soll.

Events im Designer

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

Nächste Schritte

  • RadioGroup – Alternative, wenn alle Optionen sichtbar sein sollen
  • SegmentedButton – wenige Optionen als Button-Reihe
  • List – Mehrfachauswahl in Listenform