Loops Zusammenfassen

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Loops Zusammenfassen

Beitrag von BMWi801 (ForumUser / 20 / 3 / 0 ) »
Hallo,
ich habe zwei Loops und stell mir die Frage, ob ich die beiden irgendwie zusammenfassen kann? Habe versucht ein altes Programm auf interne Tabellen umzuschreiben und habe erstmal das als zwischenlösung gefunden.

Code: Alles auswählen.

    LOOP AT itab_mahn TRANSPORTING NO FIELDS
        WHERE sgtxt+45(2) = '91' OR sgtxt+45(2) = '92'
      m_dat+0(2) = 19.

    m_dat+2(2) = bseg-sgtxt+45(2).
    m_dat+4(2) = bseg-sgtxt+42(2).
    m_dat+6(2) = bseg-sgtxt+39(2).

    IF bseg-sgtxt+39(10) = ' '
      OR m_dat = mhnd-laufd.
    ENDIF.
    endloop.
    
   LOOP AT itab_mahn TRANSPORTING NO FIELDS
        WHERE sgtxt+45(2) ne '91' OR sgtxt+45(2) ne '92'
      m_dat+0(2) = 20.

    m_dat+2(2) = bseg-sgtxt+45(2).
    m_dat+4(2) = bseg-sgtxt+42(2).
    m_dat+6(2) = bseg-sgtxt+39(2).

    IF bseg-sgtxt+39(10) = ' '
      OR m_dat = mhnd-laufd.
    ENDIF.
    endloop.
danke im vorraus :)

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


Re: Loops Zusammenfassen

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »

Code: Alles auswählen.

    LOOP AT itab_mahn ASSIGNING <ls_mahn>.
    m_dat+2(2) = bseg-sgtxt+45(2).
    m_dat+4(2) = bseg-sgtxt+42(2).
    m_dat+6(2) = bseg-sgtxt+39(2).

    IF <ls_mahn>-sgtxt+45(2) = '91' OR <ls_mahn>-sgtxt+45(2) = '92'.
      m_dat+0(2) = 19.
    ELSE.
      m_dat+0(2) = 20.
    ENDIF.

    IF bseg-sgtxt+39(10) = ' '
      OR m_dat = mhnd-laufd.
    ENDIF.
    endloop.
Simples Refactoring :wink:
Aber Achtung mit den Jahreszahlen: Nur 91 und 92 werden zu 1991 und 1992. Das schaut mir nach einem Fehler im ursprünglichen Coding aus.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
BMWi801

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.18
Basis: 7.50

Re: Loops Zusammenfassen

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Ich glaub aber auch, dass deine Variablen etwas falsch benannt sind. So macht das Coding IMHO etwas mehr Sinn:

Code: Alles auswählen.

field-symbols: <ls_mahn> like line of itab_mahn.
    LOOP AT itab_mahn ASSIGNING <ls_mahn>.
    m_dat+2(2) = <ls_mahn>-sgtxt+45(2).
    m_dat+4(2) = <ls_mahn>-sgtxt+42(2).
    m_dat+6(2) = <ls_mahn>-sgtxt+39(2).

    IF <ls_mahn>-sgtxt+45(2) = '91' OR <ls_mahn>-sgtxt+45(2) = '92'.
      m_dat+0(2) = 19.
    ELSE.
      m_dat+0(2) = 20.
    ENDIF.

    IF <ls_mahn>-sgtxt+39(10) = ' '
      OR m_dat = <ls_mahn>-laufd.
* Hier fehlt der Code der ausgeführt werden soll
    ENDIF.
    endloop.
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.18
Basis: 7.50

Re: Loops Zusammenfassen

Beitrag von BMWi801 (ForumUser / 20 / 3 / 0 ) »
a-dead-trousers hat geschrieben:

Code: Alles auswählen.

    LOOP AT itab_mahn ASSIGNING <ls_mahn>.
    m_dat+2(2) = bseg-sgtxt+45(2).
    m_dat+4(2) = bseg-sgtxt+42(2).
    m_dat+6(2) = bseg-sgtxt+39(2).

    IF <ls_mahn>-sgtxt+45(2) = '91' OR <ls_mahn>-sgtxt+45(2) = '92'.
      m_dat+0(2) = 19.
    ELSE.
      m_dat+0(2) = 20.
    ENDIF.

    IF bseg-sgtxt+39(10) = ' '
      OR m_dat = mhnd-laufd.
    ENDIF.
    endloop.
Simples Refactoring :wink:
Aber Achtung mit den Jahreszahlen: Nur 91 und 92 werden zu 1991 und 1992. Das schaut mir nach einem Fehler im ursprünglichen Coding aus.
Vielen dank, hab die anderen zahlen bloß rausgelöscht weil die sich ja erübrigen :)

Seite 1 von 1

Vergleichbare Themen

1
Antw.
364
Views
Verschachtelte Loops
von ABAPlerv » 03.04.2022 08:30 • Verfasst in ABAP® für Anfänger
3
Antw.
5355
Views
wie vermeide ich nested loops?
von c oco » 31.05.2012 17:38 • Verfasst in ABAP® für Anfänger
11
Antw.
3912
Views
Optimierung eines LOOPS
von Foxbat » 17.11.2011 12:01 • Verfasst in ABAP® für Anfänger
4
Antw.
5643
Views
Spoolaufträge zusammenfassen
von hezi » 23.01.2006 17:15 • Verfasst in ABAP® Core
2
Antw.
3433
Views
3 BEx Arbeitsmappen zusammenfassen
von kaim77 » 22.05.2012 12:13 • Verfasst in Sonstige Module

Ü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 / 717
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2343
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8926