Erscheinungsbild
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
| Attribut | Beschreibung | Default |
|---|---|---|
controlId | Eindeutige ID | automatisch generiert |
width | Breite (CSS-Wert) | 100% |
maxWidth | Maximale Breite (CSS-Wert) | 100% |
valueState | Status-Hervorhebung. Werte: Error, Warning, Success, Information, None | None |
valueStateText | Tooltip bei aktivem ValueState | – |
showClearIcon | Symbol zum Leeren des Felds anzeigen | true |
selectedKey | Aktuell selektierter key | – |
value | Aktuell angezeigter Wert (text des selektierten Items) | – |
visible | Sichtbar | true |
editable | Bearbeitbar oder schreibgeschützt | true |
valueHelpField | Feld der Wertehilfe, das diese Komponente führt — darüber wird sie als Filter gefüllt und als Ergebnis beschrieben | – |
fontSize | Schriftgröße (CSS-Wert) | – |
color | Vordergrundfarbe (Hex) | – |
backgroundColor | Hintergrundfarbe (Hex) | – |
spanS / spanM / spanL / spanXL | Grid-Layout | 12 |
ComboBoxItem
| Attribut | Beschreibung | Default |
|---|---|---|
controlId | Eindeutige ID der Komponente | automatisch generiert |
text | Anzeigetext des Eintrags | – |
key | Schlüssel des Eintrags | – |
ABAP-API
Zugriff über me->get_combo_box( '<controlId>' ).
| Methode | Zweck |
|---|---|
GET_VALUE / SET_VALUE | Anzeigewert (Text) |
GET_SELECTED_KEY / SET_SELECTED_KEY | Selektierter Key |
ADD_ITEM | Neues Item anhängen |
REMOVE_ITEM | Item nach Key entfernen |
REMOVE_ALL_ITEMS | Alle Items entfernen |
ITEMS_COUNT | Anzahl Items |
SET_VALUE_STATE | Status-Hervorhebung |
SET_VALUE_STATE_TEXT | Status-Tooltip |
INIT | Setzt selectedKey und value auf leer; valueState bleibt erhalten |
ADD_ITEMS | Mehrere Einträge aus einer internen Tabelle hinzufügen |
Geerbte Methoden: siehe Control.
ADD_ITEM
| Übergabe | Typ | Beschreibung |
|---|---|---|
IV_KEY | String | Eindeutiger Key (Pflicht) |
IV_TEXT | String | Anzuzeigender 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).
| Übergabe | Typ | Beschreibung |
|---|---|---|
IT_DATA | beliebige interne Tabelle | Datenquelle |
IV_KEY_FIELD_NAME | String | Name des Strukturfelds, das den Key liefert |
IV_TEXT_FIELD_NAME | String | Name des Strukturfelds, das den Anzeigetext liefert |
REMOVE_ITEM
| Übergabe | Typ | Beschreibung |
|---|---|---|
IV_KEY | String | Key des zu entfernenden Items |
SET_SELECTED_KEY
| Übergabe | Typ | Beschreibung |
|---|---|---|
IV_VALUE | String | Key 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
| Event | Auslöser |
|---|---|
onChange | Auswahl 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