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 / 4271 / 213 / 1140 ) »

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 / 4271 / 213 / 1140 ) »
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.
196
Views
Verschachtelte Loops
von ABAPlerv » 03.04.2022 08:30 • Verfasst in ABAP® für Anfänger
3
Antw.
5223
Views
wie vermeide ich nested loops?
von c oco » 31.05.2012 17:38 • Verfasst in ABAP® für Anfänger
11
Antw.
3562
Views
Optimierung eines LOOPS
von Foxbat » 17.11.2011 12:01 • Verfasst in ABAP® für Anfänger
4
Antw.
5332
Views
Spoolaufträge zusammenfassen
von hezi » 23.01.2006 17:15 • Verfasst in ABAP® Core
2
Antw.
3317
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

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 255

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

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 255

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140