Go on link..

link us with ...

Tuesday, December 21, 2010

Report for showing the Details of Noodle Production and daily Dispatch Report

REPORT ZVVF_CR011_PRODVSDISPATCH .

*---------------------------------------------------------------------*
* REPORT ZVVF_CR011_PRODVSDISPATCH *
* *
*---------------------------------------------------------------------*
* *
* MODULE : Production Planning *
* *
*---------------------------------------------------------------------*
* Objective : Report for showing the Details of Noodle Production *
* and daily Dispatch Report *
* *
* Program : Update Tables( ) Download Data( ) Outputs List (X) *
* Technical Specs No : *
* Date Created : *
* Author : *
* Location : *
* LDB : *
*---------------------------------------------------------------------*


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

TYPE-POOLS : SLIS.

*---------------------------------------------------------------------*
* Tables *
*---------------------------------------------------------------------*
TABLES : MKPF,
MSEG.

*----------------------------------------------------------------------*
* Types Begin with TY_ *
*----------------------------------------------------------------------*
TYPES : BEGIN OF TY_MAIN,
MATNR LIKE MSEG-MATNR,
BUDAT LIKE MKPF-BUDAT,
MBLNR LIKE MKPF-MBLNR,
MAKTX LIKE MAKT-MAKTX,
ERFMG LIKE MSEG-ERFMG,
ERFME LIKE MSEG-ERFME,
MATNR_K LIKE MSEG-MATNR,
MAKTX_K LIKE MAKT-MAKTX,
ERFMG_K LIKE MSEG-ERFMG,
ERFME_K LIKE MSEG-ERFME,
MATNR_N LIKE MSEG-MATNR,
MAKTX_N LIKE MAKT-MAKTX,
ERFMG_N LIKE MSEG-ERFMG,
ERFME_N LIKE MSEG-ERFME,
MATNR_D LIKE MSEG-MATNR,
MAKTX_D LIKE MAKT-MAKTX,
ERFMG_D LIKE MSEG-ERFMG,
ERFME_D LIKE MSEG-ERFME,
MATNR_A LIKE MSEG-MATNR,
MAKTX_A LIKE MAKT-MAKTX,
ERFMG_A LIKE MSEG-ERFMG,
ERFME_A LIKE MSEG-ERFME,
MATNR_O LIKE MSEG-MATNR,
MAKTX_O LIKE MAKT-MAKTX,
ERFMG_O LIKE MSEG-ERFMG,
ERFME_O LIKE MSEG-ERFME,
END OF TY_MAIN.

TYPES : BEGIN OF TY_MKPF,
BUDAT LIKE MKPF-BUDAT,
MBLNR LIKE MKPF-MBLNR,
END OF TY_MKPF.

TYPES : BEGIN OF TY_MSEG,
BUDAT LIKE MKPF-BUDAT,
MATNR LIKE MSEG-MATNR,
MBLNR LIKE MKPF-MBLNR,
MAKTX LIKE MAKT-MAKTX,
ERFMG LIKE MSEG-ERFMG,
ERFME LIKE MSEG-ERFME,
END OF TY_MSEG.

*---------------------------------------------------------------------*
* INTERNAL TABLE Begin with IT_ *
*---------------------------------------------------------------------*

DATA : IT_MAIN TYPE STANDARD TABLE OF TY_MAIN WITH HEADER LINE.
DATA : IT_MAIN1 TYPE STANDARD TABLE OF TY_MAIN WITH HEADER LINE.
DATA : IT_MAIN2 TYPE STANDARD TABLE OF TY_MAIN WITH HEADER LINE.


DATA : IT_DATA TYPE STANDARD TABLE OF TY_MAIN WITH HEADER LINE.

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

DATA : IT_MSEG_KA TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_KA1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_KA_1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_KA_2 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.



DATA : IT_MSEG_NV TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_NV1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_NV_1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_NV_2 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.


DATA : IT_MSEG_DU TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_DU1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_DU_1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_DU_2 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.



DATA : IT_MSEG_AM TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_AM1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_AM_1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_AM_2 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.




DATA : IT_MSEG_OT TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_OT1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_OT_1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_OT_2 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.


*---------------------------------------------------------------------*
* WORK AREAS Begin with WA_ *
*---------------------------------------------------------------------*
DATA : WA_DATA LIKE LINE OF IT_DATA.

