gibt es vllt. eine Methode? oder Beispiel Koding?ralf.wenzel hat geschrieben:Das ist eigentlich nicht so schwer. Du schreibst eine Methode, die per RTTI die Komponenten ausliest und als Tabelle zurückgibt und die sich selbst aufruft (mit jedem einzelnen Komponentennamen). Das ist das, was du mit rekursivem Aufruf meintest. Hab ich schon gemacht, funktioniert.
Ralf
Code: Alles auswählen.
* Struktur holen
cl_abap_structdescr=>describe_by_name( )
* Dann die komponente
lo_struct->get_components( ).
Z.B. Neue Komponente erzeugen
ls_comp-name = 'CELL'.
ls_comp-type ?= cl_abap_datadescr=>describe_by_name( 'LVC_T_STYL' ).
* Hinzufügen
APPEND ls_comp TO me->lt_comp.
* Die neue Struktur erzeugen
lo_struc_new = cl_abap_structdescr=>create( me->lt_comp ).
hi,4byte hat geschrieben:Z.B. die Klasse cl_abap_structdescr
Beispielcoding:NachtragCode: Alles auswählen.
* Struktur holen cl_abap_structdescr=>describe_by_name( ) * Dann die komponente lo_struct->get_components( ). Z.B. Neue Komponente erzeugen ls_comp-name = 'CELL'. ls_comp-type ?= cl_abap_datadescr=>describe_by_name( 'LVC_T_STYL' ). * Hinzufügen APPEND ls_comp TO me->lt_comp. * Die neue Struktur erzeugen lo_struc_new = cl_abap_structdescr=>create( me->lt_comp ).
Dient nur als Beispiel
Grüße 4Byte
Code: Alles auswählen.
method get_struct
*Hole die Komponenten der Struktur
--> Siehe mein erster beitrag
*Hat die Struktur eine Komponente die wieder eine Struktur hat?
Ich Meine hierfür gibt es Fubas, die dir den Typ der Kopmponente holen. Weis ich grad nicht auswendig
*Wenn ja dann Aufruf der Methode get_struct
me->get_struct(importing is_struct)
*Wenn Nein Abbruch --> Kein rekursiver Aufruf mehr
endmethod
https://www.tricktresor.de/blog/laufzei ... e-tabelle/isp hat geschrieben: hi,
ja es werden mit dieser Methode erstmal alle Komponente einer Struktur ermittelt, und diese können dann in die iTab übernommen werden. ist ok.
ABER..
wenn ein Feld vom Typ eine tiefe Struktur ist, d.h. es soll dann über diese Struktur weitere Schleife laufen... usw. und hier habe ich ein Problem.. entweder kann man x-mal die Loop Schleifen einbauen, oder rekursive arbeiten... aber dafür habe ich keinen Beispiel gefunden..
Danke. Diese Lösung geht aber auf die Bretter, sobald ein Feld als Tabellentyp typisiert ist.Icke0801 hat geschrieben:https://www.tricktresor.de/blog/laufzei ... e-tabelle/isp hat geschrieben: hi,
ja es werden mit dieser Methode erstmal alle Komponente einer Struktur ermittelt, und diese können dann in die iTab übernommen werden. ist ok.
ABER..
wenn ein Feld vom Typ eine tiefe Struktur ist, d.h. es soll dann über diese Struktur weitere Schleife laufen... usw. und hier habe ich ein Problem.. entweder kann man x-mal die Loop Schleifen einbauen, oder rekursive arbeiten... aber dafür habe ich keinen Beispiel gefunden..
Ich hab grad kein System.isp hat geschrieben:
Danke. Diese Lösung geht aber auf die Bretter, sobald ein Feld als Tabellentyp typisiert ist.