Code: Alles auswählen.
Durch die Angabe WITH HEADER LINE wird mit der Tabelle eine Kopfzeile, d.h. ein Feld gleichen Namens angelegt. Ihr Typ entspricht dem Zeilentyp der Tabelle.
Code: Alles auswählen.
Verbot von Tabellen mit Kopfzeilen
In ABAP Objects dürfen nur Tabellen ohne Kopfzeilen deklariert werden.
In ABAP Objects Fehlermeldung bei:
DATA itab TYPE|LIKE TABLE OF ... WITH HEADER LINE.
Korrekte Syntax:
DATA: itab TYPE|LIKE TABLE OF ... ,
wa LIKE LINE OF itab.
Grund:
Es hängt von der Anweisung ab, ob bei Tabellen mit Kopfzeile auf Tabellenkörper oder Kopfzeile zugegriffen wird. Der Tabellenname soll eindeutig die Tabelle bezeichnen. Programme werden leichter lesbar. Tabellen mit Kopfzeilen bieten keinerlei Performance-Vorteile.
Anmerkung:
Beim Aufruf externer Prozeduren (Unterprogramme und Funktionsbausteine), die in der Parameterschnittstelle TABLES-Parameter enthalten, ist zu beachten, daß zu einem TABLES-Parameter außer dem Tabellenkörper auch immer eine Kopfzeile gehört. Bei der Übergabe einer Tabelle ohne Kopfzeile bleibt die Kopfzeile des TABLES-Parameters initial. Beim Aufruf solcher Prozeduren in Methoden, muß überprüft werden, ob die Übergabe der Kopfzeile in der Prozedur erwartet und dort ausgewertet wird. Gegebenenfalls muß die Prozedur angepaßt oder neu geschrieben werden. Schnittstellen von Methoden haben keine TABLES-Parameter.
-> die Realität sieht anders aus ...Steff hat geschrieben:und mittlerweile eigentlich auch nicht mehr gebraeuchlich (unuebersichtlicher Programmierstil).
Steff
tja, da ist es wieder, das Problem: Wer billig einkauft, nicht weiterbildet, der bekommt auch billigen Code, selber schuld. (Unperformant, unübersichtlich, fehleranfällig nicht in OO übertragbar etc.)Asaph hat geschrieben:-> die Realität sieht anders aus ...Steff hat geschrieben:und mittlerweile eigentlich auch nicht mehr gebraeuchlich (unuebersichtlicher Programmierstil).
Steff
-> solange keine Richtlinien von Firmen erlassen werden , wird munter mit beiden Tabellentypen weitergearbeitet
lg Andreas
Code: Alles auswählen.
data : i_mara like mara occurs 0.
data : wa_mara like line of i_mara.
Code: Alles auswählen.
DATA: t_tab TYPE TABLE OF irgendwas.
FIELD-SYMBOLS: <t_tab> LIKE LINE OF t_tab.
LOOP AT t_tab ASSIGNING <t_tab>.
IF <t_tab>-feld0 = 'X'.
MOVE 'hurz' TO <t_tab>-feld1.
ENDIF.
ENDLOOP.