DATA : WA_MSEG_KA LIKE LINE OF IT_MSEG_KA.
DATA : WA_MSEG_NV LIKE LINE OF IT_MSEG_NV.
DATA : WA_MSEG_DU LIKE LINE OF IT_MSEG_DU.
DATA : WA_MSEG_AM LIKE LINE OF IT_MSEG_AM.
DATA : WA_MSEG_OT LIKE LINE OF IT_MSEG_OT.





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


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

*--------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_GT_SORT TYPE SLIS_SORTINFO_ALV OCCURS 1 WITH HEADER LINE .


DATA : W_INFO(65) 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_BUDAT FOR MKPF-BUDAT OBLIGATORY.
SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN END OF BLOCK B1.


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

INITIALIZATION.

W_REPID = SY-REPID.

REFRESH : IT_DATA.

PERFORM F003_EVENTTAB_BUILD_TEMP USING W_EVENTS[].


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

AT SELECTION-SCREEN OUTPUT .


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

AT SELECTION-SCREEN.

PERFORM F001_VALIDATE.

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


START-OF-SELECTION .

PERFORM F004_FIELDCAT_INIT.

PERFORM F002_GET_DATA.

PERFORM F005_DISPLAY_DATA USING W_LISTHEADER[].

PERFORM F007_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 .

DATA : LW_DATE1(10) TYPE C.
DATA : LW_DATE2(10) TYPE C.
DATA : LW_NAME1 LIKE T001W-NAME1.



SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MAIN1
FROM MKPF AS MK INNER JOIN
MSEG AS MS ON MK~MBLNR = MS~MBLNR
INNER JOIN
MAKT AS MA
ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WA' AND
MS~WERKS = 'P002' AND
MS~BWART = '521' AND
MA~SPRAS = 'E'.
IF SY-SUBRC NE 0.
MESSAGE E001(ZVVF_CR011_MESSAGE).
ENDIF.

******-------FOR DEDUCTING REVERSAL QTY

SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MAIN2
FROM MKPF AS MK INNER JOIN
MSEG AS MS ON MK~MBLNR = MS~MBLNR
INNER JOIN
MAKT AS MA
ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WA' AND
MS~WERKS = 'P002' AND
MS~BWART = '522' AND
MA~SPRAS = 'E'.
LOOP AT IT_MAIN1.
READ TABLE IT_MAIN2 WITH KEY BUDAT = IT_MAIN1-BUDAT
MATNR = IT_MAIN1-MATNR.
IF SY-SUBRC = 0.
IT_MAIN-BUDAT = IT_MAIN1-BUDAT.
IT_MAIN-MBLNR = IT_MAIN1-MBLNR.
IT_MAIN-MATNR = IT_MAIN1-MATNR.
IT_MAIN-MAKTX = IT_MAIN1-MAKTX.
IT_MAIN-ERFMG = IT_MAIN1-ERFMG - IT_MAIN2-ERFMG.
IT_MAIN-ERFME = IT_MAIN1-ERFME.
APPEND IT_MAIN.
ELSE.
IT_MAIN-BUDAT = IT_MAIN1-BUDAT.
IT_MAIN-MBLNR = IT_MAIN1-MBLNR.
IT_MAIN-MATNR = IT_MAIN1-MATNR.
IT_MAIN-MAKTX = IT_MAIN1-MAKTX.
IT_MAIN-ERFMG = IT_MAIN1-ERFMG.
IT_MAIN-ERFME = IT_MAIN1-ERFME.
APPEND IT_MAIN.

ENDIF.
ENDLOOP.

*---------END OF FOR DEDUCTING REVERSAL QTY

CONCATENATE SO_BUDAT-LOW+6(2) '.' SO_BUDAT-LOW+4(2) '.'
SO_BUDAT-LOW+2(2) INTO LW_DATE1.

CONCATENATE SO_BUDAT-HIGH+6(2) '.' SO_BUDAT-HIGH+4(2) '.'
SO_BUDAT-HIGH+2(2) INTO LW_DATE2.


CONCATENATE 'Noodle Production v/s Daily Dispatch for'
'' LW_DATE1 '' '-' '' LW_DATE2 INTO W_INFO.

CONCATENATE 'Plant Code :' 'P002' INTO W_INFO1.

SELECT SINGLE NAME1 INTO LW_NAME1
FROM T001W
WHERE WERKS = 'P002'.
CONCATENATE 'Plant Name :' LW_NAME1 INTO W_INFO2.


ENDFORM. " F001_VALIDATE

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

FORM F002_GET_DATA .

