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.
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.
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
BMWi801
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.
Vielen dank, hab die anderen zahlen bloß rausgelöscht weil die sich ja erübrigena-dead-trousers hat geschrieben:Simples RefactoringCode: 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.
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.