Skip to content

Tile

Klickbare Kachel im Fiori-Stil zur Anzeige eines Kennwerts (KPI, Status, Aufgabenanzahl). Tiles werden meist in einer DynamicFlexBox angeordnet und können statisch im Designer oder dynamisch über die ABAP-API erzeugt werden.

Designer-Attribute

AttributBeschreibungDefault
controlIdEindeutige IDautomatisch generiert
headerHauptzeile (KPI-Titel)
subheaderUnterzeile
footerFußzeile
footerColorIndikationsfarbe für den Footer (Neutral, Good, Error, Critical, Negative)Neutral
unitEinheit (z.B. , %)
frameTypeRahmenformat (OneByOne, TwoByOne, OneByHalf, TwoByHalf, Auto)OneByOne
backgroundImageHintergrundbild-URL
onPressEvent-Methodenname
enabledKlickbartrue
visibleSichtbartrue

ABAP-API

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

MethodeZweck
GET_HEADER / SET_HEADERHauptzeile
GET_SUBHEADER / SET_SUBHEADERUnterzeile
GET_FOOTER / SET_FOOTERFußzeile
SET_FOOTERCOLORIndikationsfarbe
GET_UNIT / SET_UNITEinheit
SET_FRAMETYPERahmenformat
SET_BACKGROUND_IMAGEHintergrundbild

Konstruktor für dynamische Tiles: /mobbuild/cl_tile=>create( ).

Die set_*-Methoden geben das Tile-Objekt zurück und lassen sich verketten (Fluent-API).

Geerbte Methoden: siehe Control.

Beispiel: /mobbuild/cl_ex_tile

Das Beispiel erzeugt bei jedem Klick auf btnAdd eine neue Tile mit zufälliger Footer-Farbe und hängt sie in eine DynamicFlexBox. Über btnClear werden alle Tiles wieder entfernt.

abap
METHOD on_pai.

  DATA(lv_event_key) = me->get_event( )->get_event_key( ).

  IF lv_event_key EQ 'Add'.

    DATA(lo_container) = me->get_dynamic_flex_box( 'dynamicFlexBox' ).

    DATA(lv_index)       = lines( lo_container->get_items( ) ).
    DATA(lv_control_id)  = |tileDynamic{ lv_index }|.
    DATA(lv_header)      = |Tile { lv_index }|.
    DATA(lv_subheader)   = |Subtext { lv_index }|.
    DATA(lv_footer)      = |Footer { lv_index }|.
    DATA(lv_unit)        = ||.

    DATA lt_colors TYPE STANDARD TABLE OF string WITH DEFAULT KEY.
    lt_colors = VALUE #(
      ( |Neutral| ) ( |Good| ) ( |Error| )
      ( |Critical| ) ( |Negative| ) ).

    DATA(lv_color_index) = cl_abap_random_int=>create(
      seed = CONV i( sy-uzeit ) min = 1 max = 4 )->get_next( ).

    READ TABLE lt_colors INDEX lv_color_index INTO DATA(lv_color).

    DATA(lo_tile) = /mobbuild/cl_tile=>create( ).

    lo_tile->set_control_id( lv_control_id ).
    lo_tile->set_header( lv_header
      )->set_subheader( lv_subheader
      )->set_footer( lv_footer
      )->set_footercolor( lv_color
      )->set_unit( lv_unit
      )->set_frametype( 'OneByOne' ).

    " Event-Key auf den Control-Namen setzen
    lo_tile->set_property_value(
      iv_key   = 'onPress'
      iv_value = lv_control_id ).

    lo_container->add_item( lo_tile ).

  ELSEIF lv_event_key EQ 'Clear'.

    me->get_dynamic_flex_box( 'dynamicFlexBox' )->remove_items( ).

  ENDIF.

ENDMETHOD.

Footer-Farben

Die Footer-Farbe folgt der Fiori-Indikationspalette: Neutral (grau), Good (grün), Error (rot), Critical (orange), Negative (rot). Sie können dieselben Werte auch über /mobbuild/cl_indication_color=>co_* als Konstanten setzen.

Events im Designer

EventAuslöser
onPressKlick auf die Kachel

Nächste Schritte

  • DynamicFlexBox – Container für dynamisch erzeugte Tiles
  • Button – einfache Aktion ohne KPI-Charakter