DATA : LW_PSEN_DUR TYPE PSEN_DURATION_DEC,
LW_DUR TYPE I,
LW_CNT1 TYPE PSEN_DURATION_DEC,
LW_CNT TYPE I,
LW_DATE TYPE ENDDA.


SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_KA_1
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P011' AND
MS~BWART = '641' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.

*----FOR DEDUCTING REVERSAL QTY
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_KA_2
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P011' AND
MS~BWART = '642' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
LOOP AT IT_MSEG_KA_1.
READ TABLE IT_MSEG_KA_2 WITH KEY BUDAT = IT_MSEG_KA_2-BUDAT
MATNR = IT_MSEG_KA_2-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_KA-BUDAT = IT_MSEG_KA_1-BUDAT.
IT_MSEG_KA-MBLNR = IT_MSEG_KA_1-MBLNR.
IT_MSEG_KA-MATNR = IT_MSEG_KA_1-MATNR.
IT_MSEG_KA-MAKTX = IT_MSEG_KA_1-MAKTX.
IT_MSEG_KA-ERFMG = IT_MSEG_KA_1-ERFMG - IT_MSEG_KA_2-ERFMG.
IT_MSEG_KA-ERFME = IT_MSEG_KA_1-ERFME.
APPEND IT_MSEG_KA.
ELSE.
IT_MSEG_KA-BUDAT = IT_MSEG_KA_1-BUDAT.
IT_MSEG_KA-MBLNR = IT_MSEG_KA_1-MBLNR.
IT_MSEG_KA-MATNR = IT_MSEG_KA_1-MATNR.
IT_MSEG_KA-MAKTX = IT_MSEG_KA_1-MAKTX.
IT_MSEG_KA-ERFMG = IT_MSEG_KA_1-ERFMG.
IT_MSEG_KA-ERFME = IT_MSEG_KA_1-ERFME.
APPEND IT_MSEG_KA.

ENDIF.
ENDLOOP.

*---------END OF FOR DEDUCTING REVERSAL QTY





SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_NV_1
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P013' AND
MS~BWART = '641' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.

*--------FOR DEDUCTING REVERSAL QTY

SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_NV_2
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P013' AND
MS~BWART = '642' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
LOOP AT IT_MSEG_NV_1.
READ TABLE IT_MSEG_NV_2 WITH KEY BUDAT = IT_MSEG_NV_2-BUDAT
MATNR = IT_MSEG_NV_2-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_NV-BUDAT = IT_MSEG_NV_1-BUDAT.
IT_MSEG_NV-MBLNR = IT_MSEG_NV_1-MBLNR.
IT_MSEG_NV-MATNR = IT_MSEG_NV_1-MATNR.
IT_MSEG_NV-MAKTX = IT_MSEG_NV_1-MAKTX.
IT_MSEG_NV-ERFMG = IT_MSEG_NV_1-ERFMG - IT_MSEG_NV_2-ERFMG.
IT_MSEG_NV-ERFME = IT_MSEG_NV_1-ERFME.
APPEND IT_MSEG_NV.
ELSE.
IT_MSEG_NV-BUDAT = IT_MSEG_NV_1-BUDAT.
IT_MSEG_NV-MBLNR = IT_MSEG_NV_1-MBLNR.
IT_MSEG_NV-MATNR = IT_MSEG_NV_1-MATNR.
IT_MSEG_NV-MAKTX = IT_MSEG_NV_1-MAKTX.
IT_MSEG_NV-ERFMG = IT_MSEG_NV_1-ERFMG.
IT_MSEG_NV-ERFME = IT_MSEG_NV_1-ERFME.
APPEND IT_MSEG_NV.

ENDIF.
ENDLOOP.

*---------END OF FOR DEDUCTING REVERSAL QTY




SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_DU_1
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P002' AND
MS~BWART = '601' AND
MS~KUNNR IN ('518','465') AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.

**------FOR DEDUCTING THE REVERSAL QTY

SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_DU_2
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P002' AND
MS~BWART = '602' AND
MS~KUNNR IN ('518','465') AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.

