cancel
Showing results for 
Search instead for 
Did you mean: 

ABAP QUERY - ITS URGENT

Former Member
0 Kudos

Hi Experts,

In this scenario we have one Material – Mat1 and 2 plants namely, P1 and P2. At time of execution, in the selection screen, if we give for example: Mat1 and P1, data is displayed for that particular material and plant. Where as if we give MAT1 for P1 and P2 , the material again displayed for P1 which is in first row and it is not displaying the material for P2 which is in 2nd row.

If we interchange P2 is in first row, the material is displayed and it is not displaying for P1 which is in 2nd row.

In general – Any material for any plant which is in 2nd row is not displayed only zeros are visible.

Kindly locate the solution for the above query in the below program.

  • Specification Name : Production Tracker

REPORT zpp_ptk .

TYPE-POOLS : slis.

TABLES : pbed,

mara,

mast,

marc,

makt,

pbid,

pbim,

stpo,

t001w,

scal,

kna1,

knmt,

equi,

a304,

konp,

zcalendar,

am60x.

DATA : gt_sort TYPE slis_t_sortinfo_alv,

gt_fieldcat TYPE slis_t_fieldcat_alv,

gt_fieldcat1 TYPE slis_fieldcat_alv,

gt_events TYPE slis_t_event ,

gv_pc_start(2) TYPE n,

gv_pcno(6),

BEGIN OF gt_pbed OCCURS 0,

matnr TYPE matnr,

p_matnr TYPE matnr,

plnmg TYPE plnmg,

entmg TYPE entmg,

perxx TYPE perxx,

ojtxb TYPE ojtxb,

ojtxp TYPE ojtxp,

backlog TYPE plnmg,

future TYPE plnmg,

END OF gt_pbed,

l_knumh LIKE a304-knumh, " added by ****** 08.06.2005

l_datab LIKE a304-datab, " added by ****** 08.06.2005

BEGIN OF it_date1 OCCURS 0,

it_date1 TYPE zstartdt,

enddt TYPE zenddt,

sapweekno TYPE zsapweekno,

END OF it_date1,

BEGIN OF gt_matnr OCCURS 0,

matnr TYPE matnr,

plnmg TYPE plnmg,

entmg TYPE entmg,

END OF gt_matnr,

BEGIN OF gt_stock OCCURS 0,

matnr TYPE matnr,

stock TYPE entmg,

END OF gt_stock,

gt_fpbed LIKE gt_pbed OCCURS 0 WITH HEADER LINE,

it_zcalendar LIKE zcalendar OCCURS 0 WITH HEADER LINE,

l_counter TYPE i,

l_plus15 LIKE scal-week,

l_wfpweekno LIKE scal-week,

l_selectedweekno LIKE scal-week,

BEGIN OF gt_backlog OCCURS 0,

matnr TYPE matnr,

backlog TYPE entmg,

END OF gt_backlog,

gt_future LIKE gt_backlog OCCURS 0 WITH HEADER LINE,

gt_output TYPE zpp_rollplan OCCURS 0 WITH HEADER LINE,

BEGIN OF gt_out OCCURS 0,

head(15) TYPE c,

matnr TYPE matnr,

stock TYPE labst,

backlog TYPE plnmg,

week1 TYPE wmeng,

week2 TYPE wmeng,

week3 TYPE wmeng,

week4 TYPE wmeng,

week5 TYPE wmeng,

week6 TYPE wmeng,

week7 TYPE wmeng,

week8 TYPE wmeng,

week9 TYPE wmeng,

week10 TYPE wmeng,

week11 TYPE wmeng,

week12 TYPE wmeng,

week13 TYPE wmeng,

END OF gt_out,

BEGIN OF gt_out26 OCCURS 0,

head(15) TYPE c,

matnr TYPE matnr,

stock TYPE labst,

backlog TYPE plnmg,

week1 TYPE wmeng,

week2 TYPE wmeng,

week3 TYPE wmeng,

week4 TYPE wmeng,

week5 TYPE wmeng,

week6 TYPE wmeng,

week7 TYPE wmeng,

week8 TYPE wmeng,

week9 TYPE wmeng,

week10 TYPE wmeng,

week11 TYPE wmeng,

week12 TYPE wmeng,

week13 TYPE wmeng,

week14 TYPE wmeng,

week15 TYPE wmeng,

week16 TYPE wmeng,

week17 TYPE wmeng,

week18 TYPE wmeng,

week19 TYPE wmeng,

week20 TYPE wmeng,

week21 TYPE wmeng,

week22 TYPE wmeng,

week23 TYPE wmeng,

week24 TYPE wmeng,

week25 TYPE wmeng,

week26 TYPE wmeng,

END OF gt_out26,

BEGIN OF it_week OCCURS 0,

it_week TYPE zsapweekno,

END OF it_week,

dd(4) TYPE c,

cc(2) TYPE c,

dd1(6) TYPE c,

l_val1(7) TYPE c,

l_val2(7) TYPE c,

l_val3(7) TYPE c,

l_val4(7) TYPE c,

l_val5(7) TYPE c,

l_val6(7) TYPE c,

l_val7(7) TYPE c,

l_val8(7) TYPE c,

l_val9(7) TYPE c,

l_val10(7) TYPE c,

l_val11(7) TYPE c,

l_val12(7) TYPE c,

l_val13(7) TYPE c,

l_val14(7) TYPE c,

l_val15(7) TYPE c,

l_val16(7) TYPE c,

l_val17(7) TYPE c,

l_val18(7) TYPE c,

l_val19(7) TYPE c,

l_val20(7) TYPE c,

l_val21(7) TYPE c,

l_val22(7) TYPE c,

l_val23(7) TYPE c,

l_val24(7) TYPE c,

l_val25(7) TYPE c,

l_val26(7) TYPE c,

it_ph TYPE plnmg,

it_dm TYPE dbmng,

it_mard LIKE mard OCCURS 0 WITH HEADER LINE,

it_tot1 TYPE p DECIMALS 3,

it_tot1_2 TYPE p DECIMALS 3,

it_tot2 TYPE p DECIMALS 3,

it_tot2_2 TYPE p DECIMALS 3,

it_tot3 TYPE p DECIMALS 3,

it_tot3_2 TYPE p DECIMALS 3,

it_tot4 TYPE p DECIMALS 3,

it_tot4_2 TYPE p DECIMALS 3,

it_tot5 TYPE p DECIMALS 3,

it_tot5_2 TYPE p DECIMALS 3,

it_tot6 TYPE p DECIMALS 3,

it_tot6_2 TYPE p DECIMALS 3,

it_tot7 TYPE p DECIMALS 3,

it_tot7_2 TYPE p DECIMALS 3,

it_tot8 TYPE p DECIMALS 3,

it_tot8_2 TYPE p DECIMALS 3,

it_tot9 TYPE p DECIMALS 3,

it_tot9_2 TYPE p DECIMALS 3,

it_tot10 TYPE p DECIMALS 3,

it_tot10_2 TYPE p DECIMALS 3,

it_tot11 TYPE p DECIMALS 3,

it_tot11_2 TYPE p DECIMALS 3,

it_tot12 TYPE p DECIMALS 3,

it_tot12_2 TYPE p DECIMALS 3,

it_tot13 TYPE p DECIMALS 3,

it_tot13_2 TYPE p DECIMALS 3,

it_tot14 TYPE p DECIMALS 3,

it_tot14_2 TYPE p DECIMALS 3,

it_tot15 TYPE p DECIMALS 3,

it_tot15_2 TYPE p DECIMALS 3,

it_tot16 TYPE p DECIMALS 3,

it_tot16_2 TYPE p DECIMALS 3,

it_tot17 TYPE p DECIMALS 3,

it_tot17_2 TYPE p DECIMALS 3,

it_tot18 TYPE p DECIMALS 3,

