* irgendeine interne Tablelle anlegen DATA: it_tab TYPE STANDARD TABLE OF ... * generische Tabellenreferenz anlegen DATA: o_ref_table TYPE REF TO data. ... * Tabellenreferenz übergeben o_ref_table = REF #( it_tab ). * Referenz auf generisches Feldsymbol mappen FIELD-SYMBOLS: <tab> TYPE ANY TABLE. ASSIGN o_ref_table->* TO <tab>. * Tabellen-Zeile erzeugen * muss hier erfolgen, damit man ein "greifbares" Tabellen-Zeilen-Objekt * für die Strukturermittlung (describe_by_data) hat DATA: o_row TYPE REF TO data. CREATE DATA o_row LIKE LINE OF <tab>. FIELD-SYMBOLS: <row> TYPE any. ASSIGN o_row->* TO <row>. * Komponenten (Spalten) einer Tabellenzeile ermitteln DATA(o_struct) = CAST cl_abap_structdescr( cl_abap_typedescr=>describe_by_data( <row> ) ). DATA(it_comp_tab) = o_struct->get_components( ). * Anzahl Spalten der Tabellen-Zeile holen DATA(lv_colcnt) = lines( it_comp_tab ). * Tabelle durchloopen LOOP AT <tab> ASSIGNING <row>. * Spalten der akt. Zeile durchgehen DO lv_colcnt TIMES. * Zelle: n-tes Element der akt. Zeile holen ASSIGN COMPONENT sy-index OF STRUCTURE <row> TO FIELD-SYMBOL(<cell>). * Trennzeichen vor die Spalte einfügen, wenn nicht 1. Spalte IF sy-index > 1. WRITE: '|'. ENDIF. * Achtung: Zell-Typ beachten! Es können hier nur flache Typen (Keine Strukturen, Tabellen) ausgegeben werden, der Rest muss gesondert behandelt werden IF CAST cl_abap_elemdescr( it_comp_tab[ sy-index ]-type )->kind = cl_abap_elemdescr=>kind_elem. * Ausgabe Zellinhalt mit vordefinierter Spaltenbreite WRITE: |{ <cell> WIDTH = 20 |. ENDIF. ENDDO. NEW-LINE. ENDLOOP.
Kategorien
-
Neueste Beiträge
- [ABAP] DMS: Dokumentenstatus lesen
- [ABAP] DMS: Dokumentenstatus setzen
- [ABAP] Daten zu einem PSP-Element lesen
- [ABAP] IDOC als XML anzeigen
- [ABAP] Ergebnisse eines SQL-Ausdrucks in einer Zeile verketten (STRING_AGG)
- [SAP] Profit Center
- [SAP Fiori] Setup Fiori My Inbox
- [SAP Fiori] Setup der Fiori Suche / Fiori search
- [ABAP] Liste aller Umgebungsvariablen
- [ABAP] Muster-Leistungsverzeichnisse lesen