LOOP AT IT_MSEG_DU_1.
READ TABLE IT_MSEG_DU_2 WITH KEY BUDAT = IT_MSEG_DU_2-BUDAT
MATNR = IT_MSEG_DU_2-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_DU-BUDAT = IT_MSEG_DU_1-BUDAT.
IT_MSEG_DU-MBLNR = IT_MSEG_DU_1-MBLNR.
IT_MSEG_DU-MATNR = IT_MSEG_DU_1-MATNR.
IT_MSEG_DU-MAKTX = IT_MSEG_DU_1-MAKTX.
IT_MSEG_DU-ERFMG = IT_MSEG_DU_1-ERFMG - IT_MSEG_DU_2-ERFMG.
IT_MSEG_DU-ERFME = IT_MSEG_DU_1-ERFME.
APPEND IT_MSEG_DU.
ELSE.
IT_MSEG_DU-BUDAT = IT_MSEG_DU_1-BUDAT.
IT_MSEG_DU-MBLNR = IT_MSEG_DU_1-MBLNR.
IT_MSEG_DU-MATNR = IT_MSEG_DU_1-MATNR.
IT_MSEG_DU-MAKTX = IT_MSEG_DU_1-MAKTX.
IT_MSEG_DU-ERFMG = IT_MSEG_DU_1-ERFMG.
IT_MSEG_DU-ERFME = IT_MSEG_DU_1-ERFME.
APPEND IT_MSEG_DU.

ENDIF.
ENDLOOP.

*---------END OF FOR DEDUCTING REVERSAL QTY





SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_AM_1
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P002' AND
MS~BWART = '601' AND
MS~KUNNR = '516' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.



*----FOR DEDUCTING REVERSAL
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_AM_2
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P002' AND
MS~BWART = '602' AND
MS~KUNNR = '516' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.

LOOP AT IT_MSEG_AM_1.
READ TABLE IT_MSEG_AM_2 WITH KEY BUDAT = IT_MSEG_AM_2-BUDAT
MATNR = IT_MSEG_AM_2-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_AM-BUDAT = IT_MSEG_AM_1-BUDAT.
IT_MSEG_AM-MBLNR = IT_MSEG_AM_1-MBLNR.
IT_MSEG_AM-MATNR = IT_MSEG_AM_1-MATNR.
IT_MSEG_AM-MAKTX = IT_MSEG_AM_1-MAKTX.
IT_MSEG_AM-ERFMG = IT_MSEG_AM_1-ERFMG - IT_MSEG_AM_2-ERFMG.
IT_MSEG_AM-ERFME = IT_MSEG_AM_1-ERFME.
APPEND IT_MSEG_AM.
ELSE.
IT_MSEG_AM-BUDAT = IT_MSEG_AM_1-BUDAT.
IT_MSEG_AM-MBLNR = IT_MSEG_AM_1-MBLNR.
IT_MSEG_AM-MATNR = IT_MSEG_AM_1-MATNR.
IT_MSEG_AM-MAKTX = IT_MSEG_AM_1-MAKTX.
IT_MSEG_AM-ERFMG = IT_MSEG_AM_1-ERFMG.
IT_MSEG_AM-ERFME = IT_MSEG_AM_1-ERFME.
APPEND IT_MSEG_AM.

ENDIF.
ENDLOOP.



*----END OF DEDUCTING REVERSAL

SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_OT_1
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P002' AND
MS~BWART = '601' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.

*----FOR DEDUCTING REVERSAL

SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_OT_2
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P002' AND
MS~BWART = '602' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.

LOOP AT IT_MSEG_OT_1.
READ TABLE IT_MSEG_OT_2 WITH KEY BUDAT = IT_MSEG_OT_2-BUDAT
MATNR = IT_MSEG_OT_2-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_OT-BUDAT = IT_MSEG_OT_1-BUDAT.
IT_MSEG_OT-MBLNR = IT_MSEG_OT_1-MBLNR.
IT_MSEG_OT-MATNR = IT_MSEG_OT_1-MATNR.
IT_MSEG_OT-MAKTX = IT_MSEG_OT_1-MAKTX.
IT_MSEG_OT-ERFMG = IT_MSEG_OT_1-ERFMG - IT_MSEG_OT_2-ERFMG.
IT_MSEG_OT-ERFME = IT_MSEG_OT_1-ERFME.
APPEND IT_MSEG_OT.
ELSE.
IT_MSEG_OT-BUDAT = IT_MSEG_OT_1-BUDAT.
IT_MSEG_OT-MBLNR = IT_MSEG_OT_1-MBLNR.
IT_MSEG_OT-MATNR = IT_MSEG_OT_1-MATNR.
IT_MSEG_OT-MAKTX = IT_MSEG_OT_1-MAKTX.
IT_MSEG_OT-ERFMG = IT_MSEG_OT_1-ERFMG.
IT_MSEG_OT-ERFME = IT_MSEG_OT_1-ERFME.
APPEND IT_MSEG_OT.