it_tot18_2 TYPE p DECIMALS 3,

it_tot19 TYPE p DECIMALS 3,

it_tot19_2 TYPE p DECIMALS 3,

it_tot20 TYPE p DECIMALS 3,

it_tot20_2 TYPE p DECIMALS 3,

it_tot21 TYPE p DECIMALS 3,

it_tot21_2 TYPE p DECIMALS 3,

it_tot22 TYPE p DECIMALS 3,

it_tot22_2 TYPE p DECIMALS 3,

it_tot23 TYPE p DECIMALS 3,

it_tot23_2 TYPE p DECIMALS 3,

it_tot24 TYPE p DECIMALS 3,

it_tot24_2 TYPE p DECIMALS 3,

it_tot25 TYPE p DECIMALS 3,

it_tot25_2 TYPE p DECIMALS 3,

it_tot26 TYPE p DECIMALS 3,

it_tot26_2 TYPE p DECIMALS 3,

it_back1 TYPE p DECIMALS 3,

it_back2 TYPE p DECIMALS 3,

it_back3 TYPE p DECIMALS 3,

it_back4 TYPE p DECIMALS 3,

it_back5 TYPE p DECIMALS 3,

it_back6 TYPE p DECIMALS 3,

it_back7 TYPE p DECIMALS 3,

it_back8 TYPE p DECIMALS 3,

it_back9 TYPE p DECIMALS 3,

it_back10 TYPE p DECIMALS 3,

it_back11 TYPE p DECIMALS 3,

it_back12 TYPE p DECIMALS 3,

it_back13 TYPE p DECIMALS 3,

it_back14 TYPE p DECIMALS 3,

it_back15 TYPE p DECIMALS 3,

it_back16 TYPE p DECIMALS 3,

it_back17 TYPE p DECIMALS 3,

it_back18 TYPE p DECIMALS 3,

it_back19 TYPE p DECIMALS 3,

it_back20 TYPE p DECIMALS 3,

it_back21 TYPE p DECIMALS 3,

it_back22 TYPE p DECIMALS 3,

it_back23 TYPE p DECIMALS 3,

it_back24 TYPE p DECIMALS 3,

it_back25 TYPE p DECIMALS 3,

it_back26 TYPE p DECIMALS 3,

it_pbhi LIKE pbhi OCCURS 0 WITH HEADER LINE,

int1 TYPE i,

int2 TYPE i,

int3 TYPE i,

int4 TYPE i,

int5 TYPE i,

int6 TYPE i,

int7 TYPE i,

int8 TYPE i,

int9 TYPE i,

int10 TYPE i,

int11 TYPE i,

int12 TYPE i,

int13 TYPE i,

int14 TYPE i,

int15 TYPE i,

int16 TYPE i,

int17 TYPE i,

int18 TYPE i,

int19 TYPE i,

int20 TYPE i,

int21 TYPE i,

int22 TYPE i,

int23 TYPE i,

int24 TYPE i,

int25 TYPE i,

int26 TYPE i,

*forecast purpose

p_fnavl TYPE c VALUE 'X',

it_zcal LIKE zcalendar OCCURS 0 WITH HEADER LINE,

BEGIN OF it_mkpf OCCURS 0,

mblnr TYPE mblnr,

budat TYPE budat,

END OF it_mkpf,

it_mseg LIKE mseg OCCURS 0 WITH HEADER LINE,

st_date TYPE zstartdt,

en_date TYPE zenddt.

*BUDAT

SELECTION-SCREEN : BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001..

SELECT-OPTIONS : s_matnr FOR pbim-matnr OBLIGATORY.

PARAMETERS : p_werks TYPE werks_d OBLIGATORY,

p_dispo TYPE dispo,

p_mov TYPE bwart OBLIGATORY DEFAULT '321',

p_date1 TYPE pbed-wdatu DEFAULT '20070401'. " MODIF ID ABC..

*SELECT-OPTIONS : p_date2 FOR pbed-wdatu.

PARAMETERS : p_date2 TYPE wdatu.

SELECTION-SCREEN : END OF BLOCK blk1.

SELECTION-SCREEN : BEGIN OF BLOCK bb1 WITH FRAME TITLE text-002 .

PARAMETERS : p_13week RADIOBUTTON GROUP grp1,

p_26week RADIOBUTTON GROUP grp1.

SELECTION-SCREEN : END OF BLOCK bb1.

SELECT-OPTIONS : s_week FOR zcalendar-sapweekno NO-DISPLAY.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF screen-name = 'P_DATE1'.

screen-input = '0'.

screen-active = '1'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

INITIALIZATION.

START-OF-SELECTION.

IF '20070401' > p_date2.

MESSAGE 'Please Give Greater that 01.04.2007 ' TYPE 'I'.

LEAVE LIST-PROCESSING.

ENDIF.

SELECT SINGLE sapweekno INTO s_week-low

FROM zcalendar

WHERE startdt >= p_date2. "-high AND enddt >= p_date2-low.

s_week-option = 'EQ'.

s_week-sign = 'I'.

APPEND s_week.

SELECT * FROM zcalendar INTO TABLE it_zcalendar.

SELECT * FROM mard INTO TABLE it_mard WHERE matnr IN s_matnr.

*********************FOR 13 WEEK*********************************************************************

IF p_13week EQ 'X'.

LOOP AT s_week.

s_week-high = s_week-low + 12.

MODIFY s_week TRANSPORTING high.

SELECT SINGLE startdt FROM zcalendar INTO st_date WHERE sapweekno = s_week-low.

SELECT SINGLE enddt FROM zcalendar INTO en_date WHERE sapweekno = s_week-high.

SELECT mblnr budat FROM mkpf INTO TABLE it_mkpf WHERE budat GE st_date AND budat LE en_date.

  • SELECT * FROM mseg INTO TABLE it_mseg FOR ALL ENTRIES IN it_mkpf WHERE mblnr = it_mkpf-mblnr

  • AND matnr IN s_matnr

  • AND werks = p_werks

  • and shkzg = 'S'

  • AND bwart IN ('321','322','101','102','131','132') .

LOOP AT it_mkpf.

SELECT * FROM mseg INTO it_mseg WHERE mblnr = it_mkpf-mblnr

AND matnr IN s_matnr

AND werks = p_werks

AND shkzg = 'S'

AND bwart IN ('321','322','101','102','131','132') .

APPEND it_mseg.

CLEAR it_mseg.

ENDSELECT.

ENDLOOP.

ENDLOOP.

PERFORM get_pbid.

BREAK-POINT.

PERFORM s_week_days.

PERFORM get_backlog.

PERFORM gt_out.

PERFORM build_fieldccatlog1.

PERFORM 13alv.

ENDIF.

******************END OF 13 WEEK*************************************************************************

*****************For 26 th Week*************************************************************************

IF p_26week EQ 'X'.

LOOP AT s_week.

s_week-high = s_week-low + 25.

MODIFY s_week TRANSPORTING high.

SELECT SINGLE startdt FROM zcalendar INTO st_date WHERE sapweekno = s_week-low.

SELECT SINGLE enddt FROM zcalendar INTO en_date WHERE sapweekno = s_week-high.

SELECT mblnr budat FROM mkpf INTO TABLE it_mkpf WHERE budat GE st_date AND budat LE en_date.

SELECT * FROM mseg INTO TABLE it_mseg FOR ALL ENTRIES IN it_mkpf WHERE mblnr = it_mkpf-mblnr

AND matnr IN s_matnr

AND werks = p_werks

AND shkzg = 'S'

AND bwart IN ('321','322','101','102') .

ENDLOOP.

PERFORM get_pbid.

PERFORM s_26week_days.

PERFORM gt_out26.

PERFORM build_fieldccatlog1.

PERFORM 26alv.

ENDIF.

**************END OF 26 TH WEEK **********************************************************************

&----


*& Form get_pbid

&----


  • text

