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.
3416
Views
Dynamische Feldzuweisung
von SAP_ENTWICKLER » 06.12.2017 15:45 • Verfasst in ABAP® Core
2
Antw.
1522
Views
Feldzuweisung in einem Select
von ermel » 25.07.2008 11:03 • Verfasst in ABAP® für Anfänger
6
Antw.
3641
Views
COND in Schleife
von SaskuAc » 18.06.2018 08:08 • Verfasst in ABAP® für Anfänger
1
Antw.
1577
Views
Dynamisierung von Schleife
von dvdh1979 » 05.06.2015 12:07 • Verfasst in ABAP® für Anfänger
1
Antw.
858
Views
Fortführen der Schleife
von ichse18577 » 18.04.2019 07:33 • 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

SAPGui 8.00 32 Bit vs 64 Bit
vor 32 Minuten von waltersen 2 / 586
IBAN und BUT0BK
vor 53 Minuten von waltersen gelöst 6 / 6894
Splitter-AlV erscheint nicht
vor 59 Minuten von qyurryus 2 / 60
Speichern Popup in MM42 verhindern
vor 5 Stunden von Noodl 1 / 93

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

SAPGui 8.00 32 Bit vs 64 Bit
vor 32 Minuten von waltersen 2 / 586
IBAN und BUT0BK
vor 53 Minuten von waltersen gelöst 6 / 6894
Splitter-AlV erscheint nicht
vor 59 Minuten von qyurryus 2 / 60
Speichern Popup in MM42 verhindern
vor 5 Stunden von Noodl 1 / 93