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

Trennen Strasse und Hausnummer
vor 2 Stunden von ralf.wenzel 21 / 11256
Dialog-Container mit Toolbar/Status
vor 23 Stunden von black_adept gelöst 27 / 4352
IT0024 Qualifikationen CP-ID
Gestern von ArjenR 1 / 233

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

Trennen Strasse und Hausnummer
vor 2 Stunden von ralf.wenzel 21 / 11256
Dialog-Container mit Toolbar/Status
vor 23 Stunden von black_adept gelöst 27 / 4352
IT0024 Qualifikationen CP-ID
Gestern von ArjenR 1 / 233

Unbeantwortete Forenbeiträge

IT0024 Qualifikationen CP-ID
Gestern von ArjenR 1 / 233
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 3158
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9751