----


FORM get_pbid .

DATA : lv_line TYPE i,

lv_perxx LIKE scal-week.

DATA it_dispo(1) TYPE c. " ashish

  • LOOP AT s_matnr. " TODAY

BREAK-POINT.

SELECT SINGLE diber INTO it_dispo FROM marc WHERE matnr = s_matnr-low

AND werks = p_werks.

IF it_dispo NE 'X'.

SELECT * FROM pbim WHERE matnr = s_matnr-low

AND werks EQ p_werks

AND loevr = space.

SELECT startdt enddt sapweekno INTO TABLE it_date1 FROM zcalendar WHERE sapweekno GE s_week-low AND sapweekno LE s_week-high.

  • SORT by s_matnr p_werks.

LOOP AT it_date1.

SELECT * FROM pbhi INTO TABLE it_pbhi WHERE bdzei = pbim-bdzei AND ( pdatu GE it_date1-it_date1 AND pdatu LE it_date1-enddt ).

IF sy-subrc EQ 0.

DELETE it_pbhi WHERE aenam = 'ABBAU'.

LOOP AT it_pbhi.

it_ph = it_ph + it_pbhi-plnmg.

it_dm = it_dm + it_pbhi-dbmng.

ENDLOOP.

it_ph = it_ph - it_dm.

gt_pbed-matnr = s_matnr-low.

gt_pbed-plnmg = it_ph.

gt_pbed-perxx = it_date1-sapweekno.

APPEND gt_pbed.

CLEAR it_pbhi.

CLEAR it_ph.

CLEAR it_dm.

REFRESH it_pbhi.

CLEAR gt_pbed.

ELSE.

ENDIF.

ENDLOOP.

ENDSELECT.

ELSE.

SORT BY s_matnr p_werks.

LOOP AT s_matnr.

SELECT * FROM pbid WHERE matnr = s_matnr-low

AND werks = p_werks

AND loevr EQ space.

****PHANI

      • SELECT * FROM pbed WHERE bdzei = pbid-bdzei.

      • MOVE-CORRESPONDING pbed TO gt_pbed.

***

***

        • PERFORM convert_to_week USING pbed-pdatu

        • CHANGING gt_pbed-perxx.

***

        • check gt_pbed-perxx in r_week.

      • gt_pbed-matnr = pbid-matnr.

***

        • PERFORM GET_PARENT USING gt_bom-MATNR

        • CHANGING gt_pbed-p_matnr

        • GT_pbed-OJTXB.

      • COLLECT gt_pbed.

      • CLEAR gt_pbed.

*PHANI

  • data it_date1 type ZSTARTDT.

SELECT startdt enddt sapweekno INTO TABLE it_date1 FROM zcalendar WHERE sapweekno GE s_week-low AND sapweekno LE s_week-high.

LOOP AT it_date1.

SELECT * FROM pbhi INTO TABLE it_pbhi WHERE bdzei = pbid-bdzei AND ( pdatu GE it_date1-it_date1 AND pdatu LE it_date1-enddt ).

IF sy-subrc EQ 0.

DELETE it_pbhi WHERE aenam = 'ABBAU'.

LOOP AT it_pbhi.

it_ph = it_ph + it_pbhi-plnmg.

it_dm = it_dm + it_pbhi-dbmng.

ENDLOOP.

it_ph = it_ph - it_dm.

gt_pbed-matnr = s_matnr-low.

gt_pbed-plnmg = it_ph.

gt_pbed-perxx = it_date1-sapweekno.

APPEND gt_pbed.

CLEAR it_pbhi.

CLEAR it_ph.

CLEAR it_dm.

REFRESH it_pbhi.

CLEAR gt_pbed.

ELSE.

ENDIF.

ENDLOOP.

ENDSELECT.

ENDLOOP.

ENDIF.

ENDFORM. " get_pbid

&----


*& Form convert_to_week

&----


  • text

----


  • -->IV_DATE text

  • -->XV_WEEK text

----


FORM convert_to_week USING iv_date

CHANGING xv_week.

DATA : lv_week LIKE scal-week.

CALL FUNCTION 'DATE_GET_WEEK'

EXPORTING

date = iv_date

IMPORTING

week = lv_week.

xv_week = lv_week.

ENDFORM. "CONVERT_TO_WEEK

&----


*& Form get_stock

&----


  • text

----


FORM get_stock .

DATA : lv_stock LIKE mard-insme.

LOOP AT gt_pbed.

READ TABLE gt_stock WITH KEY matnr = gt_pbed-matnr.

CHECK sy-subrc NE 0.

SELECT SUM( labst ) INTO lv_stock FROM mard

WHERE matnr = gt_pbed-matnr AND werks = p_werks.

SELECT SUM( insme ) INTO gt_stock-stock FROM mard

WHERE matnr = gt_pbed-matnr AND werks = p_werks.

gt_stock-stock = gt_stock-stock + lv_stock.

gt_stock-matnr = gt_pbed-matnr.

APPEND gt_stock.

ENDLOOP.

ENDFORM. " get_stock

************************************************************************

********************

FORM s_week_days .

DELETE gt_pbed WHERE perxx < s_week-low. " and perxx > s_week-high.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val1.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val2.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val3.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val4.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val5.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val6.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val7.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val8.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val9.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val10.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val11.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val12.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val13.

ENDFORM. " s_week_days

&----


*& Form build_fieldccatlog

&----


  • text

----


FORM build_fieldcatlog .

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'MATNR'.

gt_fieldcat1-tabname = 'GT_OUT'.

gt_fieldcat1-seltext_l = 'MATERIAL'.

APPEND gt_fieldcat1 TO gt_fieldcat.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WERKS'.

gt_fieldcat1-tabname = 'GT_OUT'.

gt_fieldcat1-seltext_m = 'WERKS'.

APPEND gt_fieldcat1 TO gt_fieldcat.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'HEAD'.

gt_fieldcat1-tabname = 'GT_OUT'.

gt_fieldcat1-seltext_l = 'REF'.

APPEND gt_fieldcat1 TO gt_fieldcat.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'STOCK'.

gt_fieldcat1-tabname = 'GT_OUT'.

gt_fieldcat1-seltext_l = 'FG-STOCK'.

APPEND gt_fieldcat1 TO gt_fieldcat.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'BACKLOG'.

gt_fieldcat1-tabname = 'GT_OUT'.

gt_fieldcat1-seltext_l = 'BACKLOG'.

APPEND gt_fieldcat1 TO gt_fieldcat.

dd = sy-datum+0(4).

cc = l_val1+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val1.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK1'.

gt_fieldcat1-tabname = 'GT_OUT'.

gt_fieldcat1-seltext_l = l_val1.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val2+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val2.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK2'.

gt_fieldcat1-tabname = 'GT_OUT'.

gt_fieldcat1-seltext_l = l_val2.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val3+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val3.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK3'.

gt_fieldcat1-tabname = 'GT_OUT'.

gt_fieldcat1-seltext_l = l_val3.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val4+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val4.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK4'.

gt_fieldcat1-tabname = 'GT_OUT'.

gt_fieldcat1-seltext_l = l_val4.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val5+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val5.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK5'.

gt_fieldcat1-tabname = 'GT_OUT'.

gt_fieldcat1-seltext_l = l_val5.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val6+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val6.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK6'.

gt_fieldcat1-tabname = 'GT_OUT'.

gt_fieldcat1-seltext_l = l_val6.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val7+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val7.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK7'.

gt_fieldcat1-tabname = 'GT_OUT'.

gt_fieldcat1-seltext_l = l_val7.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val8+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val8.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK8'.

gt_fieldcat1-tabname = 'GT_OUT'.

gt_fieldcat1-seltext_l = l_val8.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val9+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val9.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK9'.

gt_fieldcat1-tabname = 'GT_OUT'.

gt_fieldcat1-seltext_l = l_val9.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val10+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val10.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK10'.

