Code: Alles auswählen.
data: gt_1 type standard table of XYZ with default key,
ls_1 type XYZ,
ls_2 type ABC.
move-corresponding ls_2 to ls_1.
append ls_1 to gt_1.Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
1337
Du kannst eine Struktur vom Typ XYZ aber nicht an eine Tabelle vom Typ ABC anhängen!1337 hat geschrieben:Das verstehe ich nicht ganz. ls_1 wird an die Tabelle gt_1 angehängt. Wieso brauche ich da ein MOVE-CORRESPONDING? ls_1 hat doch den gleichen TYPE wie gt_1 ?a-dead-trousers hat geschrieben:Kann es sein, dass du MOVE-CORRESPONDING suchst?
Umgelegt auf dein Beispiel:lg ADTCode: Alles auswählen.
data: gt_1 type standard table of XYZ with default key, ls_1 type XYZ, ls_2 type ABC. move-corresponding ls_2 to ls_1. append ls_1 to gt_1.
Das ganze würde für mich momentan nur Sinn machen, wenn es folgendermaßen aussieht:
Code: Alles auswählen.
data: gt_1 type standard table of XYZ with default key, ls_1 type ABC, ls_2 type XYZ. move-corresponding ls_2 to ls_1. append ls_1 to gt_1.
Folgende Benutzer bedankten sich beim Autor Thanatos82 für den Beitrag:
1337
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
1337
Code: Alles auswählen.
DATA: ls_1 TPYE ABC.
DATA: ls_2 LIKE ls_1.
DATA: LT_WASWEISSICH LIKE STANDARD TABLE OF ls_1 WITH NON-UNIQUE DEFAULT KEY.Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
1337
Du kannst in der SE11 auch nach der Verwendung der einzelnen Felder suchen.1337 hat geschrieben:Ganz genau das habe ich schon getan. Ich weiß jetzt wo ABC überall verwendet wird - damit habe ich auch kein Problem. Das Problem liegt daran, dass in einer bestimmten Klasse eine Struktur vom Typ ABC deklariert wird (z.B. DATA: ls_subj TYPE ABC) - und diese Struktur später in der Klasse weiterverendet wird.
Ich würd mal sagen, dass alle "verwendet" werden. Um eine Zeile einer Tabelle hinzuzufügen, muss die Struktur (und auch die Felder) übereinstimmen.1337 hat geschrieben:Wenn ls_subj später an eine Tabelle angehängt wird weiß ich ja nicht, welche Felder vom Strukturtyp ABC verwendet werden.
Bei ersterem müssen beide ("ls_1" und "ls_2") strukturiert sein.1337 hat geschrieben:Andere Frage die mich gerade beschäftigt:Code: Alles auswählen.
Data: ls_1 TYPE XYZ. * ls_2 wird nicht typisiert. MOVE-CORRESPONDING ls_1 TO ls_2. ls_2 = ls_1.
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
1337
Es gibt auch einen Verwendungsnachweis für Strukturfelder in der SE11. Oder du musst die ganze Klasse manuell durchsuchen.1337 hat geschrieben:Aber ich sehe hier ja nicht welche Felder cs_struc von ABC wirklich verwendet.
cs_struc wird in dieser Klasse ausschließlich in diesem Zusammenhang verwendet.JHM hat geschrieben:Es gibt auch einen Verwendungsnachweis für Strukturfelder in der SE11. Oder du musst die ganze Klasse manuell durchsuchen.1337 hat geschrieben:Aber ich sehe hier ja nicht welche Felder cs_struc von ABC wirklich verwendet.
Was mir bei der ganzen Aufgabenstellung fehlt ist der Grund für den Strukturtausch. Anscheinend ändert sich ja nicht nur der Name der Struktur, sondern auch die enthaltenen Felder sollen getauscht werden bzw. Feldnamen angepasst werden.
Code: Alles auswählen.
Data: ls_1 TYPE ABC.
ls_1-name = XYZ.
Code: Alles auswählen.
Data: ls_1 TYPE ABC,
lt_1 TYPE ABC.
If <aaa_data> is initial.
CALL METHOD
lr_bbb->klassenname~get_attributes
CHANGING
cs_struc = ls_1.
APPEND ls_1 TO lt_1.
Folgende Benutzer bedankten sich beim Autor Thanatos82 für den Beitrag:
1337