feldzuweisung in schleife

Getting started ... Alles für einen gelungenen Start.
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

feldzuweisung in schleife

Beitrag von simethandreas (ForumUser / 26 / 0 / 0 ) »
hallo zusammen...ich bin absoluter neuling in sachen abap und hätte da gleich mal meine erste frage :)
ich muss ein bestehendes projekt von einem kollegen weiterbearbeiten.
nun hab ich folgenden codeausschnitt:

wa_test-feld1 = wa_rows-field1.
wa_test-feld2 = wa_rows-field2.
wa_test-feld3= wa_rows-field3.
...
wa_test-feld50 = wa_rows-field50.

kann man diese zuweisung in einer schleife automatisiern?
also in andren programmiersprachen würd ichs ja so machen:

for (int i=1; i<=50; i++)
{
wa_test-feld = wa_rows-field[1].
}

wie geht das in abap?

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: feldzuweisung in schleife

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo Andreas,

in ABAP gibt es den Befehl MOVE-CORESPONDING, der alle namensgleiche Felder kopiert. (siehe Hilfe)

Ansonsten gibt es auch noch dynamische Varianten, mit denen man so etwas lösen kann.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Re: feldzuweisung in schleife

Beitrag von simethandreas (ForumUser / 26 / 0 / 0 ) »
danke für deine Antwort.
aber ich glaube mit MOVE-CORRESPONDING komm ich in meinen fall nicht weit oder?
weil da ja die feldnamen gleich sein müssen oder? und ich hab ja ...feld1 = ...field1

Re: feldzuweisung in schleife

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Servus Andreas,

naja, ne schöne Lösung wirds nicht gerade, aber funktionieren sollte es:

Code: Alles auswählen.

DATA: feldname1 TYPE string,
        feldname2 TYPE string,
        index(2)  TYPE c.

  FIELD-SYMBOLS: <quelle> TYPE ANY,
                 <ziel> TYPE ANY.

  DO 50 TIMES.
    index = sy-index.
    CONCATENATE 'wa_test-feld'  index INTO feldname1.
    CONCATENATE 'wa_rows-field' index INTO feldname2.
    ASSIGN (feldname1) TO <ziel>.
    ASSIGN (feldname2) TO <quelle>.

    <ziel> = <quelle>.
  ENDDO.
Das Ganze habe ich aber nicht getestet, schliesse also Fehler nicht aus. Sicher gibts auch noch intelligentere Lösungen...

Grüße

Re: feldzuweisung in schleife

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Nochmal nachgedacht, es gab mal (oder gibt noch) DO ... VARYING. Das ist aber obsolet, vor allem in UNICODE Programmen. Statt dessen kann man es durch ASSIGN INCREMENT ersetzen.

Das Ganze könnte ungefähr so aussehen:

Code: Alles auswählen.

 Data: inc type i.

FIELD-SYMBOLS: <quelle> TYPE ANY,
                 <ziel> TYPE ANY.

DO 50 times. 
   inc = sy-index  - 1. 
   ASSIGN wa_rows-field1 INCREMENT inc TO <quelle> RANGE wa_rows. 
   ASSIGN wa_test-feld1 INCREMENT inc TO <ziel> RANGE wa_test. 
   <ziel> = <quelle>.  
ENDDO. 

Ist ungetestet, musst vielleicht rumspielen. Und immer schön SY-SUBRC abfragen...ein nicht assign'tes Feldsymbol dumped.

Grüße
Christoph

Seite 1 von 1

Vergleichbare Themen

4
Antw.
3159
Views
Dynamische Feldzuweisung
von SAP_ENTWICKLER » 06.12.2017 15:45 • Verfasst in ABAP® Core
2
Antw.
1440
Views
Feldzuweisung in einem Select
von ermel » 25.07.2008 11:03 • Verfasst in ABAP® für Anfänger
17
Antw.
4140
Views
Hilfe! Feldzuweisung nach Select
von Nici » 09.06.2005 09:05 • Verfasst in ABAP® für Anfänger
6
Antw.
2901
Views
COND in Schleife
von SaskuAc » 18.06.2018 08:08 • Verfasst in ABAP® für Anfänger
1
Antw.
1484
Views
Dynamisierung von Schleife
von dvdh1979 » 05.06.2015 12:07 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Regex in where
vor einer Stunde von edwin 1 / 22
Programm anlegen mit Vorlage
vor 5 Stunden von DeathAndPain 2 / 81
IT0024 Qualifikationen CP-ID
vor 5 Stunden von DeathAndPain 2 / 324
BUSOBJEKT zu CMIS PHIO ermitteln
vor 7 Stunden von snooga87 1 / 58

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Regex in where
vor einer Stunde von edwin 1 / 22
Programm anlegen mit Vorlage
vor 5 Stunden von DeathAndPain 2 / 81
IT0024 Qualifikationen CP-ID
vor 5 Stunden von DeathAndPain 2 / 324
BUSOBJEKT zu CMIS PHIO ermitteln
vor 7 Stunden von snooga87 1 / 58

Unbeantwortete Forenbeiträge

Regex in where
vor einer Stunde von edwin 1 / 22
BUSOBJEKT zu CMIS PHIO ermitteln
vor 7 Stunden von snooga87 1 / 58
aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3234