09-15-2008 2:55 PM
Explain me with a sample coding.
My internal table is filled by as follows
ZKOSTL ZSHIFT
102 1
102 1
102 1
102 1
102 2
102 2
102 2
102 2
103 2
103 2
103 2
103 3
i want the ZSHIFT total number of shifts based on ZKOSTL
(i.e)
102 1 4
102 2 4
103 2 3
103 3 1
My coding is as follows:
REPORT Z16.
TABLES: ZCT006_PRODUCT.
TYPES: BEGIN OF TY_PROD,
ZKOSTL TYPE ZCCID,
ZSHIFT TYPE ZSHIFT,
END OF TY_PROD.
DATA: IT_PROD TYPE TABLE OF TY_PROD.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: SO_PLANT FOR ZCT006_PRODUCT-ZWERKS OBLIGATORY,
SO_DATE FOR ZCT006_PRODUCT-ZDATE OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
AT SELECTION-SCREEN.
***FETCHING THE MATERIAL DETAILS FROM THE PRODUCT TABLE
SELECT ZKOSTL
ZSHIFT
FROM ZCT006_PRODUCT
INTO TABLE IT_PROD
WHERE ZWERKS IN SO_PLANT
AND ZDATE IN SO_DATE.
WRITE: 'TEST'.
09-15-2008 3:27 PM
TYPES: BEGIN OF ty_totals,
ZKOSTL TYPE ZCCID,
ZSHIFT TYPE ZSHIFT,
count TYPE i,
END OF ty_totals.
DATA: ti_totals TYPE STANDARD TABLE of ty_totals,
wa_totals TYPE ty_totals,
wa_prod TYPE TY_PROD.
LOOP AT IT_PROD INTO wa_prod.
CLEAR wa_totals.
wa_totals-zkostl = wa_prod-zkostl.
wa_totals-zshift = wa_prod-zshift.
wa_totals-count = 1.
COLLECT wa_totals INTO ti_totals.
ENDLOOP.
Regards,
Valter Oliveira.
09-15-2008 3:14 PM
TABLES: ZCT006_PRODUCT.
TYPES: BEGIN OF TY_PROD,
ZKOSTL TYPE ZCCID,
ZSHIFT TYPE ZSHIFT,
END OF TY_PROD.
DATA: IT_PROD TYPE TABLE OF TY_PROD,
wa_prod type ty_prod,
counter type i.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: SO_PLANT FOR ZCT006_PRODUCT-ZWERKS OBLIGATORY,
SO_DATE FOR ZCT006_PRODUCT-ZDATE OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
AT SELECTION-SCREEN.
***FETCHING THE MATERIAL DETAILS FROM THE PRODUCT TABLE
SELECT ZKOSTL
ZSHIFT
FROM ZCT006_PRODUCT
INTO TABLE IT_PROD
WHERE ZWERKS IN SO_PLANT
AND ZDATE IN SO_DATE.
sort it_prod.
loop at it_prod into wa_prod.
counter = counter + 1.
At end of zshift.
write 😕 wa_prod-ZKOSTL , wa_prod-zshift , counter.
clear counter.
endat .
endloop.
09-15-2008 3:21 PM
you can do this...
data: fs_prod type ty_prod,
lv_counter.
sort it_prod by zkostl zshift.
loop at it_prod into fs_prod.
lv_zshift = fs_prod-zshift .
at end of zshift.
sum.
write 😕 fs_prod-zkostl , lv_shift, fs_prod-zshift .
endat .
endloop.
09-15-2008 3:27 PM
TYPES: BEGIN OF ty_totals,
ZKOSTL TYPE ZCCID,
ZSHIFT TYPE ZSHIFT,
count TYPE i,
END OF ty_totals.
DATA: ti_totals TYPE STANDARD TABLE of ty_totals,
wa_totals TYPE ty_totals,
wa_prod TYPE TY_PROD.
LOOP AT IT_PROD INTO wa_prod.
CLEAR wa_totals.
wa_totals-zkostl = wa_prod-zkostl.
wa_totals-zshift = wa_prod-zshift.
wa_totals-count = 1.
COLLECT wa_totals INTO ti_totals.
ENDLOOP.
Regards,
Valter Oliveira.