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.
3146
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.
4127
Views
Hilfe! Feldzuweisung nach Select
von Nici » 09.06.2005 09:05 • Verfasst in ABAP® für Anfänger
6
Antw.
2870
Views
COND in Schleife
von SaskuAc » 18.06.2018 08:08 • Verfasst in ABAP® für Anfänger
1
Antw.
1482
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

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 767
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2389
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8974