ENDIF.
ENDLOOP.



*----END OF DEDUCTING REVERSAL




SORT IT_MSEG_KA BY BUDAT.

LOOP AT IT_MSEG_KA INTO WA_MSEG_KA.
AT END OF MATNR.
SUM.
READ TABLE IT_MSEG_KA WITH KEY BUDAT = WA_MSEG_KA-BUDAT
MATNR = WA_MSEG_KA-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_KA1-MATNR = IT_MSEG_KA-MATNR.
IT_MSEG_KA1-MAKTX = IT_MSEG_KA-MAKTX.
IT_MSEG_KA1-BUDAT = IT_MSEG_KA-BUDAT.
IT_MSEG_KA1-ERFMG = WA_MSEG_KA-ERFMG.
IT_MSEG_KA1-ERFME = IT_MSEG_KA-ERFME.
ENDIF.
APPEND IT_MSEG_KA1.
CLEAR IT_MSEG_KA1.
ENDAT.
ENDLOOP.



SORT IT_MSEG_NV BY BUDAT MATNR.

LOOP AT IT_MSEG_NV INTO WA_MSEG_NV.
AT END OF MATNR.
SUM.
READ TABLE IT_MSEG_NV WITH KEY BUDAT = WA_MSEG_NV-BUDAT
MATNR = WA_MSEG_NV-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_NV1-MATNR = IT_MSEG_NV-MATNR.
IT_MSEG_NV1-MAKTX = IT_MSEG_NV-MAKTX.
IT_MSEG_NV1-BUDAT = IT_MSEG_NV-BUDAT.
IT_MSEG_NV1-ERFMG = WA_MSEG_NV-ERFMG.
IT_MSEG_NV1-ERFME = IT_MSEG_NV-ERFME.
ENDIF.
APPEND IT_MSEG_NV1.
CLEAR IT_MSEG_NV1.
ENDAT.
ENDLOOP.

SORT IT_MSEG_DU BY BUDAT.
LOOP AT IT_MSEG_DU INTO WA_MSEG_DU.
AT END OF MATNR.
SUM.
READ TABLE IT_MSEG_DU WITH KEY BUDAT = WA_MSEG_DU-BUDAT
MATNR = WA_MSEG_DU-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_DU1-MATNR = IT_MSEG_DU-MATNR.
IT_MSEG_DU1-MAKTX = IT_MSEG_DU-MAKTX.
IT_MSEG_DU1-BUDAT = IT_MSEG_DU-BUDAT.
IT_MSEG_DU1-ERFMG = WA_MSEG_DU-ERFMG.
IT_MSEG_DU1-ERFME = IT_MSEG_DU-ERFME.
ENDIF.
APPEND IT_MSEG_DU1.
CLEAR IT_MSEG_DU1.
ENDAT.
ENDLOOP.




SORT IT_MSEG_AM BY BUDAT.
LOOP AT IT_MSEG_AM INTO WA_MSEG_AM.
AT END OF MATNR.
SUM.
READ TABLE IT_MSEG_AM WITH KEY BUDAT = WA_MSEG_AM-BUDAT
MATNR = WA_MSEG_AM-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_AM1-MATNR = IT_MSEG_AM-MATNR.
IT_MSEG_AM1-MAKTX = IT_MSEG_AM-MAKTX.
IT_MSEG_AM1-BUDAT = IT_MSEG_AM-BUDAT.
IT_MSEG_AM1-ERFMG = WA_MSEG_AM-ERFMG.
IT_MSEG_AM1-ERFME = IT_MSEG_AM-ERFME.
ENDIF.
APPEND IT_MSEG_AM1.
CLEAR IT_MSEG_AM1.
ENDAT.
ENDLOOP.


SORT IT_MSEG_OT BY BUDAT.
LOOP AT IT_MSEG_OT INTO WA_MSEG_OT.
AT END OF MATNR.
SUM.
READ TABLE IT_MSEG_OT WITH KEY BUDAT = WA_MSEG_OT-BUDAT
MATNR = WA_MSEG_OT-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_OT1-MATNR = IT_MSEG_OT-MATNR.
IT_MSEG_OT1-MAKTX = IT_MSEG_OT-MAKTX.
IT_MSEG_OT1-BUDAT = IT_MSEG_OT-BUDAT.
IT_MSEG_OT1-ERFMG = WA_MSEG_OT-ERFMG.
IT_MSEG_OT1-ERFME = IT_MSEG_OT-ERFME.
ENDIF.
APPEND IT_MSEG_OT1.
CLEAR IT_MSEG_OT1.
ENDAT.
ENDLOOP.


