Gruppenwechsel

Gruppenwechsel lassen sich mit SAP einfach realisieren. Leider hat das Kommando “AT” auch seine Tücken. Hier ein kleiner Workaround.

Gruppenwechsel sind manchmal ein lästiges Problem, da SAP der Meinung ist, Zahlen-Felder mit * auffüllen zu müssen.

Mit zwei einfachen Tricks kann man dieses Problem umgehen.

Trick 1

DATA:
  gt_kna1        LIKE kan1 occurs 0,
  lwa_kna1       LIKE kna1,
  lwa_kna1_dummy LIKE kna1.

  LOOP AT gt_kna1 INTO lwa_kna1_dummy.
     lwa_kna1 = lwa_kna1_dummy.
     AT NEW kunnr.
*       Hier kann man auf alle Felder in der lwa_kna1
*       ohne *-Inhalte zugreifen       
     ENDAT.
  ENDLOOP.

Trick 2

DATA:
  gt_kna1        LIKE kan1 occurs 0,
  lwa_kna1       LIKE kna1,
  lv_at_flag     TYPE c.

  LOOP AT gt_kna1 INTO lwa_kna1_dummy.

     CLEAR lv_at_flag
     AT NEW kunnr.
       lv_at_flag = ‘X’.
     ENDAT.

     IF lv_at_flag <> space.
       lv_at_flag = space.
*  Hier kann man wieder auf alle Felder in der lwa_kna1
*  zugreifen       
     ENDIF.

  ENDLOOP.

Anmerkung:

Der ABAP-Interpreter erkennt auch Gruppenwechsel in den hinteren Feldern automatisch! Bei einer Tabelle mit FELD1, FELD2, FELD3 können Sie getrost ein

AT NEW feld3.

programmieren, ohne auf die vorderen Felder einzugehen. Selbst Wenn FELD3 gleich bleibt, sich aber FELD 2 ändert, wird der Gruppenwechsel erkannt.

Vielen Dank an Lars Kohlhoff!

Enno Wulff