Skip to content

Table ​

Tabellarische Darstellung mehrerer Zeilen mit gleichem Schema. Unterstützt Mehrfachauswahl, Datenbindung an interne Tabellen aus ABAP und individuell konfigurierbare Spalten.

Designer-Attribute ​

AttributBeschreibungDefault
controlIdEindeutige IDautomatisch generiert
modeDarstellungsmodus. Werte: None, SingleSelect, SingleSelectLeft, SingleSelectMaster, MultiSelect, DeleteNone
hiddenInPopinSpalten mit dieser Wichtigkeit werden im Popin ausgeblendet. Werte: None, Low, Medium, High–
autoPopinModeSpalten je nach Bildschirmbreite automatisch in Popins umbrechen (zusammen mit importance je Spalte)true
visibleSichtbartrue
spanS / spanM / spanL / spanXLGrid-Layout12

TableColumn ​

AttributBeschreibungDefault
controlIdEindeutige ID der Komponenteautomatisch generiert
nameFeldname der gebundenen Datenzeile–
textSpaltenüberschrift–
widthSpaltenbreite (CSS-Wert)auto
hAlignHorizontale Ausrichtung. Werte: Begin, End, Left, Right, Center, InitialBegin
importanceWichtigkeit der Spalte für den Popin-Umbruch. Werte: None, Low, Medium, HighNone
demandPopinSpalte bei schmalem Bildschirm in ein Popin umbrechenfalse
minScreenWidthMindestbreite, ab der die Spalte sichtbar ist–
visibleKomponente sichtbartrue

ABAP-API ​

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

MethodeZweck
BINDInterne Tabelle als Datengrundlage setzen
GET_ROWSAlle Zeilen-Referenzen
GET_SELECTED_ROWSSelektierte Zeilen
GET_MODE / SET_MODEAuswahlmodus
INITHebt die Auswahl aller Zeilen auf und entfernt alle Zeilen
ADD_COLUMNSpalte hinzufügen (/mobbuild/cl_table_column); eine vorhandene Spalte gleichen Namens wird ersetzt
ADD_COLUMNSMehrere Spalten hinzufügen (Tabelle von /mobbuild/cl_table_column)
ADD_ITEMZell-Template für eine Spalte hinterlegen (siehe unten)
ADD_ITEMSMehrere Zell-Templates hinterlegen (ersetzt die vorhandenen)
GET_COLUMNSpalte nach name
GET_COLUMNSAlle Spalten
GET_ITEMZell-Template nach Spalten-name
GET_ITEMSAlle Zell-Templates
REMOVE_COLUMNSpalte nach name entfernen
REMOVE_COLUMNSAlle Spalten entfernen
REMOVE_ITEMZell-Template nach Spalten-name entfernen
REMOVE_ITEMSAlle Zell-Templates entfernen
REMOVE_ROWSAlle Zeilen entfernen

Geerbte Methoden: siehe Control.

BIND ​

ÜbergabeTypBeschreibung
IT_DATAbeliebige interne TabelleWird als Datenquelle hinterlegt – pro Eintrag entsteht eine Tabellenzeile.

Zell-Templates (Items) ​

„Items" einer Table sind keine Datenzeilen, sondern Zell-Templates: Sie legen je Spalte fest, welche Komponente in der Zelle gerendert wird und aus welchem Feld der gebundenen Zeile sie ihren Inhalt bezieht. Die Zuordnung läuft über den Spalten-name. Datenzeilen entstehen ausschließlich über bind; für Spalten ohne Zell-Template setzt die Table ein Label ein, das den gleichnamigen Feldwert anzeigt.

KlasseZelleKonstruktor
/mobbuild/cl_table_labelLabeliv_name, iv_text_field, optional iv_bold
/mobbuild/cl_table_statusObjectStatus mit Indikationsfarbeiv_name, iv_text_field, optional iv_title_field, io_object_state (Implementierung von /mobbuild/if_object_status, bestimmt Farbe und Invertierung aus dem Text)
/mobbuild/cl_table_identifierObjectIdentifier (Titel + Text)iv_name, iv_text_field, optional iv_title_field
abap
DATA(lo_table) = me->get_table( 'tblExample' ).

" Spalte 'matnr' als fette Beschriftung, Spalte 'maktx' als Titel/Text-Paar
lo_table->add_item( NEW /mobbuild/cl_table_label( iv_name = 'matnr' iv_text_field = 'matnr' iv_bold = abap_true ) ).
lo_table->add_item( NEW /mobbuild/cl_table_identifier( iv_name = 'maktx' iv_title_field = 'matnr' iv_text_field = 'maktx' ) ).

lo_table->bind( lt_data ).

Die Zell-Templates müssen vor bind hinterlegt sein – bind wertet sie beim Aufbau jeder Zeile aus.

Zeilen-API (TableRow) ​

get_rows( ) und get_selected_rows( ) liefern Referenzen auf einzelne Zeilen:

MethodeZweck
GET_DATALiefert die ABAP-Strukturdaten der Zeile (über CHANGING co_data = ls_data)
GET_SELECTED / SET_SELECTEDSelektionsstatus der Zeile
GET_CONTROLKomponente einer Zelle nach Spaltenname (iv_name)

Beispiel: /mobbuild/cl_ex_table ​

Das Beispiel füllt die Tabelle mit Test-Daten, selektiert eine Zeile vor und gibt beim Submit die selektierten Zeilen als Toast aus:

abap
METHOD on_pbo.

  DATA(lt_data) = /mobbuild/cl_ex_test_data=>get_material_table( iv_count = 50 ).

  DATA(lo_table) = me->get_table( 'tblExample' ).
  lo_table->bind( lt_data ).

  " Beispiel-Vorauswahl: Zeile mit matnr = 'MATERIAL2' markieren
  LOOP AT lo_table->get_rows( ) ASSIGNING FIELD-SYMBOL(<fs_row>).

    DATA ls_data TYPE /mobbuild/cl_ex_test_data=>ty_material.
    <fs_row>->get_data( CHANGING co_data = ls_data ).

    IF ls_data-matnr EQ 'MATERIAL2'.
      <fs_row>->set_selected( abap_true ).
    ENDIF.

  ENDLOOP.

ENDMETHOD.
abap
METHOD on_pai.

  DATA(lo_table)        = me->get_table( 'tblExample' ).
  DATA(lt_selected_row) = lo_table->get_selected_rows( ).

  DATA(lv_msg) = CONV string( 'selected:' ).

  LOOP AT lt_selected_row INTO DATA(ls_selected_row).

    DATA ls_data TYPE /mobbuild/cl_ex_test_data=>ty_material.
    ls_selected_row->get_data( CHANGING co_data = ls_data ).
    lv_msg = |{ lv_msg }{ ls_data-matnr };|.

  ENDLOOP.

  me->set_message_toast( me->create_message_toast( iv_text = lv_msg ) ).

ENDMETHOD.

Spaltenbindung

Die Felder Ihrer ABAP-Strukturzeile werden über das Attribut name der TableColumn gemappt (der Designer setzt die controlId der Spalte automatisch gleich name). Achten Sie darauf, dass name mit dem ABAP-Feldnamen übereinstimmt; ohne eigenes Item wird der Feldwert als Text in der Zelle angezeigt.

Events im Designer ​

EventAuslöser
onSelectionChangeSelektion einer Zeile geändert

Nächste Schritte ​