Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Computing the total number of shifts

Former Member
0 Kudos

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'.

1 ACCEPTED SOLUTION

valter_oliveira
Active Contributor
0 Kudos

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.

3 REPLIES 3

Former Member
0 Kudos

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.

former_member188685
Active Contributor
0 Kudos

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.

valter_oliveira
Active Contributor
0 Kudos

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.