* IF SO_BUDAT-HIGH IS INITIAL.
* SO_BUDAT-HIGH = SO_BUDAT-LOW.
* ENDIF.
*
* CALL FUNCTION 'HR_SEN_CALE_DAYS_DURATION'
* EXPORTING
* ID_BEGDA = SO_BUDAT-LOW
* ID_ENDDA = SO_BUDAT-HIGH
* IMPORTING
* ES_DURATION = LW_PSEN_DUR
* EXCEPTIONS
* CONVERSION_NOT_SPECIFIED = 1
* CONVERSION_NOT_POSSIBLE = 2
* OTHERS = 3
* .
* IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
* ENDIF.
*
* LW_DUR = LW_PSEN_DUR-CALDD.
*
* DO LW_DUR TIMES.
*
* LW_CNT = LW_CNT + 1.
*
* LW_CNT1-CALDD = LW_CNT.
*
* CALL FUNCTION 'HR_SEN_CALE_DAYS_DATE'
* EXPORTING
* ID_DATE = SO_BUDAT-LOW
* ID_OPERATOR = '+'
* IS_DURATION = LW_CNT1
* IMPORTING
* ED_DATE = LW_DATE
* EXCEPTIONS
* CONVERSION_NOT_SPECIFIED = 1
* CONVERSION_NOT_POSSIBLE = 2
* OTHERS = 3
* .
* IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
* ENDIF.

IF IT_MAIN[] IS NOT INITIAL.
LOOP AT IT_MAIN.
MOVE IT_MAIN-BUDAT TO IT_DATA-BUDAT.
MOVE IT_MAIN-MATNR TO IT_DATA-MATNR.
MOVE IT_MAIN-MAKTX TO IT_DATA-MAKTX.
MOVE IT_MAIN-ERFMG TO IT_DATA-ERFMG.
MOVE IT_MAIN-ERFME TO IT_DATA-ERFME.
APPEND IT_DATA.
ENDLOOP.
ENDIF.

CLEAR IT_DATA.


IF IT_MSEG_KA1[] IS NOT INITIAL.
LOOP AT IT_MSEG_KA1 INTO WA_MSEG_KA.
READ TABLE IT_MAIN WITH KEY BUDAT = WA_MSEG_KA-BUDAT
MATNR = WA_MSEG_KA-MATNR.
IF SY-SUBRC = 0.
MOVE WA_MSEG_KA-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_KA-MATNR TO IT_DATA-MATNR_K.
MOVE WA_MSEG_KA-MAKTX TO IT_DATA-MAKTX_K.
MOVE WA_MSEG_KA-ERFMG TO IT_DATA-ERFMG_K.
MOVE WA_MSEG_KA-ERFME TO IT_DATA-ERFME_K.
MODIFY IT_DATA TRANSPORTING BUDAT MATNR_K MAKTX_K ERFMG_K ERFME_K
WHERE BUDAT = WA_MSEG_KA-BUDAT AND
MATNR = WA_MSEG_KA-MATNR.
CLEAR WA_MSEG_KA.
ELSE.
MOVE WA_MSEG_KA-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_KA-MATNR TO IT_DATA-MATNR_K.
MOVE WA_MSEG_KA-MAKTX TO IT_DATA-MAKTX_K.
MOVE WA_MSEG_KA-ERFMG TO IT_DATA-ERFMG_K.
MOVE WA_MSEG_KA-ERFME TO IT_DATA-ERFME_K.
APPEND IT_DATA.
ENDIF.
ENDLOOP.
ENDIF.

CLEAR IT_DATA.


IF IT_MSEG_NV1[] IS NOT INITIAL.
LOOP AT IT_MSEG_NV1 INTO WA_MSEG_NV.
READ TABLE IT_MAIN WITH KEY BUDAT = WA_MSEG_NV-BUDAT
MATNR = WA_MSEG_NV-MATNR.
IF SY-SUBRC = 0.
MOVE WA_MSEG_NV-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_NV-MATNR TO IT_DATA-MATNR_N.
MOVE WA_MSEG_NV-MAKTX TO IT_DATA-MAKTX_N.
MOVE WA_MSEG_NV-ERFMG TO IT_DATA-ERFMG_N.
MOVE WA_MSEG_NV-ERFME TO IT_DATA-ERFME_N.
* APPEND IT_DATA.
MODIFY IT_DATA TRANSPORTING BUDAT MATNR_N MAKTX_N ERFMG_N ERFME_N
WHERE BUDAT = WA_MSEG_NV-BUDAT AND
MATNR = WA_MSEG_NV-MATNR.
CLEAR WA_MSEG_NV.

