Verschacheltung von IF und LOOP

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

Verschacheltung von IF und LOOP

Beitrag von Barney (Specialist / 104 / 20 / 9 ) »
Hallo,

ich habe folgende Problemstellung. In Abhängigkeit von bestimmten Prüfungen möchte ein LOOP-ENDLOOP mit unterschiedlichen Bedingungen starten. Also grob gesagt etwa so:

Code: Alles auswählen.

if lf_test is initial.

  loop at itab into wa_itab where a = b.

else. 

  loop at itab into wa_itab where c = d.

endif.

   blablabla

endloop.
Das wird sicher nicht so gehen wegen INCORRECT NESTING der ganzen Kontrollstrukturen. Ich stelle mir nun die Frage, wie man das aber am geschicktesten löst.

Ich könnte halt die Schleife sowohl im IF als auch im ELSE reinziehen.

Code: Alles auswählen.

if lf_test is initial.

  loop at itab into wa_itab where a = b.
   blablabla
 endloop.

else. 

  loop at itab into wa_itab where c = d.
   blablabla
 endloop.

endif.
Um es "schöner" zu machen, könnte ich noch blablabla in einer Formroutine zusammenfassen. Aber gibt es nicht noch eine "schickere" Lösung?

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


Re: Verschacheltung von IF und LOOP

Beitrag von ST22 (Specialist / 283 / 44 / 41 ) »
du musst loop und endloop zusammenhalten! Und was du machen möchtest innerhalb des loop endloop kommandos erledigen.
Das zweite Coding wäre also das korrekte.

Gruß
Frank

Re: Verschacheltung von IF und LOOP

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Barney hat geschrieben:Hallo,

ich habe folgende Problemstellung. In Abhängigkeit von bestimmten Prüfungen möchte ein LOOP-ENDLOOP mit unterschiedlichen Bedingungen starten. Also grob gesagt etwa so:

Das wird sicher nicht so gehen wegen INCORRECT NESTING der ganzen Kontrollstrukturen. Ich stelle mir nun die Frage, wie man das aber am geschicktesten löst.

Ich könnte halt die Schleife sowohl im IF als auch im ELSE reinziehen.


Um es "schöner" zu machen, könnte ich noch blablabla in einer Formroutine zusammenfassen. Aber gibt es nicht noch eine "schickere" Lösung?
Ich finde die zweite richtige Loesung schon schicker, als den ersten, nicht funktionierenden Vorschlag.

Ist doch schon mal etwas.

Re: Verschacheltung von IF und LOOP

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
Es ist sicherlich eine Überlegung wert blablabla in eine Routine auszulagern. Man stelle sich vor du hättest 10 verschiedene WHERE-Bedingungen... und alternativer Weg wäre sich die WHERE-Bedingung dynamisch zusammenzusetzen (ab NetViewer 7.02), siehe http://www.berater-wiki.de/index.php?ti ... e-Klauseln
schöne Grüße
Alexander

ECC 6.0 EHP 7

Re: Verschacheltung von IF und LOOP

Beitrag von ewx (Top Expert / 4917 / 332 / 653 ) »
Muss nicht mal dynamisch sein.

Code: Alles auswählen.

LOOP AT itab WHERE a IN range_b
               AND c IN range_d.
ENDLOOP.
Je nach Bedingung füllt man range_b oder range_d.
Zuletzt geändert von ewx am 06.12.2013 15:21, insgesamt 1-mal geändert.

Re: Verschacheltung von IF und LOOP

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
ewx hat geschrieben:Muss nicht mal dynamisch sein.
...
stimmt, dein Vorschlag ist ein eleganter Ansatz!
schöne Grüße
Alexander

ECC 6.0 EHP 7

Seite 1 von 1

Vergleichbare Themen

1
Antw.
5500
Views
4
Antw.
6009
Views
LOOP in einem LOOP
von Bjuti » 10.09.2013 15:18 • Verfasst in ABAP® für Anfänger
39
Antw.
29624
Views
Loop
von Kai999 » 27.07.2017 16:15 • Verfasst in ABAP® für Anfänger
52
Antw.
27666
Views
LOOP AT
von cuncon » 01.02.2018 09:28 • Verfasst in ABAP® für Anfänger
34
Antw.
11690
Views
ein loop
von user2008 » 19.07.2017 10:50 • 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.