gt_fieldcat1-tabname = 'GT_OUT'.

gt_fieldcat1-seltext_l = l_val10.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val11+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val11.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK11'.

gt_fieldcat1-tabname = 'GT_OUT'.

gt_fieldcat1-seltext_l = l_val11.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val12+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val12.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK12'.

gt_fieldcat1-tabname = 'GT_OUT'.

gt_fieldcat1-seltext_l = l_val12.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val13+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val13.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK13'.

gt_fieldcat1-tabname = 'GT_OUT'.

gt_fieldcat1-seltext_l = l_val13.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

ENDFORM. " build_fieldccatlog

&----


*& Form 13alv

&----


  • text

----


FORM 13alv .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

  • I_CALLBACK_PROGRAM = ' '

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

  • IS_LAYOUT =

it_fieldcat = gt_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = gt_out

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

ENDFORM. " 13alv

&----


*& Form gt_out

&----


  • text

----


FORM gt_out .

LOOP AT s_matnr.

AT NEW low.

gt_out-matnr = s_matnr-low.

************BEGIN OF FIRST WEEK******************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val15(2).

gt_out-week1 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot1 = it_tot1 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot1_2 = it_tot1_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot1 = it_tot1 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot1_2 = it_tot1_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot1 = it_tot1 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot1_2 = it_tot1_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot1 = it_tot1 - it_tot1_2.

it_back1 = gt_out-week1 - it_tot1.

CLEAR it_zcalendar.

                                              • END OF FIRST WEEK ************************

**********************SECOND WEEK***************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val25(2).

int2 = int2 + 1.

CHECK int2 = 1.

gt_out-week2 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot2 = it_tot2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot2_2 = it_tot2_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot2 = it_tot2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot2_2 = it_tot2_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot1 = it_tot1 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot1_2 = it_tot1_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot2 = it_tot2 - it_tot2_2.

it_back2 = gt_out-week2 - it_tot2.

it_back2 = it_back2 + it_back1.

CLEAR it_zcalendar.

********************************End of The Second week***********************************************

*********************Third week*************************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val35(2).

int1 = int1 + 1.

CHECK int1 = 1.

gt_out-week3 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot3 = it_tot3 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot3_2 = it_tot3_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot3 = it_tot3 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot3_2 = it_tot3_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot3 = it_tot3 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot3_2 = it_tot3_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

ENDLOOP.

CLEAR : gt_pbed.

ENDLOOP.

it_tot3 = it_tot3 - it_tot3_2.

it_back3 = gt_out-week3 - it_tot3.

it_back3 = it_back3 + it_back2.

CLEAR it_zcalendar.

********************************END OF THIRD WEEK******************************************************

*********************************BEGIN OF FOURTH WEEK**************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val45(2).

int3 = int3 + 1.

CHECK int3 = 1.

gt_out-week4 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot4 = it_tot4 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot4_2 = it_tot4_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot4 = it_tot4 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot4_2 = it_tot4_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot4 = it_tot4 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot4_2 = it_tot4_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot4 = it_tot4 - it_tot4_2.

it_back4 = gt_out-week4 - it_tot4.

it_back4 = it_back4 + it_back3.

CLEAR it_zcalendar.

*********************************END OF FOURTH WEEK***************************************************

********************************BEGIN FIFTH WEEK******************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val55(2).

int4 = int4 + 1.

CHECK int4 = 1.

gt_out-week5 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot5 = it_tot5 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot5_2 = it_tot5_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot5 = it_tot5 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot5_2 = it_tot5_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot5 = it_tot5 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot5_2 = it_tot5_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot5 = it_tot5 - it_tot5_2.

it_back5 = gt_out-week5 - it_tot5.

it_back5 = it_back5 + it_back4.

CLEAR it_zcalendar.

********************************END OF FIVTH WEEK ***********************************************************************

*******************************BEGIN OF SIXTH WEEK*********************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val65(2).

int5 = int5 + 1.

CHECK int5 = 1.

gt_out-week6 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot6 = it_tot6 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot6_2 = it_tot6_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot6 = it_tot6 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot6_2 = it_tot6_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot6 = it_tot6 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot6_2 = it_tot6_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot6 = it_tot6 - it_tot6_2.

it_back6 = gt_out-week6 - it_tot6.

it_back6 = it_back6 + it_back5.

CLEAR it_zcalendar.

*******************************END OF THE SIXTH WEEK*************************************************************************

*******************************BEGIN OF SEVENTH WEEK*******************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val75(2).

int6 = int6 + 1.

CHECK int6 = 1.

gt_out-week7 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot7 = it_tot7 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot7_2 = it_tot7_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot7 = it_tot7 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot7_2 = it_tot7_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot7 = it_tot7 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot7_2 = it_tot7_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot7 = it_tot7 - it_tot7_2.

it_back7 = gt_out-week7 - it_tot7.

it_back7 = it_back7 + it_back6.

CLEAR it_zcalendar.

******************************END OF SEVENTH WEEK***********************************************************************

                                                              • BEGIN OF EITH WEEK***********************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val85(2).

int7 = int7 + 1.

CHECK int7 = 1.

gt_out-week8 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot8 = it_tot8 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot8_2 = it_tot8_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot8 = it_tot8 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot8_2 = it_tot8_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot8 = it_tot8 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot8_2 = it_tot8_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot8 = it_tot8 - it_tot8_2.

it_back8 = gt_out-week8 - it_tot8.

it_back8 = it_back8 + it_back7.

CLEAR it_zcalendar.

                                                • END OF EIGHT WEEK **********************************************************************************************************

***********************BEGIN OF NINTH WEEK***********************************************************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val95(2).

int8 = int8 + 1.

CHECK int8 = 1.

gt_out-week9 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot9 = it_tot9 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot9_2 = it_tot9_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot9 = it_tot9 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot9_2 = it_tot9_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot9 = it_tot9 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot9_2 = it_tot9_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot9 = it_tot9 - it_tot9_2.

it_back9 = gt_out-week9 - it_tot9.

it_back9 = it_back9 + it_back8.

CLEAR it_zcalendar.

************************END OF NINTH WEEK ***********************************************************************************

***********************BEGIN OF TENTH WEEK *************************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val105(2).

int9 = int9 + 1.

CHECK int9 = 1.

gt_out-week10 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot10 = it_tot10 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot10_2 = it_tot10_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot10 = it_tot10 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot10_2 = it_tot10_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot10 = it_tot10 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot10_2 = it_tot10_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot10 = it_tot10 - it_tot10_2.

it_back10 = gt_out-week10 - it_tot10.

it_back10 = it_back10 + it_back9.

CLEAR it_zcalendar.

***********************END OF THE TENTH WEEK ***********************************************************************

***********************BEGIN OF ELEVENTH WEEK *************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val115(2).

int10 = int10 + 1.

CHECK int10 = 1.

gt_out-week11 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot11 = it_tot11 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot11_2 = it_tot11_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot11 = it_tot11 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot11_2 = it_tot11_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot11 = it_tot11 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot11_2 = it_tot11_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot11 = it_tot11 - it_tot11_2.

it_back11 = gt_out-week11 - it_tot11.

it_back11 = it_back11 + it_back10.

CLEAR it_zcalendar.

***********************END OF ELEVENTH WEEK ****************************************************************

**********************BEGIN OF TWELTH WEEK***************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val125(2).

int11 = int11 + 1.

CHECK int11 = 1.

gt_out-week12 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot12 = it_tot12 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot12_2 = it_tot12_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot12 = it_tot12 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot12_2 = it_tot12_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot12 = it_tot12 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot12_2 = it_tot12_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot12 = it_tot12 - it_tot12_2.

it_back12 = gt_out-week12 - it_tot12.

it_back12 = it_back12 + it_back11.

CLEAR it_zcalendar.

***************************END O F THE TWELTH WEEK*******************************************

***************************bEGIN OF THIRTEEN WEEK**********************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val135(2).

int12 = int12 + 1.

CHECK int12 = 1.

gt_out-week13 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot13 = it_tot13 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot13_2 = it_tot13_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot13 = it_tot13 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot13_2 = it_tot13_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot13 = it_tot13 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot13_2 = it_tot13_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot13 = it_tot13 - it_tot13_2.

it_back13 = gt_out-week13 - it_tot13.

it_back13 = it_back13 + it_back12.

CLEAR it_zcalendar.

*****************************end of thirteen week***********************************************************************

READ TABLE gt_pbed WITH KEY matnr = s_matnr-low.

gt_out-head = 'DEMAND'.

gt_out-backlog = gt_pbed-backlog.

CLEAR gt_backlog.

  • gt_out-stock = it_mard-labst.

APPEND gt_out.

gt_out-matnr = ' '.

gt_out-head = 'Build Plan'.

APPEND gt_out.

CLEAR it_mard.

CLEAR gt_out.

gt_out-head = 'ACTUAL'.

READ TABLE it_mard WITH KEY matnr = s_matnr-low.

gt_out-stock = it_mard-labst.

  • GT_OUT-MATNR = S_MATNR-LOW.

gt_out-week1 = it_tot1.

gt_out-week2 = it_tot2.

gt_out-week3 = it_tot3.

gt_out-week4 = it_tot4.

gt_out-week5 = it_tot5.

gt_out-week6 = it_tot6.

gt_out-week7 = it_tot7.

gt_out-week8 = it_tot8.

gt_out-week9 = it_tot9.

gt_out-week10 = it_tot10.

gt_out-week11 = it_tot11.

gt_out-week12 = it_tot12.

gt_out-week13 = it_tot13.

APPEND gt_out.

CLEAR gt_out.

gt_out-head = 'BACKLOG'.

  • GT_OUT-MATNR = S_MATNR-LOW.

gt_out-week1 = it_back1.

gt_out-week2 = it_back2.

gt_out-week3 = it_back3.

gt_out-week4 = it_back4.

gt_out-week5 = it_back5.

gt_out-week6 = it_back6.

gt_out-week7 = it_back7.

gt_out-week8 = it_back8.

gt_out-week9 = it_back9.

gt_out-week10 = it_back10.

gt_out-week11 = it_back11.

gt_out-week12 = it_back12.

gt_out-week13 = it_back13.

APPEND gt_out.

CLEAR gt_out.

CLEAR : it_back1,it_back2,it_back3,it_back4,it_back5,it_back6,it_back7,it_back8,it_back9,it_back10,it_back11,it_back12,it_back13.

CLEAR : it_tot1,it_tot2,it_tot3,it_tot4,it_tot5,it_tot6,it_tot7,it_tot8,it_tot9,it_tot10,it_tot11,it_tot12,it_tot13.

gt_out-head = 'BaclLog RECOVERY'.

gt_out-matnr = ' '.

gt_out-week1 = it_tot1.

gt_out-week2 = it_tot2.

gt_out-week3 = it_tot3.

gt_out-week4 = it_tot4.

gt_out-week5 = it_tot5.

gt_out-week6 = it_tot6.

gt_out-week7 = it_tot7.

gt_out-week8 = it_tot8.

gt_out-week9 = it_tot9.

gt_out-week10 = it_tot10.

gt_out-week11 = it_tot11.

gt_out-week12 = it_tot12.

gt_out-week13 = it_tot13.

APPEND gt_out.

CLEAR gt_out.

CLEAR : int1,int2,int3,int4,int5,int6,int7,int8,int9,int10,int11,int12.

ENDAT.

ENDLOOP.

ENDFORM. " gt_out

&----


*& Form s_26week_days

&----


  • text

----


FORM s_26week_days .

DELETE gt_pbed WHERE perxx < s_week-low. " and perxx > s_week-high.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val1.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val2.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val3.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val4.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val5.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val6.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val7.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val8.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val9.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val10.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val11.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val12.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val13.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val14.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val15.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val16.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val17.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val18.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val19.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val20.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val21.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val22.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val23.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val24.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val25.

s_week-low4(2) = s_week-low4(2) + 1.

CONCATENATE 'WEEK' '-' s_week-low+4(2) INTO l_val26.

ENDFORM. " s_26week_days

&----


*& Form GT_OUT26

&----


  • text

----


FORM gt_out26 .

LOOP AT s_matnr.

AT NEW low.

gt_out26-matnr = s_matnr-low.

************BEGIN OF FIRST WEEK******************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val15(2).

gt_out26-week1 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot1 = it_tot1 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot1_2 = it_tot1_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot1 = it_tot1 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot1_2 = it_tot1_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot1 = it_tot1 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot1_2 = it_tot1_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot1 = it_tot1 - it_tot1_2.

it_back1 = gt_out26-week1 - it_tot1.

CLEAR it_zcalendar.

                                              • END OF FIRST WEEK ************************

**********************SECOND WEEK***************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val25(2).

int1 = int1 + 1.

CHECK int1 = 1.

gt_out26-week2 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot2 = it_tot2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot2_2 = it_tot2_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot2 = it_tot2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot2_2 = it_tot2_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot2 = it_tot2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot2_2 = it_tot2_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot2 = it_tot2 - it_tot2_2.

it_back2 = gt_out26-week2 - it_tot2.

it_back2 = it_back2 + it_back1.

CLEAR it_zcalendar.

********************************End of The Second week***********************************************

*********************Third week*************************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val35(2).

int2 = int2 + 1.

CHECK int2 = 1.

gt_out26-week3 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot3 = it_tot3 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot3_2 = it_tot3_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot3 = it_tot3 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot3_2 = it_tot3_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot3 = it_tot3 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot3_2 = it_tot3_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot3 = it_tot3 - it_tot3_2.

it_back3 = gt_out26-week3 - it_tot3.

it_back3 = it_back3 + it_back2.

CLEAR it_zcalendar.

********************************END OF THIRD WEEK******************************************************

*********************************BEGIN OF FOURTH WEEK**************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val45(2).

int3 = int3 + 1.

CHECK int3 = 1.

gt_out26-week4 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot4 = it_tot4 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot4_2 = it_tot4_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot4 = it_tot4 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot4_2 = it_tot4_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot4 = it_tot4 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot4_2 = it_tot4_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot4 = it_tot4 - it_tot4_2.

it_back4 = gt_out26-week4 - it_tot4.

it_back4 = it_back4 + it_back3.

CLEAR it_zcalendar.

*********************************END OF FOURTH WEEK***************************************************

********************************BEGIN FIFTH WEEK******************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val55(2).

int4 = int4 + 1.

CHECK int4 = 1.

gt_out26-week5 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot5 = it_tot5 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot5_2 = it_tot5_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot5 = it_tot5 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot5_2 = it_tot5_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot5 = it_tot5 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot5_2 = it_tot5_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot5 = it_tot5 - it_tot5_2.

it_back5 = gt_out26-week5 - it_tot5.

it_back5 = it_back5 + it_back4.

CLEAR it_zcalendar.

********************************END OF FIVTH WEEK ***********************************************************************

*******************************BEGIN OF SIXTH WEEK*********************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val65(2).

int5 = int5 + 1.

CHECK int5 = 1.

gt_out26-week6 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot6 = it_tot6 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot6_2 = it_tot6_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot6 = it_tot6 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot6_2 = it_tot6_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot6 = it_tot6 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot6_2 = it_tot6_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot6 = it_tot6 - it_tot6_2.

it_back6 = gt_out26-week6 - it_tot6.

it_back6 = it_back6 + it_back5.

CLEAR it_zcalendar.

*******************************END OF THE SIXTH WEEK*************************************************************************

*******************************BEGIN OF SEVENTH WEEK*******************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val75(2).

int6 = int6 + 1.

CHECK int6 = 1.

gt_out26-week7 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot7 = it_tot7 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot7_2 = it_tot7_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot7 = it_tot7 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot7_2 = it_tot7_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot7 = it_tot7 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot7_2 = it_tot7_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot7 = it_tot7 - it_tot7_2.

it_back7 = gt_out26-week7 - it_tot7.

it_back7 = it_back7 + it_back6.

CLEAR it_zcalendar.

******************************END OF SEVENTH WEEK***********************************************************************

                                                              • BEGIN OF EITH WEEK***********************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val85(2).

int7 = int7 + 1.

CHECK int7 = 1.

gt_out26-week8 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot8 = it_tot8 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot8_2 = it_tot8_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot8 = it_tot8 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot8_2 = it_tot8_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot8 = it_tot8 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot8_2 = it_tot8_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot8 = it_tot8 - it_tot8_2.

it_back8 = gt_out26-week8 - it_tot8.

it_back8 = it_back8 + it_back7.

CLEAR it_zcalendar.

                                                • END OF EIGHT WEEK **********************************************************************************************************

***********************BEGIN OF NINTH WEEK***********************************************************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val95(2).

int8 = int8 + 1.

CHECK int8 = 1.

gt_out26-week9 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot9 = it_tot9 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot9_2 = it_tot9_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot9 = it_tot9 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot9_2 = it_tot9_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot9 = it_tot9 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot9_2 = it_tot9_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot9 = it_tot9 - it_tot9_2.

it_back9 = gt_out26-week9 - it_tot9.

it_back9 = it_back9 + it_back8.

CLEAR it_zcalendar.

************************END OF NINTH WEEK ***********************************************************************************

***********************BEGIN OF TENTH WEEK *************************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val105(2).

int9 = int9 + 1.

CHECK int9 = 1.

gt_out26-week10 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot10 = it_tot10 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot10_2 = it_tot10_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot10 = it_tot10 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot10_2 = it_tot10_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot10 = it_tot10 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot10_2 = it_tot10_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot10 = it_tot10 - it_tot10_2.

it_back10 = gt_out26-week10 - it_tot10.

it_back10 = it_back10 + it_back9.

CLEAR it_zcalendar.

***********************END OF THE TENTH WEEK ***********************************************************************

***********************BEGIN OF ELEVENTH WEEK *************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val115(2).

int10 = int10 + 1.

CHECK int10 = 1.

gt_out26-week11 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot11 = it_tot11 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot11_2 = it_tot11_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot11 = it_tot11 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot11_2 = it_tot11_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot11 = it_tot11 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot11_2 = it_tot11_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot11 = it_tot11 - it_tot11_2.

it_back11 = gt_out26-week11 - it_tot11.

it_back11 = it_back11 + it_back10.

CLEAR it_zcalendar.

***********************END OF ELEVENTH WEEK ****************************************************************

**********************BEGIN OF TWELTH WEEK***************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val125(2).

int11 = int11 + 1.

CHECK int11 = 1.

gt_out26-week12 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot12 = it_tot12 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot12_2 = it_tot12_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot12 = it_tot12 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot12_2 = it_tot12_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot12 = it_tot12 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot12_2 = it_tot12_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot12 = it_tot12 - it_tot12_2.

it_back12 = gt_out26-week12 - it_tot12.

it_back12 = it_back12 + it_back11.

CLEAR it_zcalendar.

***************************END O F THE TWELTH WEEK*******************************************

***************************bEGIN OF THIRTEEN WEEK**********************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val135(2).

int13 = int13 + 1.

CHECK int13 = 1.

gt_out26-week13 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot13 = it_tot13 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot13_2 = it_tot13_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot13 = it_tot13 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot13_2 = it_tot13_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot13 = it_tot13 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot13_2 = it_tot13_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot13 = it_tot13 - it_tot13_2.

it_back13 = gt_out26-week13 - it_tot13.

it_back13 = it_back13 + it_back12.

CLEAR it_zcalendar.

*****************************end of thirteen week***********************************************************************

****************************begin 0f fourteenth week********************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val135(2).

int14 = int14 + 1.

CHECK int14 = 1.

gt_out26-week14 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot14 = it_tot14 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot14_2 = it_tot14_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot14 = it_tot14 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot14_2 = it_tot14_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot14 = it_tot14 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot14_2 = it_tot14_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot14 = it_tot14 - it_tot14_2.

it_back14 = gt_out26-week14 - it_tot14.

it_back14 = it_back14 + it_back13.

CLEAR it_zcalendar.

**********************************end of fourteenth week************************************************************

**********************************begin of fifteenth week***********************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val135(2).

int15 = int15 + 1.

CHECK int15 = 1.

gt_out26-week15 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot15 = it_tot15 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot15_2 = it_tot15_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot15 = it_tot15 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot15_2 = it_tot15_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot15 = it_tot15 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot15_2 = it_tot15_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot15 = it_tot15 - it_tot15_2.

it_back15 = gt_out26-week15 - it_tot15.

it_back15 = it_back15 + it_back14.

CLEAR it_zcalendar.

**********************************end of fifteenth week*************************************************************

**********************************begin of sixteenth th week*********************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val135(2).

int16 = int16 + 1.

CHECK int16 = 1.

gt_out26-week16 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot16 = it_tot16 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot16_2 = it_tot16_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot16 = it_tot16 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot16_2 = it_tot16_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot16 = it_tot16 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot16_2 = it_tot16_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot16 = it_tot16 - it_tot16_2.

it_back16 = gt_out26-week16 - it_tot16.

it_back16 = it_back16 + it_back15.

CLEAR it_zcalendar.

***********************************end of sixteenth week*******************************************************************

**********************************begin of seventeenth week*****************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val135(2).

int17 = int17 + 1.

CHECK int17 = 1.

gt_out26-week17 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot17 = it_tot17 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot17_2 = it_tot17_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot17 = it_tot17 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot17_2 = it_tot17_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot17 = it_tot17 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot17_2 = it_tot17_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot17 = it_tot17 - it_tot17_2.

it_back17 = gt_out26-week17 - it_tot17.

it_back17 = it_back17 + it_back16.

CLEAR it_zcalendar.

*******************************************end of seventeenth week********************************************************

****************************begin of eighteenth week-***************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val135(2).

int18 = int18 + 1.

CHECK int18 = 1.

gt_out26-week18 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot18 = it_tot18 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot18_2 = it_tot18_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot18 = it_tot18 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot18_2 = it_tot18_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot18 = it_tot18 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot18_2 = it_tot18_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot18 = it_tot18 - it_tot18_2.

it_back18 = gt_out26-week18 - it_tot18.

it_back18 = it_back18 + it_back17.

CLEAR it_zcalendar.

****************************end of eighteenth week******************************************************************

****************************begin of ninteenth week*****************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val135(2).

int19 = int19 + 1.

CHECK int19 = 1.

gt_out26-week19 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot19 = it_tot19 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot19_2 = it_tot19_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot19 = it_tot19 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot19_2 = it_tot19_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot19 = it_tot19 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot19_2 = it_tot19_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot19 = it_tot19 - it_tot19_2.

it_back19 = gt_out26-week19 - it_tot19.

it_back19 = it_back19 + it_back18.

CLEAR it_zcalendar.

****************************end of nineteenth week******************************************************************

****************************begin of twenteeth week-*****************************************************************

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val135(2).

int20 = int20 + 1.

CHECK int20 = 1.

gt_out26-week20 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot20 = it_tot20 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot20_2 = it_tot20_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot20 = it_tot20 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot20_2 = it_tot20_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot20 = it_tot20 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot20_2 = it_tot20_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot20 = it_tot20 - it_tot20_2.

it_back20 = gt_out26-week20 - it_tot20.

it_back20 = it_back20 + it_back19.

CLEAR it_zcalendar.

****************************end of twenteeth week********************************************************************

***************************begin of 21 week**

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val135(2).

int21 = int21 + 1.

CHECK int21 = 1.

gt_out26-week21 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot21 = it_tot21 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot21_2 = it_tot21_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot21 = it_tot21 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot21_2 = it_tot21_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot21 = it_tot21 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot21_2 = it_tot21_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot21 = it_tot21 - it_tot21_2.

it_back21 = gt_out26-week21 - it_tot21.

it_back21 = it_back21 + it_back20.

CLEAR it_zcalendar.

***************************end of 21 week****

*******************************begin of 22 week**

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val135(2).

int22 = int22 + 1.

CHECK int22 = 1.

gt_out26-week22 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot22 = it_tot22 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot22_2 = it_tot22_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot22 = it_tot22 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot22_2 = it_tot22_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot22 = it_tot22 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot22_2 = it_tot22_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot22 = it_tot22 - it_tot22_2.

it_back22 = gt_out26-week22 - it_tot22.

it_back22 = it_back22 + it_back21.

CLEAR it_zcalendar.

*******************************end of 22 week****

*******************************begin of 23 week*

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val135(2).

int23 = int23 + 1.

CHECK int23 = 1.

gt_out26-week23 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot23 = it_tot23 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot23_2 = it_tot23_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot23 = it_tot23 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot23_2 = it_tot23_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot23 = it_tot23 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot23_2 = it_tot23_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot23 = it_tot23 - it_tot23_2.

it_back23 = gt_out26-week23 - it_tot23.

it_back23 = it_back23 + it_back22.

CLEAR it_zcalendar.

********************************end of 23 week ****

******************************begin of 24 week**

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val135(2).

int24 = int24 + 1.

CHECK int24 = 1.

gt_out26-week24 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot24 = it_tot24 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot24_2 = it_tot24_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot24 = it_tot24 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot24_2 = it_tot24_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot24 = it_tot24 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot24_2 = it_tot24_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot24 = it_tot24 - it_tot24_2.

it_back24 = gt_out26-week24 - it_tot24.

it_back24 = it_back24 + it_back23.

CLEAR it_zcalendar.

******************************end of 24 week****

*****************************begin of 25 week***

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val135(2).

int25 = int25 + 1.

CHECK int25 = 1.

gt_out26-week25 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot25 = it_tot25 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot25_2 = it_tot25_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot25 = it_tot25 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot25_2 = it_tot25_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot25 = it_tot25 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot25_2 = it_tot25_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot25 = it_tot25 - it_tot25_2.

it_back25 = gt_out26-week25 - it_tot25.

it_back25 = it_back25 + it_back24.

CLEAR it_zcalendar.

*****************************end of 25 week*****

*****************************begin of 26 th week****

LOOP AT gt_pbed WHERE matnr = s_matnr-low AND perxx4(2) = l_val135(2).

int26 = int26 + 1.

CHECK int26 = 1.

gt_out26-week26 = gt_pbed-plnmg.

LOOP AT it_zcalendar WHERE sapweekno = gt_pbed-perxx.

IF p_mov = '321'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '321'.

it_tot26 = it_tot26 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '322'.

it_tot26_2 = it_tot26_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '101'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '101'.

it_tot26 = it_tot26 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '102'.

it_tot26_2 = it_tot26_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

IF p_mov = '131'.

LOOP AT it_mkpf WHERE budat GE it_zcalendar-startdt AND budat LE it_zcalendar-enddt.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '131'.

it_tot26 = it_tot26 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

LOOP AT it_mseg WHERE mblnr = it_mkpf-mblnr AND matnr = s_matnr-low AND bwart = '132'.

it_tot26_2 = it_tot26_2 + it_mseg-erfmg.

CLEAR it_mseg.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR gt_pbed.

ENDLOOP.

ENDLOOP.

it_tot26 = it_tot26 - it_tot26_2.

it_back26 = gt_out26-week26 - it_tot26.

it_back26 = it_back26 + it_back25.

CLEAR it_zcalendar.

*****************************end of 26 th week******

gt_out26-head = 'DEMAND'.

APPEND gt_out26.

gt_out26-matnr = ' '.

gt_out26-head = 'Build Plan'.

APPEND gt_out26.

CLEAR it_mard.

CLEAR gt_out26.

gt_out26-head = 'ACTUAL'.

  • GT_OUT26-MATNR = S_MATNR-LOW.

READ TABLE it_mard WITH KEY matnr = s_matnr-low.

gt_out26-stock = it_mard-labst.

gt_out26-week1 = it_tot1.

gt_out26-week2 = it_tot2.

gt_out26-week3 = it_tot3.

gt_out26-week4 = it_tot4.

gt_out26-week5 = it_tot5.

gt_out26-week6 = it_tot6.

gt_out26-week7 = it_tot7.

gt_out26-week8 = it_tot8.

gt_out26-week9 = it_tot9.

gt_out26-week10 = it_tot10.

gt_out26-week11 = it_tot11.

gt_out26-week12 = it_tot12.

gt_out26-week13 = it_tot13.

gt_out26-week14 = it_tot14.

gt_out26-week15 = it_tot15.

gt_out26-week16 = it_tot16.

gt_out26-week17 = it_tot17.

gt_out26-week18 = it_tot18.

gt_out26-week19 = it_tot19.

gt_out26-week20 = it_tot20.

gt_out26-week21 = it_tot21.

gt_out26-week22 = it_tot22.

gt_out26-week23 = it_tot23.

gt_out26-week24 = it_tot24.

gt_out26-week25 = it_tot25.

gt_out26-week26 = it_tot26.

APPEND gt_out26.

CLEAR gt_out26.

gt_out26-head = 'BACKLOG'.

  • GT_OUT26-MATNR = S_MATNR-LOW.

gt_out26-week1 = it_back1.

gt_out26-week2 = it_back2.

gt_out26-week3 = it_back3.

gt_out26-week4 = it_back4.

gt_out26-week5 = it_back5.

gt_out26-week6 = it_back6.

gt_out26-week7 = it_back7.

gt_out26-week8 = it_back8.

gt_out26-week9 = it_back9.

gt_out26-week10 = it_back10.

gt_out26-week11 = it_back11.

gt_out26-week12 = it_back12.

gt_out26-week13 = it_back13.

gt_out26-week14 = it_back14.

gt_out26-week15 = it_back15.

gt_out26-week16 = it_back16.

gt_out26-week17 = it_back17.

gt_out26-week18 = it_back18.

gt_out26-week19 = it_back19.

gt_out26-week20 = it_back20.

gt_out26-week21 = it_back21.

gt_out26-week22 = it_back22.

gt_out26-week23 = it_back23.

gt_out26-week24 = it_back24.

gt_out26-week25 = it_back25.

gt_out26-week26 = it_back26.

APPEND gt_out26.

CLEAR gt_out26.

CLEAR : it_back1,it_back2,it_back3,it_back4,it_back5,it_back6,it_back7,it_back8,it_back9,it_back10,it_back11,it_back12,it_back13,

it_back14,it_back15,it_back16,it_back17,it_back18,it_back19,it_back20,it_back21,it_back22,it_back23,it_back24,it_back25,it_back26.

CLEAR : it_tot1,it_tot2,it_tot3,it_tot4,it_tot5,it_tot6,it_tot7,it_tot8,it_tot9,it_tot10,it_tot11,it_tot12,it_tot13,

it_tot14,it_tot15,it_tot16,it_tot17,it_tot18,it_tot19,it_tot20,it_tot21,it_tot22,it_tot23,it_tot24,it_tot25,it_tot26.

gt_out26-head = 'BackLog RECOVERY'.

gt_out26-matnr = ' '.

APPEND gt_out26.

CLEAR gt_out26.

CLEAR : int1,int2,int3,int4,int5,int6,int7,int8,int9,int10,

int11,int12,int13,int14,int15,int16,int17,int18,int19,int20,

int21,int22,int23,int24,int25,int26.

ENDAT.

ENDLOOP.

ENDFORM. " GT_OUT26

&----


*& Form build_fieldccatlog1

&----


  • text

----


FORM build_fieldccatlog1 .

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'MATNR'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = 'MATERIAL'.

APPEND gt_fieldcat1 TO gt_fieldcat.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'HEAD'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = 'REF'.

APPEND gt_fieldcat1 TO gt_fieldcat.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'STOCK'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = 'FG-STOCK'.

APPEND gt_fieldcat1 TO gt_fieldcat.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'BACKLOG'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = 'BACKLOG'.

APPEND gt_fieldcat1 TO gt_fieldcat.

dd = sy-datum+0(4).

CLEAR : cc,dd1.

cc = l_val1+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val1.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK1'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val1.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val2+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val2.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK2'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val2.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val3+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val3.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK3'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val3.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val4+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val4.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK4'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val4.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val5+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val5.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK5'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val5.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val6+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val6.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK6'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val6.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val7+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val7.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK7'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val7.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val8+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val8.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK8'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val8.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val9+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val9.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK9'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val9.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val10+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val10.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK10'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val10.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val11+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val11.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK11'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val11.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val12+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val12.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK12'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val12.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val13+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val13.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK13'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val13.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val14+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val14.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK14'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val14.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val15+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val15.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK15'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val15.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val16+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val16.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK16'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val16.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val17+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val17.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK17'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val17.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val18+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val18.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK18'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val18.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val19+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val19.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK19'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val19.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val20+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val20.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK20'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val20.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val21+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val21.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK21'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val21.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val22+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val22.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK22'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val22.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val23+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val23.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK23'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val23.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val24+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val24.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK24'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val24.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val25+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val25.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK25'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val25.

APPEND gt_fieldcat1 TO gt_fieldcat.

ENDLOOP.

CLEAR : cc,dd1.

cc = l_val26+5(2).

CONCATENATE dd cc INTO dd1.

LOOP AT it_zcalendar WHERE sapweekno = dd1.

CONCATENATE 'WEEK-' it_zcalendar-wfpweekno+4(2) INTO l_val26.

CLEAR gt_fieldcat1.

gt_fieldcat1-fieldname = 'WEEK26'.

gt_fieldcat1-tabname = 'GT_OUT26'.

gt_fieldcat1-seltext_l = l_val26.

APPEND gt_fieldcat1 TO gt_fieldcat.

CLEAR gt_fieldcat1.

ENDLOOP.

ENDFORM. " build_fieldccatlog1

&----


*& Form 26alv

&----


  • text

----


FORM 26alv .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

  • I_CALLBACK_PROGRAM = ' '

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

  • IS_LAYOUT =

it_fieldcat = gt_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = gt_out26.

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

ENDFORM. " 26alv

&----


*& Form get_backlog

&----


  • text

----


FORM get_backlog .

PERFORM get_pbed_backlog.

PERFORM move_backlog_qty.

ENDFORM. " get_backlog

&----


*& Form get_pbed_backlog

&----


  • text

----


FORM get_pbed_backlog .

DATA : lv_line TYPE i.

DATA it_dispo(1) TYPE c.

*pbim selection

SELECT SINGLE diber INTO it_dispo FROM marc WHERE matnr = s_matnr-low. "ashish changed Dispo to DIBER

IF it_dispo NE 'X'.

SELECT * FROM pbim

WHERE matnr IN s_matnr

AND werks EQ p_werks

AND loevr = space.

SELECT sapweekno FROM zcalendar INTO TABLE it_week WHERE startdt GE '20070401' AND startdt LE p_date2. "p_date2-low.

CLEAR s_week.

READ TABLE s_week INDEX 1.

LOOP AT it_week WHERE it_week < s_week-low.

SELECT * FROM pbed WHERE bdzei = pbim-bdzei AND perxx GE '200714'.

  • perform convert_to_week using pbed-pdatu

  • changing pbed-perxx.

  • check pbed-perxx < r_week-low.

gt_backlog-matnr = pbim-matnr.

  • gt_backlog-backlog = pbed-plnmg - pbed-entmg.

gt_backlog-backlog = pbed-plnmg. " Vamshi 18.08.2004

COLLECT gt_backlog.

CLEAR gt_backlog.

ENDSELECT.

ENDLOOP.

ENDSELECT.

ELSE.

SELECT * FROM pbid

WHERE matnr IN s_matnr

AND werks = p_werks

AND loevr EQ space.

SELECT sapweekno FROM zcalendar INTO TABLE it_week WHERE startdt GE '20070401' AND startdt LE p_date2. "p_date2-low.

CLEAR s_week.

READ TABLE s_week INDEX 1.

LOOP AT it_week WHERE it_week < s_week-low.

SELECT * FROM pbed WHERE bdzei = pbid-bdzei AND perxx EQ it_week-it_week.

gt_backlog-matnr = pbid-matnr.

gt_backlog-backlog = pbed-plnmg. " Vamshi 18.08.2004

COLLECT gt_backlog.

CLEAR gt_backlog.

ENDSELECT.

ENDLOOP.

ENDSELECT.

ENDIF.

ENDFORM. " get_pbed_backlog

&----


*& Form move_backlog_qty

&----


  • text

----


FORM move_backlog_qty .

LOOP AT gt_backlog.

CLEAR gt_pbed.

LOOP AT gt_pbed WHERE matnr = gt_backlog-matnr.

  • if sy-subrc eq 0. "Vamshi 25.08.2004

gt_pbed-backlog = gt_backlog-backlog .

MODIFY gt_pbed INDEX sy-tabix.

  • endif.

ENDLOOP.

READ TABLE gt_pbed WITH KEY matnr = gt_backlog-matnr.

IF sy-subrc NE 0.

gt_pbed-matnr = gt_backlog-matnr.

gt_pbed-backlog = gt_backlog-backlog.

gt_pbed-perxx = s_week-low - 1.

                                                                                                • 05-01-2005

IF gt_pbed-perxx+4(2) EQ '00'.

DATA: lv_year TYPE i.

DATA: lv_week TYPE scal-week.

lv_year = s_week-low+0(4).

lv_year = lv_year - 1.

CALL FUNCTION 'BKK_GET_LASTWEEK_OF_YEAR'

EXPORTING

i_year = lv_year

IMPORTING

e_week = lv_week.

gt_pbed-perxx = lv_week.

ENDIF.

**********************above block added by ****** 05-01-2005

APPEND gt_pbed.

CLEAR gt_pbed.

ENDIF.

ENDLOOP.

ENDFORM. " move_backlog_qty

Regards

Maaya Nayar

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

My first question to you would be ...you have defined the plant code as parameters so you can enter multiple plants...change that to a select-option and you would be able to display all the results.

Regards

Anurag

Former Member
0 Kudos

Dear Anurag,

Thanks a lot. according to your instructions, i did the changes and i could execute that.

regards

maaya

Former Member
0 Kudos

It is nice to understand that the suggestion helped to resolved the issue. As part of the process it always better to assign points to all helpful answers !!

Regards

Anurag

Answers (0)