Lesezeichen: Unterschied zwischen den Versionen

Aus SAP Wiki ツ
M1ch3lde (Diskussion | Beiträge)
Die Seite wurde geleert.
Markierung: Geleert
M1ch3lde (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
TYPES: BEGIN OF zstock,
        matnr TYPE matnr,  "char40
        werks TYPE werks_d, "char04
        lgort TYPE lgort_d, "char04
        labst TYPE labst,  "quan13
      END OF zstock.


DATA lt_mard  TYPE TABLE OF zstock,
    lt_stock TYPE TABLE OF zstock.
" Beispiel-Daten
lt_mard = VALUE #( ( matnr = '100' werks = '1710' lgort = '1720' labst = 125 )
                  ( matnr = '110' werks = '1710' lgort = '1730' labst = 250 )
                  ( matnr = '110' werks = '1710' lgort = '1730' labst = 500 )
                  ( matnr = '120' werks = '1710' lgort = '1740' labst = 750 ) ).
" Aggregation mit REDUCE
DATA(lt_stock_reduced) = VALUE zstock_table(
  FOR wa IN lt_mard
  GROUP BY ( matnr = wa-matnr werks = wa-werks lgort = wa-lgort )
  INTO DATA(group)
  LET total_labst = REDUCE i( INIT x = 0
                              FOR g IN group
                              NEXT x = x + g-labst )
  IN ( matnr = group-key-matnr
      werks = group-key-werks
      lgort = group-key-lgort
      labst = total_labst ) ).
" Ausgabe zum Test
LOOP AT lt_stock_reduced INTO DATA(ls).
  WRITE: / ls-matnr, ls-werks, ls-lgort, ls-labst.
ENDLOOP.

Aktuelle Version vom 29. März 2026, 13:30 Uhr

TYPES: BEGIN OF zstock,

        matnr TYPE matnr,   "char40
        werks TYPE werks_d, "char04
        lgort TYPE lgort_d, "char04
        labst TYPE labst,   "quan13
      END OF zstock.

DATA lt_mard TYPE TABLE OF zstock,

    lt_stock TYPE TABLE OF zstock.

" Beispiel-Daten lt_mard = VALUE #( ( matnr = '100' werks = '1710' lgort = '1720' labst = 125 )

                  ( matnr = '110' werks = '1710' lgort = '1730' labst = 250 )
                  ( matnr = '110' werks = '1710' lgort = '1730' labst = 500 )
                  ( matnr = '120' werks = '1710' lgort = '1740' labst = 750 ) ).

" Aggregation mit REDUCE DATA(lt_stock_reduced) = VALUE zstock_table(

 FOR wa IN lt_mard
 GROUP BY ( matnr = wa-matnr werks = wa-werks lgort = wa-lgort ) 
 INTO DATA(group)
 LET total_labst = REDUCE i( INIT x = 0
                              FOR g IN group
                              NEXT x = x + g-labst )
 IN ( matnr = group-key-matnr
      werks = group-key-werks
      lgort = group-key-lgort
      labst = total_labst ) ).

" Ausgabe zum Test LOOP AT lt_stock_reduced INTO DATA(ls).

 WRITE: / ls-matnr, ls-werks, ls-lgort, ls-labst.

ENDLOOP.