ELSE.
MOVE WA_MSEG_NV-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_NV-MATNR TO IT_DATA-MATNR_N.
MOVE WA_MSEG_NV-MAKTX TO IT_DATA-MAKTX_N.
MOVE WA_MSEG_NV-ERFMG TO IT_DATA-ERFMG_N.
MOVE WA_MSEG_NV-ERFME TO IT_DATA-ERFME_N.
APPEND IT_DATA.
ENDIF.
ENDLOOP.
ENDIF.

CLEAR IT_DATA.


IF IT_MSEG_DU1[] IS NOT INITIAL.
LOOP AT IT_MSEG_DU1 INTO WA_MSEG_DU .
READ TABLE IT_MAIN WITH KEY BUDAT = WA_MSEG_DU-BUDAT
MATNR = WA_MSEG_DU-MATNR.
IF SY-SUBRC = 0.
MOVE WA_MSEG_DU-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_DU-MATNR TO IT_DATA-MATNR_D.
MOVE WA_MSEG_DU-MAKTX TO IT_DATA-MAKTX_D.
MOVE WA_MSEG_DU-ERFMG TO IT_DATA-ERFMG_D.
MOVE WA_MSEG_DU-ERFME TO IT_DATA-ERFME_D.
* APPEND IT_DATA.
MODIFY IT_DATA TRANSPORTING BUDAT MATNR_D MAKTX_D ERFMG_D ERFME_D
WHERE BUDAT = WA_MSEG_DU-BUDAT AND
MATNR = WA_MSEG_DU-MATNR.
CLEAR WA_MSEG_DU.
ELSE.
MOVE WA_MSEG_DU-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_DU-MATNR TO IT_DATA-MATNR_D.
MOVE WA_MSEG_DU-MAKTX TO IT_DATA-MAKTX_D.
MOVE WA_MSEG_DU-ERFMG TO IT_DATA-ERFMG_D.
MOVE WA_MSEG_DU-ERFME TO IT_DATA-ERFME_D.
APPEND IT_DATA.
ENDIF.
ENDLOOP.
ENDIF.

CLEAR IT_DATA.


IF IT_MSEG_AM1[] IS NOT INITIAL.
LOOP AT IT_MSEG_AM1 INTO WA_MSEG_AM.
READ TABLE IT_MAIN WITH KEY BUDAT = WA_MSEG_AM-BUDAT
MATNR = WA_MSEG_AM-MATNR.
IF SY-SUBRC = 0.

MOVE WA_MSEG_AM-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_AM-MATNR TO IT_DATA-MATNR_A.
MOVE WA_MSEG_AM-MAKTX TO IT_DATA-MAKTX_A.
MOVE WA_MSEG_AM-ERFMG TO IT_DATA-ERFMG_A.
MOVE WA_MSEG_AM-ERFME TO IT_DATA-ERFME_A.
* APPEND IT_DATA.
MODIFY IT_DATA TRANSPORTING BUDAT MATNR_A MAKTX_A ERFMG_A ERFME_A
WHERE BUDAT = WA_MSEG_AM-BUDAT AND
MATNR = WA_MSEG_AM-MATNR.
CLEAR WA_MSEG_AM.
ELSE.
MOVE WA_MSEG_AM-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_AM-MATNR TO IT_DATA-MATNR_A.
MOVE WA_MSEG_AM-MAKTX TO IT_DATA-MAKTX_A.
MOVE WA_MSEG_AM-ERFMG TO IT_DATA-ERFMG_A.
MOVE WA_MSEG_AM-ERFME TO IT_DATA-ERFME_A.
APPEND IT_DATA.
ENDIF.
ENDLOOP.
ENDIF.

CLEAR IT_DATA.


IF IT_MSEG_OT1[] IS NOT INITIAL.
LOOP AT IT_MSEG_OT1 INTO WA_MSEG_OT.
READ TABLE IT_MAIN WITH KEY BUDAT = WA_MSEG_OT-BUDAT
MATNR = WA_MSEG_OT-MATNR.
IF SY-SUBRC = 0.

