Code: Alles auswählen.
* erledigte Aufträge löschen, falls angekreuzt wurde, dass man nur offene sehen will
IF vboff = 'X'.
LOOP AT gt_outtab INTO wa_outtab.
IF wa_outtab-uvall <> 'erledigt'. " wenn Positions-Gesamtstatus nicht erledigt ist, dann muss VBELN behalten werden
wa_keep-vbeln = wa_outtab-vbeln.
APPEND wa_keep TO gt_keep.
ENDIF.
ENDLOOP.
"DELETE ADJACENT DUPLICATES FROM gt_keep.
LOOP AT gt_outtab INTO wa_outtab WHERE vbeln NOT IN gt_keep.
DELETE gt_outtab.
ENDLOOP.
CLEAR wa_outtab.
ENDIF.
Code: Alles auswählen.
type: tr_vbeln type range of vbeln.
data: lr_vbeln type tr_vbeln.
LOOP AT gt_outtab INTO wa_outtab.
IF wa_outtab-uvall <> 'erledigt'.
APPEND VALUE #( sign = 'I' option = 'EQ' low = wa_keep-vbeln ) TO lr_vbeln. "= 7.40er Syntax
ENDIF.
ENDLOOP.
* Ein bisserl aufräumen kann nie schaden
SORT lr_vbeln.
DELETE ADJACENT DUPLICATES FROM lr_vbeln.
DELETE gt_outtab WHERE vbeln NOT IN lr_vbeln.
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Legxis
Code: Alles auswählen.
TYPES: ty_r_keep TYPE RANGE OF vbeln.
DATA: gr_keep TYPE ty_r_keep,
wa_keep TYPE ty_r_keep,
Code: Alles auswählen.
LOOP AT gt_outtab INTO wa_outtab.
IF wa_outtab-uvall <> 'erledigt'. " wenn Positions-Gesamtstatus nicht erledigt ist, dann muss VBELN behalten werden
wa_keep-sign = 'I'.
wa_keep-option = 'EQ'.
wa_keep-low = wa_outtab-vbeln.
APPEND wa_keep TO gr_keep.
ENDIF.
ENDLOOP.
SORT gr_keep.
DELETE ADJACENT DUPLICATES FROM gr_keep.
DELETE gt_outtab WHERE vbeln NOT IN gr_keep.
Code: Alles auswählen.
TYPES: ty_r_keep TYPE RANGE OF vbeln.
DATA: gr_keep TYPE TABLE OF ty_r_keep,
wa_keep TYPE ty_r_keep,
Code: Alles auswählen.
TYPES: ty_r_keep TYPE RANGE OF vbeln.
DATA: gr_keep TYPE ty_r_keep,
wa_keep LIKE LINE OF gr_keep. "<<<<<<<< Workarea für die Range Tabelle
Code: Alles auswählen.
TYPES: ty_r_keep TYPE RANGE OF vbeln.
DATA: gr_keep TYPE ty_r_keep,
wa_keep TYPE LINE OF ty_r_keep.
Code: Alles auswählen.
* erledigte Aufträge löschen, falls angekreuzt wurde, dass man nur offene sehen will
IF vboff = 'X'.
LOOP AT gt_outtab INTO wa_outtab.
IF wa_outtab-uvall <> 'erledigt'. " wenn Positions-Gesamtstatus nicht erledigt ist, dann muss VBELN behalten werden
wa_keep-sign = 'I'.
wa_keep-option = 'EQ'.
wa_keep-low = wa_outtab-vbeln.
APPEND wa_keep TO gr_keep.
ENDIF.
ENDLOOP.
IF gr_keep IS NOT INITIAL.
SORT gr_keep.
DELETE ADJACENT DUPLICATES FROM gr_keep.
DELETE gt_outtab WHERE vbeln NOT IN gr_keep.
ENDIF.
CLEAR wa_outtab.
ENDIF.
stimmt... danke für die Korrektur!edwin hat geschrieben:Hi @abuma,
nicht ganz, "TYPE RANGE OF " definiert schon eine Tabelle (ohne Kopfzeile)
dann brauchts noch die Workarea dazu:/EdwinCode: Alles auswählen.
TYPES: ty_r_keep TYPE RANGE OF vbeln. DATA: gr_keep TYPE ty_r_keep, wa_keep LIKE LINE OF gr_keep. "<<<<<<<< Workarea für die Range Tabelle