Skip to content

Komponenten ​

Dieser Bereich dokumentiert alle Komponenten, die der Mobile Builder im Designer und in der ABAP-API zur Verfügung stellt. Pro Komponente finden Sie:

  • Beschreibung – wofür die Komponente gedacht ist
  • Designer-Attribute – Attribute, die im Eigenschaften-Panel verfügbar sind
  • ABAP-API – Methoden zum Lesen und Setzen aus der gebundenen Klasse heraus
  • Beispiel – ABAP-Code aus dem ausgelieferten Beispiel-Paket /mobbuild/example

ABAP-Klassen-Pattern ​

Jede an eine View gebundene Klasse erbt von /mobbuild/cl_request_base und redefiniert die zwei Lifecycle-Methoden:

abap
CLASS /<NAMESPACE>/cl_my_view DEFINITION
  PUBLIC
  INHERITING FROM /mobbuild/cl_request_base
  FINAL
  CREATE PUBLIC.

  PUBLIC SECTION.
    METHODS on_pai REDEFINITION.
    METHODS on_pbo REDEFINITION.
ENDCLASS.
MethodeAuslöserZweck
on_pboProcess Before Output – Aufruf vor dem Anzeigen der ViewDaten ermitteln, Komponenten initialisieren, Listen befüllen
on_paiProcess After Input – Aufruf nach BenutzeraktionEingaben auswerten, Backend-Logik aufrufen, navigieren

Komponenten-Zugriff aus ABAP ​

Über me->get_<typ>( '<controlId>' ) erhalten Sie eine Referenz auf eine konkrete Komponente:

abap
DATA(lo_button)    = me->get_button( 'btnSave' ).
DATA(lo_input)     = me->get_input( 'txtName' ).
DATA(lo_label)     = me->get_label( 'lblMessage' ).
DATA(lo_combo_box) = me->get_combo_box( 'cbCountry' ).
DATA(lo_table)     = me->get_table( 'tblItems' ).

Die getypte Referenz erlaubt anschließend Methodenverkettung und Code-Vervollständigung:

abap
me->get_input( 'txtName' )->set_value( 'Hallo' ).
me->get_button( 'btnSave' )->set_enabled( abap_false ).

Event auswerten ​

In on_pai ermitteln Sie über me->get_event( ), welche Aktion den Aufruf ausgelöst hat:

abap
DATA(lo_event)   = me->get_event( ).
DATA(lv_key)     = lo_event->get_event_key( ).      " z.B. 'Submit', 'Change'
DATA(lv_sender)  = lo_event->get_sender( ).         " controlId der auslösenden Komponente

CASE lv_key.
  WHEN 'Submit'. " ...
  WHEN 'Change'. " ...
ENDCASE.

Der event_key ist immer der Text, den Sie im Designer in das Ereignis-Attribut der Komponente (onPress, onChange, onSubmit, …) eingetragen haben; sender ist die controlId der auslösenden Komponente. Reservierte Werte gibt es nicht – 'Submit' und 'Change' in den Beispielen sind frei gewählte Einträge. Einzige Ausnahme ist die MessageBox: dort ist sender fest 'MessageBox' und der event_key die gewählte Aktion.

Globale Hilfen ​

Eine kleine Auswahl an Helfern, die direkt auf me verfügbar sind:

MethodeZweck
me->set_focus( '<controlId>' )Setzt den Tastatur-Fokus auf eine Komponente
me->init_controls( )Ruft init( ) jeder Komponente der View auf und setzt damit alle Eingabekomponenten zurück (Eingabefelder, TextArea, ComboBox, CheckBox, Switch, RadioGroup, SegmentedButton, Barcode, Upload, SignaturePad, Table, DynamicFlexBox, ProgressIndicator). Reine Anzeigekomponenten wie Label, Text oder Image bleiben unverändert.
me->set_message_toast( me->create_message_toast( iv_text = '...' ) )Zeigt einen MessageToast
me->set_message_box( lo_message_box )Zeigt eine modale MessageBox
me->get_controls_by_type( iv_control_type = ... )Liefert alle Komponenten eines Typs der View

Geerbte Methoden ​

Alle Komponenten-Klassen erben von Control. Dort sind die generischen Methoden wie set_visible, set_property_value, get_control_id dokumentiert. In den einzelnen Komponenten-Seiten wiederholen wir diese Methoden nicht.

ValueState-Konstanten ​

Eingabe-Komponenten unterstützen Status-Hervorhebungen über die Konstanten in /mobbuild/cl_value_state:

KonstanteWirkung
co_noneStandard, keine Markierung
co_informationBlau
co_successGrün
co_warningGelb
co_errorRot
abap
me->get_input( 'txtEmail' )->set_value_state( /mobbuild/cl_value_state=>co_error ).
me->get_input( 'txtEmail' )->set_value_state_text( 'Bitte gültige E-Mail eingeben' ).

Übersicht aller Komponenten ​

Die Spalte Palette nennt den Namen, unter dem die Komponente im Designer in der Komponenten-Palette erscheint; ABAP-Zugriff den Getter der gebundenen Klasse.

BereichKomponentePaletteABAP-Zugriff
EingabeInputInputget_input
TextAreaTextAreaget_text_area
StepInputStepInputget_step_input
TimePickerTime Pickerget_time_picker
CheckBoxCheckBoxget_check_box
ComboBoxComboBoxget_combo_box
RadioGroupRadioGroupget_radio_group
SegmentedButtonSegmented Buttonget_segmented_button
SwitchSwitchget_switch
AnzeigeLabelLabelget_label
TitleTitleget_title
TextTextget_text_control
LinkLinkget_link
IconIconget_icon
ImageImageget_image
InfoLabelInfo Labelget_control
ObjectStatusObject Statusget_control
ObjectIdentifierObject Identifierget_control
GenericTagTagget_generic_tag
ProgressIndicatorProgressIndicatorget_progess_indicator
MessageStripMsgStripget_message_strip
InteraktionButtonButtonget_button
Barcode-ScannerBarcodeget_barcode
SignaturePadSignaturePadget_signature_pad
UploadFile Uploaderget_upload
Listen & TabellenListListget_list
TableTableget_table
Grid Table (ohne eigene Seite)Grid Tableget_ui_table (Klasse /mobbuild/cl_ui_table)
ContainerFlexBoxFlexBoxget_control
DynamicFlexBox (im Designer kein Container)DynamicFlexBoxget_dynamic_flex_box
PanelPanelget_control
IconTabBarIconTabBarget_icon_tab_bar
Scroll Container (ohne eigene Seite)Scroll Containerget_control
SimpleForm (ohne eigene Seite)SimpleFormget_control
Spacer (ohne eigene Seite)Spacerget_control
TilesTileTile, Tile Numeric Content, Tile Image / Icon, Tile Feed Contentget_tile, get_tile_numeric, get_tile_image, get_tile_feed
Numeric Content (ohne eigene Seite)Numeric Contentget_numeric_content (Klasse /mobbuild/cl_numeric_content)
DialogeMessageToast– (nur aus ABAP)create_message_toast
MessageBox– (nur aus ABAP)create_message_box

Komponenten ohne eigene ABAP-Klasse (FlexBox, Panel, Scroll Container, SimpleForm, Spacer, InfoLabel, ObjectStatus, ObjectIdentifier) erreichen Sie über me->get_control( '<controlId>' ) als /mobbuild/cl_control-Referenz und setzen ihre Attribute mit set_property_value – siehe Control (Basis).

Nächste Schritte ​