Anda di halaman 1dari 6

REPORT YCC_MATERIAL_AGEING.

TABLES : MARA,MAKT,MKPF,MSEG.
TYPE-POOLS SLIS.
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : S_MATNR FOR MARA-MATNR,
S_WERKS FOR MSEG-WERKS,
S_BUDAT FOR MKPF-BUDAT.
SELECTION-SCREEN : END OF BLOCK B1.
TYPES : BEGIN OF TY_MAKT,
MATNR TYPE MATNR,
MAKTX TYPE MAKTX,
END OF TY_MAKT.
TYPES : BEGIN OF TY_MSEG,
MATNR TYPE MATNR,
BUDAT TYPE BUDAT,
MENGE TYPE MENGE_D,
BWART TYPE BWART,
* MBLNR TYPE MBLNR,

END OF TY_MSEG.

TYPES : BEGIN OF TY_FINAL,


MATNR TYPE MATNR,
MAKTX TYPE MAKTX,
LASTDAY TYPE BUDAT,
A30 TYPE MENGE_D,
A60 TYPE MENGE_D,
A90 TYPE MENGE_D,
A120 TYPE MENGE_D,
A150 TYPE MENGE_D,
A180 TYPE MENGE_D,
AG180 TYPE MENGE_D,
END OF TY_FINAL.
DATA : WA_MSEG TYPE TY_MSEG,
WA_MAKT TYPE TY_MAKT,
WA_FINAL TYPE TY_FINAL,
IT_MSEG TYPE TABLE OF TY_MSEG,
IT_MAKT TYPE TABLE OF TY_MAKT,
IT_FINAL TYPE TABLE OF TY_FINAL.
DATA : WA_FCAT TYPE SLIS_FIELDCAT_ALV,
WA_LAYOUT TYPE SLIS_LAYOUT_ALV,
IT_FCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA : DAYS TYPE SY-DATUM.
PERFORM MSEG.
PERFORM MAKT.
PERFORM COMBINE.
PERFORM FILLCAT.
PERFORM LAYOUT.
PERFORM DISPLAY.

*&---------------------------------------------------------------------*
*& Form MSEG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM MSEG.
SELECT MSEG~MATNR MKPF~BUDAT MSEG~MENGE MSEG~BWART
INTO TABLE IT_MSEG
FROM MSEG INNER JOIN MKPF
ON MSEG~MBLNR = MKPF~MBLNR
WHERE MSEG~MATNR IN S_MATNR
AND MSEG~WERKS IN S_WERKS
AND MKPF~BUDAT IN S_BUDAT
AND BWART EQ '101'.
ENDFORM. "MSEG

*&---------------------------------------------------------------------*
*& Form MAKT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM MAKT.
IF IT_MSEG IS NOT INITIAL.
SELECT MATNR MAKTX FROM MAKT INTO TABLE IT_MAKT
FOR ALL ENTRIES IN IT_MSEG
WHERE MATNR = IT_MSEG-MATNR
AND SPRAS EQ 'EN'.
ENDIF.
ENDFORM. "MAKT

*&---------------------------------------------------------------------*
*& Form COMBINE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM COMBINE.
SORT IT_MSEG BY MATNR .
DELETE ADJACENT DUPLICATES FROM IT_MSEG COMPARING MATNR .
LOOP AT IT_MSEG INTO WA_MSEG.
WA_FINAL-MATNR = WA_MSEG-MATNR.
* WA_FINAL-MATNR = WA_MSEG-MATNR.
* WA_FINAL-MATNR = WA_MSEG-MATNR.
* WA_FINAL-MATNR = WA_MSEG-MATNR.

DAYS = SY-DATUM - WA_MSEG-BUDAT.

IF DAYS BETWEEN 0 AND 30.


WA_FINAL-A30 = WA_FINAL-A30 + WA_MSEG-MENGE.

ELSEIF DAYS BETWEEN 31 AND 60.


WA_FINAL-A60 = WA_FINAL-A60 + WA_MSEG-MENGE.

ELSEIF DAYS BETWEEN 61 AND 90.


WA_FINAL-A90 = WA_FINAL-A90 + WA_MSEG-MENGE.

ELSEIF DAYS BETWEEN 91 AND 120.


WA_FINAL-A120 = WA_FINAL-A120 + WA_MSEG-MENGE.

ELSEIF DAYS BETWEEN 121 AND 150.


WA_FINAL-A150 = WA_FINAL-A150 + WA_MSEG-MENGE.

ELSEIF DAYS BETWEEN 151 AND 180.


WA_FINAL-A180 = WA_FINAL-A180 + WA_MSEG-MENGE.

ELSEIF DAYS > 180.


WA_FINAL-AG180 = WA_FINAL-AG180 + WA_MSEG-MENGE.
ENDIF.
READ TABLE IT_MAKT INTO WA_MAKT WITH KEY MATNR = WA_MSEG-MATNR.
WA_FINAL-MAKTX = WA_MAKT-MAKTX.
APPEND WA_FINAL TO IT_FINAL.
CLEAR WA_FINAL.

ENDLOOP.
ENDFORM. "COMBINE

*&---------------------------------------------------------------------*
*& Form FILLCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FILLCAT.
WA_FCAT-FIELDNAME = 'MATNR'.
WA_FCAT-SELTEXT_M = 'Material No.'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'MAKTX'.
WA_FCAT-SELTEXT_M = 'Material Desc.'.
APPEND WA_FCAT TO IT_FCAT.
* WA_FCAT-FIELDNAME = 'DAYS'.
* WA_FCAT-SELTEXT_M = 'LAST DAY'.
*
* APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'A30'.
WA_FCAT-SELTEXT_M = '0-30'.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'A60'.
WA_FCAT-SELTEXT_M = '31-60'.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'A90'.
WA_FCAT-SELTEXT_M = '61-90'.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'A120'.
WA_FCAT-SELTEXT_M = '91-120'.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'A150'.
WA_FCAT-SELTEXT_M = '121-150'.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'A180'.
WA_FCAT-SELTEXT_M = '151-180'.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'AG180'.
WA_FCAT-SELTEXT_M = '180+'.
APPEND WA_FCAT TO IT_FCAT.
ENDFORM.

FORM LAYOUT.
WA_LAYOUT-ZEBRA = 'X'.
WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM.

FORM DISPLAY.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-CPROG
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
I_SAVE = 'X'
* 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
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_FINAL.
* 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.

Anda mungkin juga menyukai