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
Specialist
 
Beiträge: 124
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: 18
Registriert: 12.01.2018, 12:19
Dank erhalten: 2 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: 3089
Registriert: 07.02.2011, 13:40
Dank erhalten: 762 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
Specialist
 
Beiträge: 124
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: 812
Registriert: 05.05.2006, 10:14
Dank erhalten: 189 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: 3089
Registriert: 07.02.2011, 13:40
Dank erhalten: 762 mal
Ich bin: Entwickler/in


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

  Aktuelle Beiträge   
Scope items
Gestern von SAP_ENTWICKLER 0 Antw.
Favoriten-Menü in selbst programmierter Werthilfe
Gestern von ralf.wenzel 6 Antw.
gelöst Erweitern Matchcode KREDA/M_KREDA /LFA1)
vor 16 Stunden von deejey 7 Antw.
BAPI_CHARACT_CHANGE (Änderung Klassifizierung)
Gestern von sap_inchen 0 Antw.
Query SQVI - Benutzergruppe wechseln
vor 7 Stunden von wreichelt 7 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.
gelöst Neue Felder im Lieferantenstammsatz zeigen/pflegen
25.02.2016, 12:02 von Nordlicht 4 Antw.
Feld in eine Z-Datenbanktabelle einfügen
22.12.2016, 14:09 von Manfred K. 0 Antw.
gelöst Eine neue Nachricht in T100 hinzufügen ( Gibt es BAPI?)
16.10.2015, 07:44 von ibo 10 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder