Go on link..

link us with ...

Tuesday, December 21, 2010

Report for Printing the Daily Production Details

REPORT ZVVF_CR005_DPR_REPORT .
*---------------------------------------------------------------------*
* REPORT ZVVF_CR005_DPR_REPORT *
* *
*---------------------------------------------------------------------*
* *
* MODULE : Production Planning *
* *
*---------------------------------------------------------------------*
* Objective : Report for Printing the Daily Production Details *
* *
* *
* Program : Update Tables( ) Download Data( ) Outputs List (X) *
* Technical Specs No : *
* Date Created : *
* LDB : *
*---------------------------------------------------------------------*


*----------------------------------------------------------------------*
* Type-pools
*----------------------------------------------------------------------*

TYPE-POOLS : SLIS.

*---------------------------------------------------------------------*
* Tables *
*---------------------------------------------------------------------*
TABLES: AFRUD,
AFRU,
AFVC,
CRHD,
MKPF,
MSEG,
CRTX,
T157E,
AFVU,
TC21,
TC20T,
PLPO,
TC20,
AFPO.


*----------------------------------------------------------------------*
* Types Begin with TY_ *
*----------------------------------------------------------------------*
TYPES : BEGIN OF TY_AFRU,
AUFNR LIKE AFRU-AUFNR,
RUECK LIKE AFRU-RUECK,
RMZHL LIKE AFRU-RMZHL,
BUDAT LIKE AFRU-BUDAT,
ARBID LIKE AFRU-ARBID,
GMNGA LIKE AFRU-GMNGA,
MEINH LIKE AFRU-MEINH,
ISDD LIKE AFRU-ISDD,
ISDZ LIKE AFRU-ISDZ,
IEDD LIKE AFRU-IEDD,
IEDZ LIKE AFRU-IEDZ,
AUFPL LIKE AFRU-AUFPL,
APLZL LIKE AFRU-APLZL,
STZHL LIKE AFRU-STZHL,
VORNR LIKE PLPO-VORNR,
ARBPL LIKE CRHD-ARBPL,
KTEXT LIKE CRTX-KTEXT,
GSTRS LIKE AFKO-GSTRS,
GLTRS LIKE AFKO-GLTRS,
STLNR LIKE AFKO-STLNR,
STLAL LIKE AFKO-STLAL,
PLNNR LIKE AFKO-PLNNR,
USR04 LIKE AFVU-USR04,
MATNR LIKE AFPO-MATNR,
ISM01 LIKE AFRU-ISM01,
ILE01 LIKE AFRU-ILE01,
ISM02 LIKE AFRU-ISM02,
ILE02 LIKE AFRU-ILE02,
ISM03 LIKE AFRU-ISM03,
ILE03 LIKE AFRU-ILE03,
ISM04 LIKE AFRU-ISM04,
ILE04 LIKE AFRU-ILE04,
**
ISM01_P LIKE AFRU-ISM01,
ILE01_P LIKE AFRU-ILE01,
ISM02_P LIKE AFRU-ISM02,
ILE02_P LIKE AFRU-ILE02,
ISM03_P LIKE AFRU-ISM03,
ILE03_P LIKE AFRU-ILE03,
ISM04_P LIKE AFRU-ISM04,
ILE04_P LIKE AFRU-ILE04,

ISM05 LIKE AFRU-ISM05,
ILE05 LIKE AFRU-ILE05,
ISM06 LIKE AFRU-ISM06,
ILE06 LIKE AFRU-ILE06,
PAR01 LIKE TC21-PAR01,
PAR02 LIKE TC21-PAR01,
PAR03 LIKE TC21-PAR01,
PAR04 LIKE TC21-PAR01,
***
PAR01_P LIKE TC21-PAR01,
PAR02_P LIKE TC21-PAR01,
PAR03_P LIKE TC21-PAR01,
PAR04_P LIKE TC21-PAR01,

PAR05 LIKE TC21-PAR01,
PAR06 LIKE TC21-PAR01,
STEUS LIKE AFVC-STEUS,
ISTTY LIKE AFVC-ISTTY,
ISTNR LIKE AFVC-ISTNR,
PHFLG LIKE AFVC-PHFLG,
PLNKN LIKE AFVC-PLNKN,
ZAEHL LIKE AFVC-ZAEHL,
VGWTS LIKE AFVC-VGWTS,
TXTLG1 LIKE TC20T-TXTLG,
TXTLG2 LIKE TC20T-TXTLG,
TXTLG3 LIKE TC20T-TXTLG,
TXTLG4 LIKE TC20T-TXTLG,
***
TXTLG1_P LIKE TC20T-TXTLG,
TXTLG2_P LIKE TC20T-TXTLG,
TXTLG3_P LIKE TC20T-TXTLG,
TXTLG4_P LIKE TC20T-TXTLG,

TXTLG5 LIKE TC20T-TXTLG,
TXTLG6 LIKE TC20T-TXTLG,
VGW01 LIKE PLPO-VGW01,
VGW02 LIKE PLPO-VGW02,
VGW03 LIKE PLPO-VGW03,
VGW04 LIKE PLPO-VGW04,
****
VGW01_P LIKE PLPO-VGW01,
VGW02_P LIKE PLPO-VGW02,
VGW03_P LIKE PLPO-VGW03,
VGW04_P LIKE PLPO-VGW04,

VGW05 LIKE PLPO-VGW05,
VGW06 LIKE PLPO-VGW06,
PLNTY LIKE PLPO-PLNTY,
UFQTY1 TYPE P DECIMALS 4,
UFQTY2 TYPE P DECIMALS 4,
UFQTY3 TYPE P DECIMALS 4,
UFQTY4 TYPE P DECIMALS 4,
UFQTY5 TYPE P DECIMALS 4,
UFQTY6 TYPE P DECIMALS 4,

*-------FOR PLANNED MATERIAL
MATNR_P LIKE STPO-IDNRK,
MAKTX_P LIKE MAKT-MAKTX,
MENGE_P LIKE STPO-MENGE,
MEINS_P LIKE STPO-MEINS,

*-------FOR ACTUAL FEED MATERIAL
MATNR_A LIKE MSEG-MATNR,
MAKTX_A LIKE MAKT-MAKTX,
MENGE_A LIKE MSEG-MENGE,
MEINS_A LIKE MSEG-MEINS,

*-------FOR FIRST ACTUAL FEED MATERIAL CONFIRMED
MATNR_1 LIKE MSEG-MATNR,
MAKTX_1 LIKE MAKT-MAKTX,
MENGE_1 LIKE MSEG-MENGE,
MEINS_1 LIKE MSEG-MEINS,
YEILD_1 TYPE P DECIMALS 4,

*-------FOR SECOND ACTUAL FEED MATERIAL CONFIRMED
MATNR_2 LIKE MSEG-MATNR,
MAKTX_2 LIKE MAKT-MAKTX,
MENGE_2 LIKE MSEG-MENGE,
MEINS_2 LIKE MSEG-MEINS,
YEILD_2 TYPE P DECIMALS 4,

*-------FOR THIRD ACTUAL FEED MATERIAL CONFIRMED
MATNR_3 LIKE MSEG-MATNR,
MAKTX_3 LIKE MAKT-MAKTX,
MENGE_3 LIKE MSEG-MENGE,
MEINS_3 LIKE MSEG-MEINS,
YEILD_3 TYPE P DECIMALS 4,

*-------FOR FOURTH ACTUAL FEED MATERIAL CONFIRMED
MATNR_4 LIKE MSEG-MATNR,
MAKTX_4 LIKE MAKT-MAKTX,
MENGE_4 LIKE MSEG-MENGE,
MEINS_4 LIKE MSEG-MEINS,
YEILD_4 TYPE P DECIMALS 4,

*------FOR COST/UNIT FEED QTY
COST_1 TYPE P DECIMALS 4,
COST_2 TYPE P DECIMALS 4,
COST_3 TYPE P DECIMALS 4,
COST_4 TYPE P DECIMALS 4,
COST_5 TYPE P DECIMALS 4,
COST_6 TYPE P DECIMALS 4,
COST_7 TYPE P DECIMALS 4,
COST_8 TYPE P DECIMALS 4,
COST_9 TYPE P DECIMALS 4,
COST_10 TYPE P DECIMALS 4,

END OF TY_AFRU.

TYPES : BEGIN OF TY_STPO,
AUFNR LIKE AFKO-AUFNR,
STLNR LIKE STPO-STLNR,
IDNRK LIKE STPO-IDNRK,
POSNR LIKE STPO-POSNR,
MENGE LIKE STPO-MENGE,
MEINS LIKE STPO-MEINS,
MAKTX LIKE MAKT-MAKTX,
STLAL LIKE AFKO-STLAL,
END OF TY_STPO.

TYPES : BEGIN OF TY_MKPF,
AUFNR LIKE MSEG-AUFNR,
MBLNR LIKE MKPF-MBLNR,
BUDAT LIKE MKPF-BUDAT,
MATNR LIKE MSEG-MATNR,
MAKTX LIKE MAKT-MAKTX,
BWART LIKE MSEG-BWART,
ERFMG LIKE MSEG-ERFMG,
ERFME LIKE MSEG-ERFME,
YEILD TYPE P DECIMALS 4,
END OF TY_MKPF.



*---------------------------------------------------------------------*
* INTERNAL TABLE Begin with IT_ *
*---------------------------------------------------------------------*
DATA : IT_AFRU TYPE STANDARD TABLE OF TY_AFRU WITH HEADER LINE.

DATA : IT_AFRU1 TYPE STANDARD TABLE OF TY_AFRU WITH HEADER LINE.

DATA : IT_STPO TYPE STANDARD TABLE OF TY_STPO WITH HEADER LINE.

DATA : IT_MKPF TYPE STANDARD TABLE OF TY_MKPF WITH HEADER LINE.

DATA : IT_MKPF1 TYPE STANDARD TABLE OF TY_MKPF WITH HEADER LINE.

DATA : IT_MKPF2 TYPE STANDARD TABLE OF TY_MKPF WITH HEADER LINE.

DATA : IT_MKPF3 TYPE STANDARD TABLE OF TY_MKPF WITH HEADER LINE.

DATA : IT_MKPF4 TYPE STANDARD TABLE OF TY_MKPF WITH HEADER LINE.

DATA : IT_MKPF_FIR TYPE STANDARD TABLE OF TY_MKPF WITH HEADER LINE.

DATA : IT_MKPF_SEC TYPE STANDARD TABLE OF TY_MKPF WITH HEADER LINE.

DATA : IT_TC20T TYPE STANDARD TABLE OF TC20T WITH HEADER LINE.

DATA : IT_TC20T1 TYPE STANDARD TABLE OF TC20T WITH HEADER LINE.


DATA : IT_PLPO TYPE STANDARD TABLE OF PLPO WITH HEADER LINE.

*-----FOR SORTING ACCORDING TO ARBPL

DATA : W_GT_SORT TYPE SLIS_SORTINFO_ALV OCCURS 1 WITH HEADER LINE .

*---------------------------------------------------------------------*
* WORK AREAS Begin with WA_ *
*---------------------------------------------------------------------*

DATA : WA_AFRU LIKE LINE OF IT_AFRU.
DATA : WA_AFRU1 LIKE LINE OF IT_AFRU.
DATA : WA_AFRU2 LIKE LINE OF IT_AFRU.



*----------------------------------------------------------------------*
* Constants Begin with C_ *
*----------------------------------------------------------------------*


*---------------------------------------------------------------------*
* Data Variables Begin with W_ *
*---------------------------------------------------------------------*

DATA : W_AUFNR LIKE AFKO-AUFNR.

*--------FOR ALV

DATA : W_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
W_LAYOUT TYPE SLIS_LAYOUT_ALV,
W_LISTHEADER TYPE SLIS_T_LISTHEADER,
W_EVENTS TYPE SLIS_T_EVENT,
W_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
W_REPID TYPE SY-REPID.

DATA : W_INFO(75) TYPE C VALUE 'Processing Unit/Line-Wise Shift-wise
Daily Production Report',

W_INFO_1(75) TYPE C,
W_INFO1(65) TYPE C,
W_INFO2(65) TYPE C.


*---------------------------------------------------------------------*
* parameters Begin with PR_ *
*---------------------------------------------------------------------*


*---------------------------------------------------------------------*
* Select-options Begin with SO_ *
*---------------------------------------------------------------------*

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS : SO_WERKS FOR AFRU-WERKS OBLIGATORY NO-EXTENSION NO
INTERVALS,
SO_ARBPL FOR CRHD-ARBPL,
SO_ISDD FOR AFRU-ISDD OBLIGATORY,
SO_IEDD FOR AFRU-IEDD OBLIGATORY,
SO_ISDZ FOR AFRU-ISDZ,
SO_IEDZ FOR AFRU-IEDZ.

SKIP 1.
SELECTION-SCREEN END OF BLOCK B1.

*---------------------------------------------------------------------*
* INITIALIZATION *
*---------------------------------------------------------------------*

INITIALIZATION.

W_REPID = SY-REPID.

REFRESH : IT_AFRU.

PERFORM F003_EVENTTAB_BUILD_TEMP USING W_EVENTS[].



*---------------------------------------------------------------------*
* AT SELECTION-SCREEN ON VALUE REQUEST .
*---------------------------------------------------------------------*


*---------------------------------------------------------------------*
* AT SELECTION-SCREEN output.
*---------------------------------------------------------------------*

AT SELECTION-SCREEN OUTPUT.


*---------------------------------------------------------------------*
* At selection screen *
*---------------------------------------------------------------------*

AT SELECTION-SCREEN.

PERFORM F001_VALIDATE.

PERFORM HEADING.

*---------------------------------------------------------------------*
* START-OF-SELECTION *
*---------------------------------------------------------------------*


START-OF-SELECTION .

PERFORM F004_FIELDCAT_INIT.

PERFORM F002_GET_DATA.

PERFORM F005_DISPLAY_DATA USING W_LISTHEADER[].

PERFORM F007_EXTEN.

PERFORM F008_ALV_SORT.

*---------------------------------------------------------------------*
* END-OF-SELECTION *
*---------------------------------------------------------------------*

END-OF-SELECTION.

PERFORM F006_DISPLAY_LIST.



*----------------------------------------------------------------------*
* TOP-OF-PAGE *
*----------------------------------------------------------------------*
TOP-OF-PAGE.

*----------------------------------------------------------------------*
* END-OF-PAGE *
*----------------------------------------------------------------------*
END-OF-PAGE.

*&---------------------------------------------------------------------*
*& Form F001_VALIDATE
*&---------------------------------------------------------------------*

FORM F001_VALIDATE .

SELECT AF~RUECK AF~RMZHL AF~BUDAT AF~ARBID AF~GMNGA AF~MEINH AF~ISDD
AF~ISDZ AF~IEDD AF~IEDZ AF~AUFNR AF~AUFPL AF~APLZL AF~VORNR
AF~ISM01 AF~ISM02 AF~ISM03 AF~ISM04 AF~ISM05 AF~ISM06 AF~STZHL
AF~ILE01 AF~ILE02 AF~ILE03 AF~ILE04 AF~ILE05 AF~ILE06
TC~PAR01 TC~PAR02 TC~PAR03 TC~PAR04 TC~PAR05 TC~PAR06
AV~STEUS AV~ISTTY AV~ISTNR AV~PHFLG
AV~PLNKN AV~ZAEHL AV~VGWTS
CR~ARBPL
CT~KTEXT
AK~GSTRS AK~GLTRS AK~STLNR AK~STLAL AK~PLNNR
AU~USR04
AP~MATNR
PL~PLNTY PL~VGW01 PL~VGW02 PL~VGW03
PL~VGW04 PL~VGW05 PL~VGW06

INTO CORRESPONDING FIELDS OF TABLE IT_AFRU
FROM AFRU AS AF INNER JOIN CRHD AS CR
ON AF~ARBID = CR~OBJID
INNER JOIN AFKO AS AK
ON AF~AUFNR = AK~AUFNR
INNER JOIN AFVU AS AU
ON AF~AUFPL = AU~AUFPL AND
AF~APLZL = AU~APLZL
INNER JOIN AFPO AS AP
ON AF~AUFNR = AP~AUFNR
INNER JOIN AFVC AS AV
ON AF~AUFPL = AV~AUFPL
AND AF~APLZL = AV~APLZL
AND AV~PHFLG EQ 'X'
AND AV~STEUS NE 'PI02'
INNER JOIN TC21 AS TC
ON AV~VGWTS = TC~VGWTS
INNER JOIN PLPO AS PL
ON AK~PLNNR = PL~PLNNR AND
AF~VORNR = PL~VORNR
AND PL~PLNTY = '2'
AND PL~PHFLG EQ 'X'
AND PL~STEUS NE 'PI02'
INNER JOIN CRTX AS CT
ON CR~OBJID = CT~OBJID


WHERE AF~WERKS IN SO_WERKS AND
AF~ISDD IN SO_ISDD AND
AF~IEDD IN SO_IEDD AND
AF~ISDZ IN SO_ISDZ AND
AF~IEDZ IN SO_IEDZ AND
AF~SUMNR EQ '0' AND
AP~POSNR = '0001' AND
CR~OBJTY = 'A'.

IF SY-SUBRC = 0.

IF SO_ARBPL IS NOT INITIAL.
LOOP AT IT_AFRU.
IF IT_AFRU-ARBPL NOT IN SO_ARBPL.
DELETE IT_AFRU.
ENDIF.
ENDLOOP.
ENDIF.

ENDIF.


ENDFORM. " F001_VALIDATE

*&---------------------------------------------------------------------*
*& Form F002_GET_DATA
*&---------------------------------------------------------------------*

FORM F002_GET_DATA .

DATA : LW_STLNR LIKE STPO-STLNR,
LW_IDNRK LIKE STPO-IDNRK,
LW_POSNR LIKE STPO-POSNR.

DATA : LW_INDEX TYPE I.

DATA : LW_STLAL LIKE AFKO-STLAL.




SELECT * FROM TC20T INTO CORRESPONDING FIELDS OF TABLE IT_TC20T
FOR ALL ENTRIES IN IT_AFRU
WHERE PARID = IT_AFRU-PAR01
OR PARID = IT_AFRU-PAR02
OR PARID = IT_AFRU-PAR03
OR PARID = IT_AFRU-PAR04
OR PARID = IT_AFRU-PAR05
OR PARID = IT_AFRU-PAR06
AND SPRAS = 'E'.


IF SY-SUBRC = 0.
DELETE IT_TC20T WHERE SPRAS NE 'E'.
ENDIF.




LOOP AT IT_AFRU.

*----FOR GETTING THE PLANNED QTY UTILITY AND ITS DESC

PERFORM UTIL_PLANNED.

PERFORM ASS_UTIL_DESC_PLANNED.

*----------FOR ASSIGNING THE UTILITY DESCRIPTION

PERFORM ASS_UTIL_DESC.

ENDLOOP.





SORT IT_AFRU BY AUFNR ARBPL ISDD IEDD ISDZ IEDZ.

SELECT ST~STLNR ST~IDNRK ST~POSNR ST~MENGE ST~MEINS
MK~MAKTX
AK~AUFNR
INTO CORRESPONDING FIELDS OF TABLE IT_STPO
FROM STPO AS ST INNER JOIN
MAKT AS MK
ON ST~IDNRK = MK~MATNR
INNER JOIN AFKO AS AK
ON ST~STLNR = AK~STLNR
FOR ALL ENTRIES IN IT_AFRU
WHERE ST~STLNR = IT_AFRU-STLNR AND
AK~AUFNR = IT_AFRU-AUFNR AND
POSNR = '0010' AND
SPRAS = 'E'.

* LOOP AT IT_STPO.
* IF SY-TABIX LT '10'.
* LW_STLAL = LW_STLAL + 1.
* CONCATENATE '0' LW_STLAL INTO LW_STLAL.
* IT_STPO-STLAL = LW_STLAL .
* MODIFY IT_STPO.
* ELSE.
* LW_STLAL = LW_STLAL + 1.
* IT_STPO-STLAL = LW_STLAL .
* MODIFY IT_STPO.
* ENDIF.
* ENDLOOP.

LOOP AT IT_STPO.
* IF SY-TABIX LT '10'.
LW_STLAL = LW_STLAL + 1.
LW_STLAL = 1.
CONCATENATE '0' LW_STLAL INTO LW_STLAL.
IT_STPO-STLAL = LW_STLAL .
MODIFY IT_STPO.
* ELSE.
* LW_STLAL = LW_STLAL + 1.
* IT_STPO-STLAL = LW_STLAL .
* MODIFY IT_STPO.
* ENDIF.
ENDLOOP.


LOOP AT IT_STPO.
READ TABLE IT_AFRU WITH KEY STLNR = IT_STPO-STLNR
STLAL = IT_STPO-STLAL.
IF SY-SUBRC NE 0.
DELETE IT_STPO.
ENDIF.
ENDLOOP.


*--------FOR ACTUAL FEED MATERIAL

SELECT MK~MBLNR MK~BUDAT
MS~MATNR MS~AUFNR MS~BWART MS~ERFMG MS~ERFME
MD~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MKPF
FROM MKPF AS MK INNER JOIN
MSEG AS MS
ON MK~MBLNR = MS~MBLNR
INNER JOIN MAKT AS MD
ON MS~MATNR = MD~MATNR
FOR ALL ENTRIES IN IT_AFRU
WHERE MK~BUDAT = IT_AFRU-BUDAT AND
MK~VGART IN ('WA','WR','WF','WE') AND
MS~AUFNR = IT_AFRU-AUFNR AND
MS~BWART IN ('261','543') AND
MS~ZEILE = '0001' AND
MS~WERKS IN SO_WERKS AND
MD~SPRAS = 'E'.
SORT IT_MKPF BY AUFNR.

LOOP AT IT_MKPF.

AT END OF AUFNR.
SUM.
MOVE IT_MKPF-ERFMG TO IT_MKPF_FIR-ERFMG.
READ TABLE IT_MKPF WITH KEY AUFNR = IT_MKPF-AUFNR.
IF SY-SUBRC = 0.
MOVE IT_MKPF-AUFNR TO IT_MKPF_FIR-AUFNR.
MOVE IT_MKPF-MBLNR TO IT_MKPF_FIR-MBLNR.
MOVE IT_MKPF-BUDAT TO IT_MKPF_FIR-BUDAT.
MOVE IT_MKPF-MATNR TO IT_MKPF_FIR-MATNR.
MOVE IT_MKPF-MAKTX TO IT_MKPF_FIR-MAKTX.
MOVE IT_MKPF-BWART TO IT_MKPF_FIR-BWART.
MOVE IT_MKPF-ERFME TO IT_MKPF_FIR-ERFME.
APPEND IT_MKPF_FIR.
ENDIF.
ENDAT.

ENDLOOP.

REFRESH IT_MKPF.
CLEAR IT_MKPF.

SELECT MK~MBLNR MK~BUDAT
MS~MATNR MS~AUFNR MS~BWART MS~ERFMG MS~ERFME
MD~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MKPF
FROM MKPF AS MK INNER JOIN
MSEG AS MS
ON MK~MBLNR = MS~MBLNR
INNER JOIN MAKT AS MD
ON MS~MATNR = MD~MATNR
FOR ALL ENTRIES IN IT_MKPF_FIR
WHERE MK~BUDAT = IT_MKPF_FIR-BUDAT AND
MS~MATNR = IT_MKPF_FIR-MATNR AND
MK~VGART IN ('WA','WR','WF','WE') AND
MS~AUFNR = IT_AFRU-AUFNR AND
MS~BWART IN ('262','544') AND
* MS~ZEILE = '0001' AND
MS~WERKS IN SO_WERKS AND
MD~SPRAS = 'E'.
SORT IT_MKPF BY AUFNR.

LOOP AT IT_MKPF.

AT END OF AUFNR.
SUM.
MOVE IT_MKPF-ERFMG TO IT_MKPF_SEC-ERFMG.
READ TABLE IT_MKPF WITH KEY AUFNR = IT_MKPF-AUFNR.
IF SY-SUBRC = 0.
MOVE IT_MKPF-AUFNR TO IT_MKPF_SEC-AUFNR.
MOVE IT_MKPF-MBLNR TO IT_MKPF_SEC-MBLNR.
MOVE IT_MKPF-BUDAT TO IT_MKPF_SEC-BUDAT.
MOVE IT_MKPF-MATNR TO IT_MKPF_SEC-MATNR.
MOVE IT_MKPF-MAKTX TO IT_MKPF_SEC-MAKTX.
MOVE IT_MKPF-BWART TO IT_MKPF_SEC-BWART.
MOVE IT_MKPF-ERFME TO IT_MKPF_SEC-ERFME.
APPEND IT_MKPF_SEC.
ENDIF.
ENDAT.
ENDLOOP.

REFRESH IT_MKPF.
CLEAR IT_MKPF.

LOOP AT IT_MKPF_FIR.
READ TABLE IT_MKPF_SEC WITH KEY AUFNR = IT_MKPF_FIR-AUFNR.
IF SY-SUBRC = 0.
IT_MKPF-AUFNR = IT_MKPF_FIR-AUFNR.
IT_MKPF-MBLNR = IT_MKPF_FIR-MBLNR.
IT_MKPF-BUDAT = IT_MKPF_FIR-BUDAT.
IT_MKPF-MATNR = IT_MKPF_FIR-MATNR.
IT_MKPF-MAKTX = IT_MKPF_FIR-MAKTX.
IT_MKPF-BWART = IT_MKPF_FIR-BWART.
IT_MKPF-ERFMG = IT_MKPF_FIR-ERFMG - IT_MKPF_SEC-ERFMG.
IT_MKPF-ERFME = IT_MKPF_FIR-ERFME.
APPEND IT_MKPF.
ELSE.
IT_MKPF-AUFNR = IT_MKPF_FIR-AUFNR.
IT_MKPF-MBLNR = IT_MKPF_FIR-MBLNR.
IT_MKPF-BUDAT = IT_MKPF_FIR-BUDAT.
IT_MKPF-MATNR = IT_MKPF_FIR-MATNR.
IT_MKPF-MAKTX = IT_MKPF_FIR-MAKTX.
IT_MKPF-BWART = IT_MKPF_FIR-BWART.
IT_MKPF-ERFMG = IT_MKPF_FIR-ERFMG.
IT_MKPF-ERFME = IT_MKPF_FIR-ERFME.
APPEND IT_MKPF.

ENDIF.
ENDLOOP.

REFRESH :IT_MKPF_FIR,IT_MKPF_SEC.
CLEAR :IT_MKPF_FIR,IT_MKPF_SEC.

*--------FOR PRODUCTION QTY OF MATERIAL ONE.


SELECT MK~MBLNR MK~BUDAT
MS~AUFNR MS~BWART MS~ERFMG MS~ERFME
AF~MATNR
MD~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MKPF_FIR
FROM MKPF AS MK INNER JOIN
MSEG AS MS
ON MK~MBLNR = MS~MBLNR
INNER JOIN AFPO AS AF
ON MS~AUFNR = AF~AUFNR AND
AF~MATNR = MS~MATNR
INNER JOIN MAKT AS MD
ON AF~MATNR = MD~MATNR
FOR ALL ENTRIES IN IT_AFRU
WHERE MK~BUDAT = IT_AFRU-BUDAT AND
MK~VGART IN ('WR','WF') AND
MS~AUFNR = IT_AFRU-AUFNR AND
MS~BWART = '101' AND
MS~ZEILE = '0001' AND
AF~POSNR = '0001' AND
MS~WERKS IN SO_WERKS AND
MD~SPRAS = 'E'.


SORT IT_MKPF_FIR BY AUFNR.

SELECT MK~MBLNR MK~BUDAT
MS~AUFNR MS~BWART MS~ERFMG MS~ERFME
AF~MATNR
MD~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MKPF_SEC
FROM MKPF AS MK INNER JOIN
MSEG AS MS
ON MK~MBLNR = MS~MBLNR
INNER JOIN AFPO AS AF
ON MS~AUFNR = AF~AUFNR AND
AF~MATNR = MS~MATNR
INNER JOIN MAKT AS MD
ON AF~MATNR = MD~MATNR
FOR ALL ENTRIES IN IT_AFRU
WHERE MK~BUDAT = IT_AFRU-BUDAT AND
MK~VGART IN ('WR','WF') AND
MS~AUFNR = IT_AFRU-AUFNR AND
MS~BWART = '102' AND
MS~ZEILE = '0001' AND
AF~POSNR = '0001' AND
MS~WERKS IN SO_WERKS AND
MD~SPRAS = 'E'.


SORT IT_MKPF_SEC BY AUFNR.

LOOP AT IT_MKPF_FIR.
READ TABLE IT_MKPF_SEC WITH KEY AUFNR = IT_MKPF_FIR-AUFNR.
IF SY-SUBRC = 0.
IT_MKPF1-AUFNR = IT_MKPF_FIR-AUFNR.
IT_MKPF1-MBLNR = IT_MKPF_FIR-MBLNR.
IT_MKPF1-BUDAT = IT_MKPF_FIR-BUDAT.
IT_MKPF1-MATNR = IT_MKPF_FIR-MATNR.
IT_MKPF1-MAKTX = IT_MKPF_FIR-MAKTX.
IT_MKPF1-BWART = IT_MKPF_FIR-BWART.
IT_MKPF1-ERFMG = IT_MKPF_FIR-ERFMG - IT_MKPF_SEC-ERFMG.
IT_MKPF1-ERFME = IT_MKPF_FIR-ERFME.
APPEND IT_MKPF1.
ELSE.
IT_MKPF1-AUFNR = IT_MKPF_FIR-AUFNR.
IT_MKPF1-MBLNR = IT_MKPF_FIR-MBLNR.
IT_MKPF1-BUDAT = IT_MKPF_FIR-BUDAT.
IT_MKPF1-MATNR = IT_MKPF_FIR-MATNR.
IT_MKPF1-MAKTX = IT_MKPF_FIR-MAKTX.
IT_MKPF1-BWART = IT_MKPF_FIR-BWART.
IT_MKPF1-ERFMG = IT_MKPF_FIR-ERFMG.
IT_MKPF1-ERFME = IT_MKPF_FIR-ERFME.
APPEND IT_MKPF1.

ENDIF.
ENDLOOP.



LOOP AT IT_MKPF1.
READ TABLE IT_MKPF WITH KEY AUFNR = IT_MKPF1-AUFNR.
IF SY-SUBRC = 0.
IT_MKPF1-YEILD = IT_MKPF-ERFMG / IT_MKPF1-ERFMG.
MODIFY IT_MKPF1 TRANSPORTING YEILD WHERE AUFNR = IT_MKPF-AUFNR.
ENDIF.
ENDLOOP.


*--------FOR ACTUAL MATERIAL PRODUCT TWO.

REFRESH :IT_MKPF_FIR,IT_MKPF_SEC.
CLEAR :IT_MKPF_FIR,IT_MKPF_SEC.

SELECT MK~MBLNR MK~BUDAT
MS~AUFNR MS~BWART MS~ERFMG MS~ERFME
AF~MATNR
MD~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MKPF_FIR
FROM MKPF AS MK INNER JOIN
MSEG AS MS
ON MK~MBLNR = MS~MBLNR
INNER JOIN AFPO AS AF
ON MS~AUFNR = AF~AUFNR AND
AF~MATNR = MS~MATNR
INNER JOIN MAKT AS MD
ON AF~MATNR = MD~MATNR
FOR ALL ENTRIES IN IT_AFRU
WHERE MK~BUDAT = IT_AFRU-BUDAT AND
MK~VGART IN ('WR','WF') AND
MS~AUFNR = IT_AFRU-AUFNR AND
MS~BWART IN ('101','531') AND
MS~ZEILE = '0001' AND
AF~POSNR = '0002' AND
MS~WERKS IN SO_WERKS AND
MD~SPRAS = 'E'.


SORT IT_MKPF_FIR BY AUFNR.

SELECT MK~MBLNR MK~BUDAT
MS~AUFNR MS~BWART MS~ERFMG MS~ERFME
AF~MATNR
MD~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MKPF_SEC
FROM MKPF AS MK INNER JOIN
MSEG AS MS
ON MK~MBLNR = MS~MBLNR
INNER JOIN AFPO AS AF
ON MS~AUFNR = AF~AUFNR AND
AF~MATNR = MS~MATNR
INNER JOIN MAKT AS MD
ON AF~MATNR = MD~MATNR
FOR ALL ENTRIES IN IT_AFRU
WHERE MK~BUDAT = IT_AFRU-BUDAT AND
MK~VGART IN ('WR','WF') AND
MS~AUFNR = IT_AFRU-AUFNR AND
MS~BWART IN ('102','532') AND
MS~ZEILE = '0001' AND
AF~POSNR = '0002' AND
MS~WERKS IN SO_WERKS AND
MD~SPRAS = 'E'.


SORT IT_MKPF_SEC BY AUFNR.

LOOP AT IT_MKPF_FIR.
READ TABLE IT_MKPF_SEC WITH KEY AUFNR = IT_MKPF_FIR-AUFNR.
IF SY-SUBRC = 0.
IT_MKPF2-AUFNR = IT_MKPF_FIR-AUFNR.
IT_MKPF2-MBLNR = IT_MKPF_FIR-MBLNR.
IT_MKPF2-BUDAT = IT_MKPF_FIR-BUDAT.
IT_MKPF2-MATNR = IT_MKPF_FIR-MATNR.
IT_MKPF2-MAKTX = IT_MKPF_FIR-MAKTX.
IT_MKPF2-BWART = IT_MKPF_FIR-BWART.
IT_MKPF2-ERFMG = IT_MKPF_FIR-ERFMG - IT_MKPF_SEC-ERFMG.
IT_MKPF2-ERFME = IT_MKPF_FIR-ERFME.
APPEND IT_MKPF2.
ELSE.
IT_MKPF2-AUFNR = IT_MKPF_FIR-AUFNR.
IT_MKPF2-MBLNR = IT_MKPF_FIR-MBLNR.
IT_MKPF2-BUDAT = IT_MKPF_FIR-BUDAT.
IT_MKPF2-MATNR = IT_MKPF_FIR-MATNR.
IT_MKPF2-MAKTX = IT_MKPF_FIR-MAKTX.
IT_MKPF2-BWART = IT_MKPF_FIR-BWART.
IT_MKPF2-ERFMG = IT_MKPF_FIR-ERFMG.
IT_MKPF2-ERFME = IT_MKPF_FIR-ERFME.
APPEND IT_MKPF2.

ENDIF.
ENDLOOP.

REFRESH :IT_MKPF_FIR,IT_MKPF_SEC.
CLEAR :IT_MKPF_FIR,IT_MKPF_SEC.

LOOP AT IT_MKPF2.
READ TABLE IT_MKPF WITH KEY AUFNR = IT_MKPF2-AUFNR.
IF SY-SUBRC = 0.
IT_MKPF2-YEILD = IT_MKPF-ERFMG / IT_MKPF2-ERFMG.
MODIFY IT_MKPF2 TRANSPORTING YEILD WHERE AUFNR = IT_MKPF-AUFNR.
ENDIF.
ENDLOOP.


*--------FOR ACTUAL MATERIAL PRODUCT THREE.

REFRESH :IT_MKPF_FIR,IT_MKPF_SEC.
CLEAR :IT_MKPF_FIR,IT_MKPF_SEC.

SELECT MK~MBLNR MK~BUDAT
MS~AUFNR MS~BWART MS~ERFMG MS~ERFME
AF~MATNR
MD~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MKPF_FIR
FROM MKPF AS MK INNER JOIN
MSEG AS MS
ON MK~MBLNR = MS~MBLNR
INNER JOIN AFPO AS AF
ON MS~AUFNR = AF~AUFNR AND
AF~MATNR = MS~MATNR
INNER JOIN MAKT AS MD
ON AF~MATNR = MD~MATNR
FOR ALL ENTRIES IN IT_AFRU
WHERE MK~BUDAT = IT_AFRU-BUDAT AND
MK~VGART IN ('WR','WF') AND
MS~AUFNR = IT_AFRU-AUFNR AND
MS~BWART = '101' AND
MS~ZEILE = '0001' AND
AF~POSNR = '0003' AND
MS~WERKS IN SO_WERKS AND
MD~SPRAS = 'E'.


SORT IT_MKPF_FIR BY AUFNR.

SELECT MK~MBLNR MK~BUDAT
MS~AUFNR MS~BWART MS~ERFMG MS~ERFME
AF~MATNR
MD~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MKPF_SEC
FROM MKPF AS MK INNER JOIN
MSEG AS MS
ON MK~MBLNR = MS~MBLNR
INNER JOIN AFPO AS AF
ON MS~AUFNR = AF~AUFNR AND
AF~MATNR = MS~MATNR
INNER JOIN MAKT AS MD
ON AF~MATNR = MD~MATNR
FOR ALL ENTRIES IN IT_AFRU
WHERE MK~BUDAT = IT_AFRU-BUDAT AND
MK~VGART IN ('WR','WF') AND
MS~AUFNR = IT_AFRU-AUFNR AND
MS~BWART = '102' AND
MS~ZEILE = '0001' AND
AF~POSNR = '0003' AND
MS~WERKS IN SO_WERKS AND
MD~SPRAS = 'E'.


SORT IT_MKPF_SEC BY AUFNR.

LOOP AT IT_MKPF_FIR.
READ TABLE IT_MKPF_SEC WITH KEY AUFNR = IT_MKPF_FIR-AUFNR.
IF SY-SUBRC = 0.
IT_MKPF3-AUFNR = IT_MKPF_FIR-AUFNR.
IT_MKPF3-MBLNR = IT_MKPF_FIR-MBLNR.
IT_MKPF3-BUDAT = IT_MKPF_FIR-BUDAT.
IT_MKPF3-MATNR = IT_MKPF_FIR-MATNR.
IT_MKPF3-MAKTX = IT_MKPF_FIR-MAKTX.
IT_MKPF3-BWART = IT_MKPF_FIR-BWART.
IT_MKPF3-ERFMG = IT_MKPF_FIR-ERFMG - IT_MKPF_SEC-ERFMG.
IT_MKPF3-ERFME = IT_MKPF_FIR-ERFME.
APPEND IT_MKPF3.
ELSE.
IT_MKPF3-AUFNR = IT_MKPF_FIR-AUFNR.
IT_MKPF3-MBLNR = IT_MKPF_FIR-MBLNR.
IT_MKPF3-BUDAT = IT_MKPF_FIR-BUDAT.
IT_MKPF3-MATNR = IT_MKPF_FIR-MATNR.
IT_MKPF3-MAKTX = IT_MKPF_FIR-MAKTX.
IT_MKPF3-BWART = IT_MKPF_FIR-BWART.
IT_MKPF3-ERFMG = IT_MKPF_FIR-ERFMG.
IT_MKPF3-ERFME = IT_MKPF_FIR-ERFME.
APPEND IT_MKPF3.

ENDIF.
ENDLOOP.

REFRESH :IT_MKPF_FIR,IT_MKPF_SEC.
CLEAR :IT_MKPF_FIR,IT_MKPF_SEC.

LOOP AT IT_MKPF3.
READ TABLE IT_MKPF WITH KEY AUFNR = IT_MKPF3-AUFNR.
IF SY-SUBRC = 0.
IT_MKPF3-YEILD = IT_MKPF-ERFMG / IT_MKPF3-ERFMG.
MODIFY IT_MKPF3 TRANSPORTING YEILD WHERE AUFNR = IT_MKPF-AUFNR.
ENDIF.
ENDLOOP.


*--------FOR ACTUAL MATERIAL PRODUCT FOUR.

REFRESH :IT_MKPF_FIR,IT_MKPF_SEC.
CLEAR :IT_MKPF_FIR,IT_MKPF_SEC.

SELECT MK~MBLNR MK~BUDAT
MS~AUFNR MS~BWART MS~ERFMG MS~ERFME
AF~MATNR
INTO CORRESPONDING FIELDS OF TABLE IT_MKPF_FIR
FROM MKPF AS MK INNER JOIN
MSEG AS MS
ON MK~MBLNR = MS~MBLNR
INNER JOIN AFPO AS AF
ON MS~AUFNR = AF~AUFNR AND
AF~MATNR = MS~MATNR
FOR ALL ENTRIES IN IT_AFRU
WHERE MK~BUDAT = IT_AFRU-BUDAT AND
MK~VGART IN ('WR','WF') AND
MS~AUFNR = IT_AFRU-AUFNR AND
MS~BWART = '101' AND
MS~ZEILE = '0001' AND
AF~POSNR = '0004' AND
MS~WERKS IN SO_WERKS.


SORT IT_MKPF_FIR BY AUFNR.

SELECT MK~MBLNR MK~BUDAT
MS~AUFNR MS~BWART MS~ERFMG MS~ERFME
AF~MATNR
INTO CORRESPONDING FIELDS OF TABLE IT_MKPF_SEC
FROM MKPF AS MK INNER JOIN
MSEG AS MS
ON MK~MBLNR = MS~MBLNR
INNER JOIN AFPO AS AF
ON MS~AUFNR = AF~AUFNR AND
AF~MATNR = MS~MATNR
FOR ALL ENTRIES IN IT_AFRU
WHERE MK~BUDAT = IT_AFRU-BUDAT AND
MK~VGART IN ('WR','WF') AND
MS~AUFNR = IT_AFRU-AUFNR AND
MS~BWART = '102' AND
MS~ZEILE = '0001' AND
AF~POSNR = '0004' AND
MS~WERKS IN SO_WERKS.


SORT IT_MKPF_SEC BY AUFNR.

LOOP AT IT_MKPF_FIR.
READ TABLE IT_MKPF_SEC WITH KEY AUFNR = IT_MKPF_FIR-AUFNR.
IF SY-SUBRC = 0.
IT_MKPF4-AUFNR = IT_MKPF_FIR-AUFNR.
IT_MKPF4-MBLNR = IT_MKPF_FIR-MBLNR.
IT_MKPF4-BUDAT = IT_MKPF_FIR-BUDAT.
IT_MKPF4-MATNR = IT_MKPF_FIR-MATNR.
IT_MKPF4-BWART = IT_MKPF_FIR-BWART.
IT_MKPF4-ERFMG = IT_MKPF_FIR-ERFMG - IT_MKPF_SEC-ERFMG.
IT_MKPF4-ERFME = IT_MKPF_FIR-ERFME.
APPEND IT_MKPF4.
ELSE.
IT_MKPF4-AUFNR = IT_MKPF_FIR-AUFNR.
IT_MKPF4-MBLNR = IT_MKPF_FIR-MBLNR.
IT_MKPF4-BUDAT = IT_MKPF_FIR-BUDAT.
IT_MKPF4-MATNR = IT_MKPF_FIR-MATNR.
IT_MKPF4-BWART = IT_MKPF_FIR-BWART.
IT_MKPF4-ERFMG = IT_MKPF_FIR-ERFMG.
IT_MKPF4-ERFME = IT_MKPF_FIR-ERFME.
APPEND IT_MKPF4.

ENDIF.
ENDLOOP.

REFRESH :IT_MKPF_FIR,IT_MKPF_SEC.
CLEAR :IT_MKPF_FIR,IT_MKPF_SEC.

LOOP AT IT_MKPF4.
READ TABLE IT_MKPF WITH KEY AUFNR = IT_MKPF4-AUFNR.
IF SY-SUBRC = 0.
IT_MKPF4-YEILD = IT_MKPF-ERFMG / IT_MKPF4-ERFMG.
MODIFY IT_MKPF4 TRANSPORTING YEILD WHERE AUFNR = IT_MKPF-AUFNR.
ENDIF.
ENDLOOP.

*------------MAPPING OF ALL THE FIELDS INTO MAIN TABLE IT_AFRU.

LOOP AT IT_AFRU INTO WA_AFRU.

W_AUFNR = WA_AFRU-AUFNR.
MOVE-CORRESPONDING WA_AFRU TO WA_AFRU1.

AT END OF AUFNR.

MOVE-CORRESPONDING WA_AFRU1 TO WA_AFRU.
*---FOR PLANNED FEED MATERIAL
READ TABLE IT_STPO WITH KEY AUFNR = W_AUFNR.
IF SY-SUBRC = 0.
WA_AFRU-MATNR_P = IT_STPO-IDNRK.
WA_AFRU-MAKTX_P = IT_STPO-MAKTX.
WA_AFRU-MENGE_P = IT_STPO-MENGE.
WA_AFRU-MEINS_P = IT_STPO-MEINS.

ENDIF.


*---FOR ACTUAL FEED MATERIAL
READ TABLE IT_MKPF WITH KEY AUFNR = W_AUFNR.
IF SY-SUBRC = 0.
WA_AFRU-MATNR_A = IT_MKPF-MATNR.
WA_AFRU-MAKTX_A = IT_MKPF-MAKTX.
WA_AFRU-MENGE_A = IT_MKPF-ERFMG.
WA_AFRU-MEINS_A = IT_MKPF-ERFME.

ENDIF.

*---FOR FIRST ACTUAL FEED MATERIAL CONFIRMED
READ TABLE IT_MKPF1 WITH KEY AUFNR = W_AUFNR.
IF SY-SUBRC = 0.
WA_AFRU-MATNR_1 = IT_MKPF1-MATNR.
WA_AFRU-MAKTX_1 = IT_MKPF1-MAKTX.
WA_AFRU-MENGE_1 = IT_MKPF1-ERFMG.
WA_AFRU-MEINS_1 = IT_MKPF1-ERFME.

IF WA_AFRU-MENGE_A NE ' '.
WA_AFRU-YEILD_1 = WA_AFRU-MENGE_1 / WA_AFRU-MENGE_A * 100.
ENDIF.


ENDIF.

*---FOR SECOND ACTUAL FEED MATERIAL CONFIRMED
READ TABLE IT_MKPF2 WITH KEY AUFNR = W_AUFNR.
IF SY-SUBRC = 0.
WA_AFRU-MATNR_2 = IT_MKPF2-MATNR.
WA_AFRU-MAKTX_2 = IT_MKPF2-MAKTX.
WA_AFRU-MENGE_2 = IT_MKPF2-ERFMG.
WA_AFRU-MEINS_2 = IT_MKPF2-ERFME.

IF WA_AFRU-MENGE_A NE ' '.
WA_AFRU-YEILD_2 = WA_AFRU-MENGE_2 / WA_AFRU-MENGE_A * 100.
ENDIF.

ENDIF.

*---FOR THIRD ACTUAL FEED MATERIAL CONFIRMED
READ TABLE IT_MKPF3 WITH KEY AUFNR = W_AUFNR.
IF SY-SUBRC = 0.
WA_AFRU-MATNR_3 = IT_MKPF3-MATNR.
WA_AFRU-MAKTX_3 = IT_MKPF3-MAKTX.
WA_AFRU-MENGE_3 = IT_MKPF3-ERFMG.
WA_AFRU-MEINS_3 = IT_MKPF3-ERFME.

IF WA_AFRU-MENGE_A NE ' '.
WA_AFRU-YEILD_3 = WA_AFRU-MENGE_3 / WA_AFRU-MENGE_A * 100.
ENDIF.

ENDIF.

*---FOR FOURTH ACTUAL FEED MATERIAL CONFIRMED
READ TABLE IT_MKPF4 WITH KEY AUFNR = W_AUFNR.
IF SY-SUBRC = 0.
WA_AFRU-MATNR_4 = IT_MKPF4-MATNR.
WA_AFRU-MAKTX_4 = IT_MKPF4-MAKTX.
WA_AFRU-MENGE_4 = IT_MKPF4-ERFMG.
WA_AFRU-MEINS_4 = IT_MKPF4-ERFME.

IF WA_AFRU-MENGE_A NE ' '.
WA_AFRU-YEILD_4 = WA_AFRU-MENGE_4 / WA_AFRU-MENGE_A * 100.
ENDIF.

ENDIF.



MODIFY IT_AFRU FROM WA_AFRU.
CLEAR WA_AFRU.

ENDAT.
CLEAR WA_AFRU1.
ENDLOOP.

*---------FOR CALCULATING UNIT FEED QTY

PERFORM UNIT_FEED_QTY.



ENDFORM. " F002_GET_DATA

*&---------------------------------------------------------------------*
*& Form ASS_UTIL_DESC
*&---------------------------------------------------------------------*

FORM ASS_UTIL_DESC .

READ TABLE IT_TC20T WITH KEY PARID = IT_AFRU-PAR01.
IF SY-SUBRC = 0.
IT_AFRU-TXTLG1 = IT_TC20T-TXTLG.
MODIFY IT_AFRU TRANSPORTING TXTLG1.
ENDIF.


READ TABLE IT_TC20T WITH KEY PARID = IT_AFRU-PAR02.
IF SY-SUBRC = 0.
IT_AFRU-TXTLG2 = IT_TC20T-TXTLG.
MODIFY IT_AFRU TRANSPORTING TXTLG2.
ENDIF.


READ TABLE IT_TC20T WITH KEY PARID = IT_AFRU-PAR03.
IF SY-SUBRC = 0.
IT_AFRU-TXTLG3 = IT_TC20T-TXTLG.
MODIFY IT_AFRU TRANSPORTING TXTLG3.
ENDIF.


READ TABLE IT_TC20T WITH KEY PARID = IT_AFRU-PAR04.
IF SY-SUBRC = 0.
IT_AFRU-TXTLG4 = IT_TC20T-TXTLG.
MODIFY IT_AFRU TRANSPORTING TXTLG4.
ENDIF.


READ TABLE IT_TC20T WITH KEY PARID = IT_AFRU-PAR05.
IF SY-SUBRC = 0.
IT_AFRU-TXTLG5 = IT_TC20T-TXTLG.
MODIFY IT_AFRU TRANSPORTING TXTLG5.
ENDIF.


READ TABLE IT_TC20T WITH KEY PARID = IT_AFRU-PAR06.
IF SY-SUBRC = 0.
IT_AFRU-TXTLG6 = IT_TC20T-TXTLG.
MODIFY IT_AFRU TRANSPORTING TXTLG6.
ENDIF.


ENDFORM. " ASS_UTIL_DESC

*&---------------------------------------------------------------------*
*& Form UNIT_FEED_QTY
*&---------------------------------------------------------------------*

FORM UNIT_FEED_QTY .

DATA : LWA_AFRU LIKE LINE OF IT_AFRU.

DATA : LW_COST1 TYPE P DECIMALS 4,
LW_COST2 TYPE P DECIMALS 4,
LW_COST3 TYPE P DECIMALS 4,
LW_COST4 TYPE P DECIMALS 4,
LW_COST5 TYPE P DECIMALS 4,
LW_COST6 TYPE P DECIMALS 4,
LW_COST7 TYPE P DECIMALS 4,
LW_COST8 TYPE P DECIMALS 4,
LW_COST9 TYPE P DECIMALS 4,
LW_COST10 TYPE P DECIMALS 4.

LOOP AT IT_AFRU INTO LWA_AFRU.

LOOP AT IT_AFRU WHERE AUFNR = LWA_AFRU-AUFNR.

IF IT_AFRU-MENGE_A NE ' '.

LW_COST1 = LWA_AFRU-ISM01 / IT_AFRU-MENGE_A.
LW_COST2 = LWA_AFRU-ISM02 / IT_AFRU-MENGE_A.
LW_COST3 = LWA_AFRU-ISM03 / IT_AFRU-MENGE_A.
LW_COST4 = LWA_AFRU-ISM04 / IT_AFRU-MENGE_A.
LW_COST5 = LWA_AFRU-ISM05 / IT_AFRU-MENGE_A.
LW_COST6 = LWA_AFRU-ISM06 / IT_AFRU-MENGE_A.
LW_COST7 = LWA_AFRU-ISM01_P / IT_AFRU-MENGE_A.
LW_COST8 = LWA_AFRU-ISM02_P / IT_AFRU-MENGE_A.
LW_COST9 = LWA_AFRU-ISM03_P / IT_AFRU-MENGE_A.
LW_COST10 = LWA_AFRU-ISM04_P / IT_AFRU-MENGE_A.

ENDIF.
ENDLOOP.

LWA_AFRU-COST_1 = LW_COST1.
LWA_AFRU-COST_2 = LW_COST2.
LWA_AFRU-COST_3 = LW_COST3.
LWA_AFRU-COST_4 = LW_COST4.
LWA_AFRU-COST_5 = LW_COST5.
LWA_AFRU-COST_6 = LW_COST6.
LWA_AFRU-COST_7 = LW_COST7.
LWA_AFRU-COST_8 = LW_COST8.
LWA_AFRU-COST_9 = LW_COST9.
LWA_AFRU-COST_10 = LW_COST10.


MODIFY IT_AFRU FROM LWA_AFRU.

ENDLOOP.



ENDFORM. " UNIT_FEED_QTY

*&---------------------------------------------------------------------*
*& Form F003_EVENTTAB_BUILD_TEMP
*&---------------------------------------------------------------------*

FORM F003_EVENTTAB_BUILD_TEMP USING RT_EVENTS TYPE SLIS_T_EVENT.

DATA : LW_EVENT TYPE SLIS_ALV_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = RT_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE INTO LW_EVENT
.

IF SY-SUBRC = 0.
MOVE W_TOP_OF_PAGE TO LW_EVENT-FORM.
APPEND LW_EVENT TO RT_EVENTS.
ENDIF.


ENDFORM. " F003_EVENTTAB_BUILD_TEMP

*&---------------------------------------------------------------------*
*& Form F004_FIELDCAT_INIT
*&---------------------------------------------------------------------*

FORM F004_FIELDCAT_INIT .

DATA : LW_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ARBPL'.
LW_FIELDCAT-SELTEXT_M = 'Processing/Unit Line'.
LW_FIELDCAT-OUTPUTLEN = 8.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'KTEXT'.
LW_FIELDCAT-SELTEXT_M = 'Processing/Unit Line Desc'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'RUECK'.
LW_FIELDCAT-SELTEXT_M = 'Confirmation Number'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ISDD'.
LW_FIELDCAT-SELTEXT_M = 'Act.Exec.StartDate'.
LW_FIELDCAT-OUTPUTLEN = 8.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'IEDD'.
LW_FIELDCAT-SELTEXT_M = 'Act.Exec.FinishDate'.
LW_FIELDCAT-OUTPUTLEN = 8.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ISDZ'.
LW_FIELDCAT-SELTEXT_M = 'Act.Starttime'.
LW_FIELDCAT-OUTPUTLEN = 8.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'IEDZ'.
LW_FIELDCAT-SELTEXT_M = 'Act.Endtime'.
LW_FIELDCAT-OUTPUTLEN = 8.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'GSTRS'.
LW_FIELDCAT-SELTEXT_M = 'Shcedule Startdate'.
LW_FIELDCAT-OUTPUTLEN = 8.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'GLTRS'.
LW_FIELDCAT-SELTEXT_M = 'Shcedule Finishdate'.
LW_FIELDCAT-OUTPUTLEN = 8.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BUDAT'.
LW_FIELDCAT-SELTEXT_M = 'Posting date'.
LW_FIELDCAT-OUTPUTLEN = 8.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'AUFNR'.
LW_FIELDCAT-SELTEXT_M = 'Order'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_P'.
LW_FIELDCAT-SELTEXT_M = 'Plan.FeedMaterial'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_P'.
LW_FIELDCAT-SELTEXT_M = 'Plan.FeedMaterial Desc'.
LW_FIELDCAT-OUTPUTLEN = 40 .
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MENGE_P'.
LW_FIELDCAT-SELTEXT_M = 'Planned Qty'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MEINS_P'.
LW_FIELDCAT-SELTEXT_M = 'Unit of Issue'.
LW_FIELDCAT-OUTPUTLEN = 4.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_A'.
LW_FIELDCAT-SELTEXT_M = 'Act.FeedMaterial'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_A'.
LW_FIELDCAT-SELTEXT_M = 'Act.FeedMaterial Desc'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MENGE_A'.
LW_FIELDCAT-SELTEXT_M = 'Total Net Qty'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MEINS_A'.
LW_FIELDCAT-SELTEXT_M = 'UnitofEntry'.
LW_FIELDCAT-OUTPUTLEN = 4.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'USR04'.
LW_FIELDCAT-SELTEXT_M = 'Rated Capacity'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_1'.
LW_FIELDCAT-SELTEXT_M = 'Act.Material1 Confirmed'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_1'.
LW_FIELDCAT-SELTEXT_M = 'Act.Material1 Desc'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'GMNGA'.
LW_FIELDCAT-SELTEXT_M = 'Confirmed Qty Mat1'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.


CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MENGE_1'.
LW_FIELDCAT-SELTEXT_M = 'Prod Qty Mat1'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MEINS_1'.
LW_FIELDCAT-SELTEXT_M = 'Prod.UOE Mat1'.
LW_FIELDCAT-OUTPUTLEN = 4.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'YEILD_1'.
LW_FIELDCAT-SELTEXT_M = 'Yeild % Mat1'.
LW_FIELDCAT-OUTPUTLEN = 4.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

***
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_2'.
LW_FIELDCAT-SELTEXT_M = 'Act.Material2 Confirmed'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_2'.
LW_FIELDCAT-SELTEXT_M = 'Act.Material2 Desc'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MENGE_2'.
LW_FIELDCAT-SELTEXT_M = 'Prod Qty Mat2'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MEINS_2'.
LW_FIELDCAT-SELTEXT_M = 'Prod.UOE Mat2'.
LW_FIELDCAT-OUTPUTLEN = 4.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'YEILD_2'.
LW_FIELDCAT-SELTEXT_M = 'Yeild % Mat2'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

***

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_3'.
LW_FIELDCAT-SELTEXT_M = 'Act.Material3 Confirmed'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_3'.
LW_FIELDCAT-SELTEXT_M = 'Act.Material3 Desc'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MENGE_3'.
LW_FIELDCAT-SELTEXT_M = 'Prod Qty Mat3'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MEINS_3'.
LW_FIELDCAT-SELTEXT_M = 'Prod.UOE Mat3'.
LW_FIELDCAT-OUTPUTLEN = 4.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'YEILD_3'.
LW_FIELDCAT-SELTEXT_M = 'Yeild % Mat3'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
****

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_4'.
LW_FIELDCAT-SELTEXT_M = 'Act.Material4 Confirmed'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_4'.
LW_FIELDCAT-SELTEXT_M = 'Act.Material4 Desc'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MENGE_4'.
LW_FIELDCAT-SELTEXT_M = 'Prod Qty Mat4'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MEINS_4'.
LW_FIELDCAT-SELTEXT_M = 'Prod.UOE Mat4'.
LW_FIELDCAT-OUTPUTLEN = 4.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'YEILD_4'.
LW_FIELDCAT-SELTEXT_M = 'Yeild % Mat4'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

****
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'TXTLG1'.
LW_FIELDCAT-SELTEXT_M = 'Utility 1 Desc'.
LW_FIELDCAT-OUTPUTLEN = 6.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'VGW01'.
LW_FIELDCAT-SELTEXT_M = 'Planned Qty Utility 1'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ISM01'.
LW_FIELDCAT-SELTEXT_M = 'Act Qty Utility 1'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ILE01'.
LW_FIELDCAT-SELTEXT_M = 'Unit of Utility 1'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = ' COST_1'.
LW_FIELDCAT-SELTEXT_M = 'Cost/Unit Feed Qty 1'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.


****
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'TXTLG2'.
LW_FIELDCAT-SELTEXT_M = 'Utility 2 Desc'.
LW_FIELDCAT-OUTPUTLEN = 6.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'VGW02'.
LW_FIELDCAT-SELTEXT_M = 'Planned Qty Utility 2'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ISM02'.
LW_FIELDCAT-SELTEXT_M = 'Act Qty Utility 2'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ILE02'.
LW_FIELDCAT-SELTEXT_M = 'Unit of Utility 2'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'COST_2'.
LW_FIELDCAT-SELTEXT_M = 'Cost/Unit Feed Qty 2'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

****
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'TXTLG3'.
LW_FIELDCAT-SELTEXT_M = 'Utility 3 Desc'.
LW_FIELDCAT-OUTPUTLEN = 6.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'VGW03'.
LW_FIELDCAT-SELTEXT_M = 'Planned Qty Utility 3'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ISM03'.
LW_FIELDCAT-SELTEXT_M = 'Act Qty Utility 3'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ILE03'.
LW_FIELDCAT-SELTEXT_M = 'Unit of Utility 3'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'COST_3'.
LW_FIELDCAT-SELTEXT_M = 'Cost/Unit Feed Qty 3'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.


****
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'TXTLG4'.
LW_FIELDCAT-SELTEXT_M = 'Utility 4 Desc'.
LW_FIELDCAT-OUTPUTLEN = 6.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'VGW04'.
LW_FIELDCAT-SELTEXT_M = 'Planned Qty Utility 4'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ISM04'.
LW_FIELDCAT-SELTEXT_M = 'Act Qty Utility 4'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ILE04'.
LW_FIELDCAT-SELTEXT_M = 'Unit of Utility 4'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'COST_4'.
LW_FIELDCAT-SELTEXT_M = 'Cost/Unit Feed Qty 4'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

****
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'TXTLG5'.
LW_FIELDCAT-SELTEXT_M = 'Utility 5 Desc'.
LW_FIELDCAT-OUTPUTLEN = 6.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'VGW05'.
LW_FIELDCAT-SELTEXT_M = 'Planned Qty Utility 5'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ISM05'.
LW_FIELDCAT-SELTEXT_M = 'Act Qty Utility 5'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ILE05'.
LW_FIELDCAT-SELTEXT_M = 'Unit of Utility 5'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'COST_5'.
LW_FIELDCAT-SELTEXT_M = 'Cost/Unit Feed Qty 5'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

****
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'TXTLG6'.
LW_FIELDCAT-SELTEXT_M = 'Utility 6 Desc'.
LW_FIELDCAT-OUTPUTLEN = 6.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'VGW06'.
LW_FIELDCAT-SELTEXT_M = 'Planned Qty Utility 6'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ISM06'.
LW_FIELDCAT-SELTEXT_M = 'Act Qty Utility 6'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ILE06'.
LW_FIELDCAT-SELTEXT_M = 'Unit of Utility 6'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'COST_6'.
LW_FIELDCAT-SELTEXT_M = 'Cost/Unit Feed Qty 6'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
*****
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'TXTLG1_P'.
LW_FIELDCAT-SELTEXT_M = 'Utility 7 Desc'.
LW_FIELDCAT-OUTPUTLEN = 6.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'VGW01_P'.
LW_FIELDCAT-SELTEXT_M = 'Planned Qty Utility 7'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ISM01_P'.
LW_FIELDCAT-SELTEXT_M = 'Act Qty Utility 7'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ILE01_P'.
LW_FIELDCAT-SELTEXT_M = 'Unit of Utility 7'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'COST_7'.
LW_FIELDCAT-SELTEXT_M = 'Cost/Unit Feed Qty 7'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
****
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'TXTLG2_P'.
LW_FIELDCAT-SELTEXT_M = 'Utility 8 Desc'.
LW_FIELDCAT-OUTPUTLEN = 6.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'VGW02_P'.
LW_FIELDCAT-SELTEXT_M = 'Planned Qty Utility 8'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ISM02_P'.
LW_FIELDCAT-SELTEXT_M = 'Act Qty Utility 8'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ILE02_P'.
LW_FIELDCAT-SELTEXT_M = 'Unit of Utility 8'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'COST_8'.
LW_FIELDCAT-SELTEXT_M = 'Cost/Unit Feed Qty 8'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

****
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'TXTLG3_P'.
LW_FIELDCAT-SELTEXT_M = 'Utility 9 Desc'.
LW_FIELDCAT-OUTPUTLEN = 6.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'VGW03_P'.
LW_FIELDCAT-SELTEXT_M = 'Planned Qty Utility 9'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ISM03_P'.
LW_FIELDCAT-SELTEXT_M = 'Act Qty Utility 9'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ILE03_P'.
LW_FIELDCAT-SELTEXT_M = 'Unit of Utility 9'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'COST_9'.
LW_FIELDCAT-SELTEXT_M = 'Cost/Unit Feed Qty 9'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

****
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'TXTLG4_P'.
LW_FIELDCAT-SELTEXT_M = 'Utility 10 Desc'.
LW_FIELDCAT-OUTPUTLEN = 6.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'VGW04_P'.
LW_FIELDCAT-SELTEXT_M = 'Planned Qty Utility 10'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ISM04_P'.
LW_FIELDCAT-SELTEXT_M = 'Act Qty Utility 10'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ILE04_P'.
LW_FIELDCAT-SELTEXT_M = 'Unit of Utility 10'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'COST_10'.
LW_FIELDCAT-SELTEXT_M = 'Cost/Unit Feed Qty 10'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.





ENDFORM. " F004_FIELDCAT_INIT

*&---------------------------------------------------------------------*
*& Form F005_DISPLAY_DATA
*&---------------------------------------------------------------------*

FORM F005_DISPLAY_DATA USING GT_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA : LW_LISTHEADER TYPE SLIS_LISTHEADER.

CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'H'.
LW_LISTHEADER-INFO = W_INFO.
APPEND LW_LISTHEADER TO GT_LISTHEADER.

CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'H'.
LW_LISTHEADER-INFO = W_INFO_1.
APPEND LW_LISTHEADER TO GT_LISTHEADER.


CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_INFO1.
APPEND LW_LISTHEADER TO GT_LISTHEADER.

CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_INFO2.
APPEND LW_LISTHEADER TO GT_LISTHEADER.


ENDFORM. " F005_DISPLAY_DATA

*&---------------------------------------------------------------------*
*& Form F006_DISPLAY_LIST
*&---------------------------------------------------------------------*

FORM F006_DISPLAY_LIST .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = W_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
I_BACKGROUND_ID = 'ALV_BACKGROUND'
* I_GRID_TITLE =
* I_GRID_SETTINGS =
IS_LAYOUT = W_LAYOUT
IT_FIELDCAT = W_FIELDCATALOG[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
IT_SORT = W_GT_SORT[]
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = W_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
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_AFRU
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.



ENDFORM. " F006_DISPLAY_LIST

*&--------------------------------------------------------------------*
*& Form TOP_OF_PAGE
*&--------------------------------------------------------------------*

FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = W_LISTHEADER
I_LOGO = ' '.

ENDFORM. "top_of_page_db

*&---------------------------------------------------------------------*
*& Form F007_EXTEN
*&---------------------------------------------------------------------*

FORM F007_EXTEN .

DATA :LW_GMNGA(14) TYPE C.

LOOP AT IT_AFRU.
IF IT_AFRU-STZHL NE '0'.
LW_GMNGA = IT_AFRU-GMNGA.
CONCATENATE '-' LW_GMNGA INTO LW_GMNGA.
CONDENSE LW_GMNGA.
IT_AFRU-GMNGA = LW_GMNGA.
MODIFY IT_AFRU.
ENDIF.
SHIFT IT_AFRU-AUFNR LEFT DELETING LEADING '0'.
SHIFT IT_AFRU-MATNR LEFT DELETING LEADING '0'.
SHIFT IT_AFRU-MATNR_P LEFT DELETING LEADING '0'.
SHIFT IT_AFRU-MATNR_A LEFT DELETING LEADING '0'.
SHIFT IT_AFRU-MATNR_1 LEFT DELETING LEADING '0'.
SHIFT IT_AFRU-MATNR_2 LEFT DELETING LEADING '0'.
SHIFT IT_AFRU-MATNR_3 LEFT DELETING LEADING '0'.
SHIFT IT_AFRU-MATNR_4 LEFT DELETING LEADING '0'.

MODIFY IT_AFRU.
ENDLOOP.

ENDFORM. " F007_EXTEN

*&---------------------------------------------------------------------*
*& Form F008_ALV_SORT
*&---------------------------------------------------------------------*

FORM F008_ALV_SORT .
W_GT_SORT-SPOS = 1.
W_GT_SORT-FIELDNAME = 'ARBPL'.
W_GT_SORT-UP = 'X'.
APPEND W_GT_SORT.

W_GT_SORT-SPOS = 2.
W_GT_SORT-FIELDNAME = 'KTEXT'.
W_GT_SORT-UP = 'X'.
APPEND W_GT_SORT.



ENDFORM. " F008_ALV_SORT

*&---------------------------------------------------------------------*
*& Form UTIL_PLANNED
*&---------------------------------------------------------------------*

FORM UTIL_PLANNED .

DATA : LW_RUECK LIKE AFRU-RUECK.

LW_RUECK = IT_AFRU-RUECK + 1.

SELECT SINGLE AF~ISM01 AF~ISM02 AF~ISM03 AF~ISM04
AF~ILE01 AF~ILE02 AF~ILE03 AF~ILE04
AV~VGWTS
TC~PAR01 TC~PAR02 TC~PAR03 TC~PAR04
PL~PLNTY PL~VGW01 PL~VGW02 PL~VGW03
PL~VGW04

FROM AFRU AS AF INNER JOIN AFVC AS AV
ON AF~AUFPL = AV~AUFPL
AND AF~APLZL = AV~APLZL
AND AV~PHFLG EQ 'X'
AND AV~STEUS NE 'PI02'
INNER JOIN AFKO AS AK
ON AF~AUFNR = AK~AUFNR
INNER JOIN TC21 AS TC
ON AV~VGWTS = TC~VGWTS
INNER JOIN PLPO AS PL
ON AK~PLNNR = PL~PLNNR AND
AF~VORNR = PL~VORNR
AND PL~PLNTY = '2'
AND PL~PHFLG EQ 'X'
AND PL~STEUS NE 'PI02'

INTO CORRESPONDING FIELDS OF WA_AFRU2
WHERE AF~RUECK = LW_RUECK AND
AF~RMZHL = IT_AFRU-RMZHL AND
AF~AUFNR = IT_AFRU-AUFNR AND
AF~SUMNR NE '0'.

IT_AFRU-ISM01_P = WA_AFRU2-ISM01.
IT_AFRU-ISM02_P = WA_AFRU2-ISM02.
IT_AFRU-ISM03_P = WA_AFRU2-ISM03.
IT_AFRU-ISM04_P = WA_AFRU2-ISM04.

IT_AFRU-ILE01_P = WA_AFRU2-ILE01.
IT_AFRU-ILE02_P = WA_AFRU2-ILE02.
IT_AFRU-ILE03_P = WA_AFRU2-ILE03.
IT_AFRU-ILE04_P = WA_AFRU2-ILE04.

IT_AFRU-PAR01_P = WA_AFRU2-PAR01.
IT_AFRU-PAR02_P = WA_AFRU2-PAR02.
IT_AFRU-PAR03_P = WA_AFRU2-PAR03.
IT_AFRU-PAR04_P = WA_AFRU2-PAR04.

IT_AFRU-VGW01_P = WA_AFRU2-VGW01.
IT_AFRU-VGW02_P = WA_AFRU2-VGW02.
IT_AFRU-VGW03_P = WA_AFRU2-VGW03.
IT_AFRU-VGW04_P = WA_AFRU2-VGW04.


MODIFY IT_AFRU.

ENDFORM. " UTIL_PLANNED

*&---------------------------------------------------------------------*
*& Form ASS_UTIL_DESC_PLANNED
*&---------------------------------------------------------------------*

FORM ASS_UTIL_DESC_PLANNED .


SELECT * FROM TC20T INTO CORRESPONDING FIELDS OF TABLE IT_TC20T1
FOR ALL ENTRIES IN IT_AFRU
WHERE PARID = IT_AFRU-PAR01_P
OR PARID = IT_AFRU-PAR02_P
OR PARID = IT_AFRU-PAR03_P
OR PARID = IT_AFRU-PAR04_P
AND SPRAS = 'E'.


IF SY-SUBRC = 0.
DELETE IT_TC20T1 WHERE SPRAS NE 'E'.
ENDIF.

READ TABLE IT_TC20T1 WITH KEY PARID = IT_AFRU-PAR01_P.
IF SY-SUBRC = 0.
IT_AFRU-TXTLG1_P = IT_TC20T1-TXTLG.
MODIFY IT_AFRU TRANSPORTING TXTLG1_P.
ENDIF.


READ TABLE IT_TC20T1 WITH KEY PARID = IT_AFRU-PAR02_P.
IF SY-SUBRC = 0.
IT_AFRU-TXTLG2_P = IT_TC20T1-TXTLG.
MODIFY IT_AFRU TRANSPORTING TXTLG2_P.
ENDIF.


READ TABLE IT_TC20T1 WITH KEY PARID = IT_AFRU-PAR03_P.
IF SY-SUBRC = 0.
IT_AFRU-TXTLG3_P = IT_TC20T1-TXTLG.
MODIFY IT_AFRU TRANSPORTING TXTLG3_P.
ENDIF.


READ TABLE IT_TC20T1 WITH KEY PARID = IT_AFRU-PAR04_P.
IF SY-SUBRC = 0.
IT_AFRU-TXTLG4_P = IT_TC20T-TXTLG.
MODIFY IT_AFRU TRANSPORTING TXTLG4_P.
ENDIF.



ENDFORM. " ASS_UTIL_DESC_PLANNED

*&---------------------------------------------------------------------*
*& Form HEADING
*&---------------------------------------------------------------------*

FORM HEADING .

DATA :LW_NAME1 LIKE T001W-NAME1.

CONCATENATE 'for the period' SO_ISDD-LOW+6(2) '.'SO_ISDD-LOW+4(2) '.'
SO_ISDD-LOW+0(4) '-' SO_ISDD-HIGH+6(2) '.'SO_ISDD-HIGH+4(2) '.'
SO_ISDD-HIGH+0(4) INTO W_INFO_1.


CONCATENATE 'Plant Code :' SO_WERKS-LOW INTO W_INFO1.

SELECT SINGLE NAME1 INTO LW_NAME1
FROM T001W
WHERE WERKS = SO_WERKS-LOW.

CONCATENATE 'Plant Description :' LW_NAME1 INTO W_INFO2.





ENDFORM. " HEADING

No comments:

link us...

For Visitors

if you want to publish or Add something on ERP, SAP , SAP FUNCTIONAL, SAP ABAP then mail us along with your email-id. contain must be yours

email-id :- avinashkr_raj@yahoo.com(any email)

email-id :- avinaskr_raj.abap@blogger.com ( use only gmail)