Erscheinungsbild
RadioGroup
Eine Gruppe von Radio-Buttons, von denen sich genau einer auswählen lässt. Im Gegensatz zu mehreren losen CheckBoxen schließen sich die Optionen gegenseitig aus.
Designer-Attribute
| Attribut | Beschreibung | Default |
|---|---|---|
controlId | Eindeutige ID | automatisch generiert |
selectedIndex | Index des aktuell selektierten Buttons (0-basiert) | 0 |
columns | Anzahl Spalten beim Layout | 1 |
enabled | Komponente aktiv | true |
visible | Sichtbar | true |
width | Breite (CSS-Wert) | – |
valueState | Status-Hervorhebung | None |
fontSize | Schriftgröße (CSS-Wert) | – |
color | Vordergrundfarbe (Hex) | – |
backgroundColor | Hintergrundfarbe (Hex) | – |
spanS / spanM / spanL / spanXL | Grid-Layout | 12 |
Radio-Buttons werden als Kind-Komponenten (RadioButton) im View-Tree gepflegt – jeder mit text und optional key.
ABAP-API
Zugriff über me->get_radio_group( '<controlId>' ).
| Methode | Zweck |
|---|---|
GET_SELECTED_INDEX / SET_SELECTED_INDEX | Selektierter Index |
GET_SELECTED_TEXT | Text des aktuell selektierten Buttons |
GET_ITEMS | Tabelle aller Radio-Buttons |
ITEMS_COUNT | Anzahl Items |
ADD_BUTTON | Neuen Radio-Button hinzufügen |
REMOVE_ITEM | Item nach controlId entfernen |
Konstruktor für dynamisch erzeugte Radio-Buttons: /mobbuild/cl_radio_button=>create( ).
Geerbte Methoden: siehe Control.
Beispiel: /mobbuild/cl_ex_radio_group
Das Beispiel zeigt zwei Patterns: dynamisches Hinzufügen / Entfernen von Radio-Buttons sowie das Übernehmen der Auswahl in ein Eingabefeld.
abap
METHOD on_pai.
DATA(lv_event_key) = me->get_event( )->get_event_key( ).
CASE lv_event_key.
WHEN 'Add' OR 'Remove'.
me->on_example_add_remove_dynamic( ).
WHEN OTHERS.
me->on_example_event( ).
ENDCASE.
ENDMETHOD.Auswahl in Eingabefeld übernehmen
abap
METHOD on_example_event.
DATA(lo_input_out_control_id) = me->get_event( )->get_event_key( ).
DATA(lo_input_out) = me->get_input( lo_input_out_control_id ).
DATA(lo_radio_group_control_id) = me->get_event( )->get_sender( ).
DATA(lo_radio_group) = me->get_radio_group( lo_radio_group_control_id ).
lo_input_out->set_value( lo_radio_group->get_selected_text( ) ).
ENDMETHOD.Dynamisch Buttons hinzufügen / entfernen
abap
METHOD on_example_add_remove_dynamic.
DATA(lv_event_sender) = me->get_event( )->get_sender( ).
DATA(lo_control) = me->get_radio_group( 'groupDynamic' ).
DATA(lt_items) = lo_control->get_items( ).
DATA(lv_count) = lo_control->items_count( ).
IF lv_event_sender EQ 'btnAdd'.
DATA(lv_temp) = |item_{ lv_count + 1 }|.
DATA(lo_radio_button) = /mobbuild/cl_radio_button=>create( ).
lo_radio_button->set_control_id( lv_temp ).
lo_radio_button->set_text( lv_temp ).
lo_control->add_button( lo_radio_button ).
ELSEIF lv_event_sender EQ 'btnRemove'.
IF lv_count > 0.
READ TABLE lt_items INTO DATA(lo_last) INDEX lv_count.
lo_control->remove_item( lo_last->get_control_id( ) ).
ENDIF.
ENDIF.
ENDMETHOD.Events im Designer
| Event | Auslöser |
|---|---|
onSelect | Auswahl gewechselt |
Nächste Schritte
- SegmentedButton – kompakte Alternative für wenige Optionen
- ComboBox – platzsparende Alternative für viele Optionen