Einfügen neue Felder in eine Struktur


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

Einfügen neue Felder in eine Struktur

Beitragvon cuncon » 16.03.2018, 08:46

Hallo zusammen,

ich möchte durch eine Schleife die neue Felder in eine Struktur einfügen.

zB: ich habe folgende Struktur:

TYPES: BEGIN OF st_extend,
atnam1 TYPE cabn-atnam,
atwrt1 TYPE cawn-atwrt,
END OF st_extend.

DATA: ls_extend TYPE st_extend.

DO 5 TIMES.
.....
ENDDO.

Nach der 5 mal Durchlauf der DO Schleife soll die Struktur ls_extend die Felder atnam1 atwrt1 atnam2 atwrt2 atnam3 atwrt3 atnam4 atwrt4 atnam5 atwrt5 haben.
Wie macht man das? Es muss NICHT während der Laufzeit passieren.

Danke
cuncon
cuncon
ForumUser
 
Beiträge: 94
Registriert: 18.10.2017, 21:03
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Einfügen neue Felder in eine Struktur

Beitragvon Hotzenplotz » 16.03.2018, 09:44

Hallo cuncon,
da wirst du wohl nicht drum herum kommen, die Felder explizit in deiner TYPES Anweisung mit zu deklarieren. Wenn zur Laufzeit die Struktur Verwendung finden soll, brauchst du natürlich auch eine interne Tabelle:
DATA: ls_extend TYPE st_extend.
DATA: lt_extend TYPE TABLE OF st_extend.
Zuletzt geändert von Hotzenplotz am 16.03.2018, 09:47, insgesamt 2-mal geändert.

Für diese Nachricht hat Hotzenplotz einen Dank bekommen :
cuncon
Hotzenplotz
ForumUser
 
Beiträge: 7
Registriert: 12.01.2018, 12:19
Dank erhalten: 1 mal
Ich bin: Entwickler/in

Re: Einfügen neue Felder in eine Struktur

Beitragvon a-dead-trousers » 16.03.2018, 09:44

Code: Alles auswählen
TYPES: BEGIN OF st_fields,
atnam TYPE cabn-atnam,
atwrt TYPE cawn-atwrt,
END OF st_fields.
TYPES BEGIN OF st_extend.
INCLUDE TYPE st_fields RENAMING WITH SUFFIX '1'.
INCLUDE TYPE st_fields RENAMING WITH SUFFIX '2'.
INCLUDE TYPE st_fields RENAMING WITH SUFFIX '3'.
INCLUDE TYPE st_fields RENAMING WITH SUFFIX '4'.
INCLUDE TYPE st_fields RENAMING WITH SUFFIX '5'.
TYPES END OF st_extend.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40

Für diese Nachricht hat a-dead-trousers einen Dank bekommen :
cuncon
a-dead-trousers
Top Expert
 
Beiträge: 2844
Registriert: 07.02.2011, 13:40
Dank erhalten: 685 mal
Ich bin: Entwickler/in

Re: Einfügen neue Felder in eine Struktur

Beitragvon cuncon » 16.03.2018, 14:22

a-dead-trousers hat geschrieben:
Code: Alles auswählen
TYPES: BEGIN OF st_fields,
atnam TYPE cabn-atnam,
atwrt TYPE cawn-atwrt,
END OF st_fields.
TYPES BEGIN OF st_extend.
INCLUDE TYPE st_fields RENAMING WITH SUFFIX '1'.
INCLUDE TYPE st_fields RENAMING WITH SUFFIX '2'.
INCLUDE TYPE st_fields RENAMING WITH SUFFIX '3'.
INCLUDE TYPE st_fields RENAMING WITH SUFFIX '4'.
INCLUDE TYPE st_fields RENAMING WITH SUFFIX '5'.
TYPES END OF st_extend.

lg ADT

Danke , es hat geklappt :).
cuncon
ForumUser
 
Beiträge: 94
Registriert: 18.10.2017, 21:03
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Re: Einfügen neue Felder in eine Struktur

Beitragvon DeathAndPain » 16.03.2018, 18:36

Ich staune, dass dieses Problem gelöst werden konnte, denn ich habe die Frage gar nicht verstanden angesichts des Widerspruchs

Nach der 5 mal Durchlauf der DO Schleife ... muss NICHT während der Laufzeit ...

Ich so: http://alteredqualia.com/xg/examples/deferred_skin.html
DeathAndPain
Expert
 
Beiträge: 516
Registriert: 05.05.2006, 10:14
Dank erhalten: 128 mal
Ich bin: Entwickler/in

Re: Einfügen neue Felder in eine Struktur

Beitragvon a-dead-trousers » 17.03.2018, 13:15

DeathAndPain hat geschrieben:Ich staune, dass dieses Problem gelöst werden konnte, denn ich habe die Frage gar nicht verstanden angesichts des Widerspruchs

Nach der 5 mal Durchlauf der DO Schleife ... muss NICHT während der Laufzeit ...

Der Satz und die Aufzählung der Feldnamen hat es für mich verraten:
cuncon hat geschrieben:Nach der 5 mal Durchlauf der DO Schleife soll die Struktur ls_extend die Felder atnam1 atwrt1 atnam2 atwrt2 atnam3 atwrt3 atnam4 atwrt4 atnam5 atwrt5 haben.

Zuerst wollt ich schon auf RTTI/RTTC verweisen, aber dann hab ich noch den Zusatz mit "NICHT während der Laufzeit" gesehen. Dann war alles klar. Statisch ist es auch viel einfacher als dynamisch.
DeathAndPain hat geschrieben:Ich so: http://alteredqualia.com/xg/examples/deferred_skin.html

:P
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40
a-dead-trousers
Top Expert
 
Beiträge: 2844
Registriert: 07.02.2011, 13:40
Dank erhalten: 685 mal
Ich bin: Entwickler/in


Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
ABAP Übung - ORDER
vor 5 Stunden von DeathAndPain 5 Antw.
export to Memory ID
vor 6 Stunden von DeathAndPain 21 Antw.
gelöst Interne Tabelle mit kopfzeile umwandeln
vor 6 Stunden von DeathAndPain 3 Antw.
Eigene Kalkulation mit CK_F_MATERIAL_CALC
vor 12 Stunden von MartinZapf 0 Antw.
cl_gui_docking_container auf neue ebene anzeigen
vor 10 Stunden von Abapanfänger 8 Antw.

  Ähnliche Beiträge beta
gelöst ALV markierte Zeilen in neue Tabelle einfügen
08.10.2013, 07:43 von Christina2604 8 Antw.
Neue Bestellposition per User Exit / BAdI einfügen
13.11.2015, 12:01 von black_adept 7 Antw.
Feld in eine Z-Datenbanktabelle einfügen
22.12.2016, 14:09 von Manfred K. 0 Antw.
gelöst Neue Felder im Lieferantenstammsatz zeigen/pflegen
25.02.2016, 12:02 von Nordlicht 4 Antw.
gelöst Einfügen zweier interner Tabellen in eine dritte mit LOOP
13.12.2017, 12:27 von DeathAndPain 4 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!