compter les lignes
Source :
Ça marche nickel code que je connaissais pas
MON CODE modifié :
REPORT z_pavan_test.
- TYPES:
- BEGIN OF ty_material,
- matnr TYPE char40,
- maktx TYPE char40,
- matkl TYPE char9,
- END OF ty_material.
- DATA: lt_materials TYPE STANDARD TABLE OF ty_material.
DATA it_213 TYPE TABLE OF /bic/b0000213000.
SELECT * INTO TABLE it_213 FROM /bic/b0000213000.
- Simply get the unique material groups, use WITHOUT MEMBERS
LOOP AT it_213 INTO DATA(s_213)
GROUP BY ( matnr = s_213-matnr size = GROUP SIZE )
ASCENDING
WITHOUT MEMBERS
REFERENCE INTO DATA(s213_group).
WRITE: / s213_group->matnr, s213_group->size.
ENDLOOP.
Le code original il crée les données de la table interne à la main
- &---------------------------------------------------------------------*
- & Report Z_PAVAN_TEST
- &---------------------------------------------------------------------*
- &
- &---------------------------------------------------------------------*
REPORT z_pavan_test.
TYPES:
BEGIN OF ty_material,
matnr TYPE char40,
maktx TYPE char40,
matkl TYPE char9,
END OF ty_material.
DATA: lt_materials TYPE STANDARD TABLE OF ty_material.
lt_materials = VALUE #(
( matnr = '000000000051000298' maktx = 'Description 1' matkl = 'A' )
( matnr = '000000000051003780' maktx = 'Description 2' matkl = 'A' )
( matnr = '000000000051008389' maktx = 'Description 3' matkl = 'B')
( matnr = '000000000051008390' maktx = 'Description 4' matkl = 'C' )
( matnr = '000000000051008394' maktx = 'Description 5' matkl = 'B' )
).
- Simply get the unique material groups, use WITHOUT MEMBERS
LOOP AT lt_materials INTO DATA(ls_materials)
GROUP BY ( matkl = ls_materials-matkl size = GROUP SIZE )
ASCENDING
WITHOUT MEMBERS
REFERENCE INTO DATA(matkl_group).
WRITE: / matkl_group->matkl, matkl_group->size.
ENDLOOP.