MOVE WA_MSEG_OT-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_OT-MATNR TO IT_DATA-MATNR_O.
MOVE WA_MSEG_OT-MAKTX TO IT_DATA-MAKTX_O.
MOVE WA_MSEG_OT-ERFMG TO IT_DATA-ERFMG_O.
MOVE WA_MSEG_OT-ERFME TO IT_DATA-ERFME_O.
* APPEND IT_DATA.
MODIFY IT_DATA TRANSPORTING BUDAT MATNR_O MAKTX_O ERFMG_O ERFME_O
WHERE BUDAT = WA_MSEG_OT-BUDAT AND
MATNR = WA_MSEG_OT-MATNR.
CLEAR WA_MSEG_OT.
ELSE.
MOVE WA_MSEG_OT-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_OT-MATNR TO IT_DATA-MATNR_O.
MOVE WA_MSEG_OT-MAKTX TO IT_DATA-MAKTX_O.
MOVE WA_MSEG_OT-ERFMG TO IT_DATA-ERFMG_O.
MOVE WA_MSEG_OT-ERFME TO IT_DATA-ERFME_O.
APPEND IT_DATA.
ENDIF.
ENDLOOP.
ENDIF.

SORT IT_DATA BY BUDAT.


* ENDDO.

PERFORM F008_LEADING_ZEROS.

ENDFORM. " F002_GET_DATA
*&---------------------------------------------------------------------*
*& 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 = 'BUDAT'.
LW_FIELDCAT-SELTEXT_M = 'POSTING DATE'.
LW_FIELDCAT-OUTPUTLEN = 8.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL CODE'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL DESCRIPTION'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG'.
LW_FIELDCAT-SELTEXT_M = 'PROD QTY'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME'.
LW_FIELDCAT-SELTEXT_M = 'UOE'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_K'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL CODE'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_K'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL DESCRIPTION'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG_K'.
LW_FIELDCAT-SELTEXT_M = 'DISPATCH TO KUTCH'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME_K'.
LW_FIELDCAT-SELTEXT_M = 'UOE'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_N'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL CODE'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_N'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL DESCRIPTION'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG_N'.
LW_FIELDCAT-SELTEXT_M = 'DISPATCH TO NAVSARI'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME_N'.
LW_FIELDCAT-SELTEXT_M = 'UOE'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_D'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL CODE'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_D'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL DESCRIPTION'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG_D'.
LW_FIELDCAT-SELTEXT_M = 'DISPATCH TO DUBAI'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME_D'.
LW_FIELDCAT-SELTEXT_M = 'UOE'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_A'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL CODE'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_A'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL DESCRIPTION'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG_A'.
LW_FIELDCAT-SELTEXT_M = 'DISPATCH TO AMERICA'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME_A'.
LW_FIELDCAT-SELTEXT_M = 'UOE'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_O'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL CODE'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_O'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL DESCRIPTION'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG_O'.
LW_FIELDCAT-SELTEXT_M = 'DISPATCH TO OTHERS'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME_O'.
LW_FIELDCAT-SELTEXT_M = 'UOE'.
LW_FIELDCAT-OUTPUTLEN = 5.
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 = '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_DATA
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_ALV_SORT
*&---------------------------------------------------------------------*

FORM F007_ALV_SORT .

W_GT_SORT-SPOS = 1.
W_GT_SORT-FIELDNAME = 'BUDAT'.
W_GT_SORT-UP = 'X'.
APPEND W_GT_SORT.

ENDFORM. " F007_ALV_SORT

*&---------------------------------------------------------------------*
*& Form F008_LEADING_ZEROS
*&---------------------------------------------------------------------*

FORM F008_LEADING_ZEROS .

LOOP AT IT_DATA INTO WA_DATA.

SHIFT WA_DATA-MATNR LEFT DELETING LEADING '0'.
SHIFT WA_DATA-MATNR_K LEFT DELETING LEADING '0'.
SHIFT WA_DATA-MATNR_N LEFT DELETING LEADING '0'.
SHIFT WA_DATA-MATNR_D LEFT DELETING LEADING '0'.
SHIFT WA_DATA-MATNR_A LEFT DELETING LEADING '0'.
SHIFT WA_DATA-MATNR_O LEFT DELETING LEADING '0'.
MODIFY IT_DATA FROM WA_DATA TRANSPORTING MATNR MATNR_K MATNR_N MATNR_D
MATNR_A MATNR_O.

ENDLOOP.

ENDFORM. " F008_LEADING_ZEROS

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)