TYPE-POOLS SLIS.
TABLES:EKKO,"PURCHASE DOCUMENT HEADER
EKPO,"PURCHASE DOCUMENT ITEM
EKBE."PURCHASE DOCUMENT HISTORY
**************************************END OF TABLES DECLARATION*****************************************************
*******************************************TYPES DECLARATION*****************************************************
"TYPES DECLARATION FOR THE PURCHASE DOCUMENT HEADER
TYPES: BEGIN OF TY_EKKO,
EBELN TYPE EBELN,"PURCHASE ORDER NO
AEDAT TYPE ERDAT,"PURCHASE ORDER DATE
END OF TY_EKKO.
"TYPES DECLARATION OF THE PURCHASE DOCUMENT HISTORY
TYPES: BEGIN OF TY_EKBE,
EBELN TYPE EBELN,"PURCHASE ORDER NO
EBELP TYPE EBELP,
WESBS TYPE WESBS,"GOODS RECEIPT
BWART TYPE BWART,"MOVEMENT TYPE
BELNR TYPE MBLNR,"MATERIAL DOC NUMBER
BUDAT TYPE BUDAT,"POSTING DATE
MENGE TYPE MENGE_D,"QUANTITY
LSMNG TYPE LSMNG,"BASIC UNIT OF MEASURE
END OF TY_EKBE.
"TYPES DECLARATION OF THE PURCHASE DOCUMENT ITEM
TYPES: BEGIN OF TY_EKPO,
EBELN TYPE EBELN, " Purchasing Document Number
EBELP TYPE EBELP, " Item Number of Purchasing Document
MENGE TYPE BSTMG, " Purchase Order Quantity
END OF TY_EKPO.
TYPES :BEGIN OF TY_BASIC,
EBELN TYPE EBELN,
EBELP TYPE EBELP,
BWART TYPE BWART,
MENGE TYPE MENGE_D,
LSMNG TYPE LSMNG,
END OF TY_BASIC.
TYPES: BEGIN OF TY_DRIL,
EBELN TYPE EBELN,"PURCHASE ORDER NO
EBELP TYPE EBELP,
BWART TYPE BWART,"MOVEMENT TYPE
BELNR TYPE MBLNR,"MATERIAL DOC NUMBER
BUDAT TYPE BUDAT,"POSTING DATE
MENGE TYPE MENGE_D,"QUANTITY
LSMNG TYPE LSMNG,"BASIC UNIT OF MEASURE
END OF TY_DRIL.
****************************************end of types declaration***********************************************
*******************************************STRUCUTURE DECLARATION*************************************************
DATA:IS_EKPO TYPE TY_EKPO."STRUCURE DECLARATION FOR PURCHASE ORDER HEADER
DATA:IS_EKKO TYPE TY_EKKO."STRUCURE DECLARATION FOR PURCHASE ORDER ITEM
DATA:IS_EKBE TYPE TY_EKBE,"STRUCURE DECLARATION FOR PURCHASE ORDER HISTORY
IS_BASIC TYPE TY_BASIC,
IS_DRIL TYPE TY_DRIL.
****************************************END OF STRUCUTRE DECLARATION***********************************************
***************************************INTERNAL TABLE DECLARATION***************************************************
DATA: IT_EKPO TYPE STANDARD TABLE OF TY_EKPO.
DATA: IT_EKKO TYPE STANDARD TABLE OF TY_EKKO.
DATA: IT_EKBE TYPE STANDARD TABLE OF TY_EKBE,
IT_BASIC TYPE STANDARD TABLE OF TY_BASIC,
IT_DRIL TYPE STANDARD TABLE OF TY_DRIL.
*************************************END OF INTERNAL TABLE DECLARATION*******************************************
DATA :T_FCAT TYPE SLIS_T_FIELDCAT_ALV,
W_FCAT TYPE SLIS_FIELDCAT_ALV.
*************************************SELECTION SCREEN DECLARATION**********************************************
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_EBELN FOR EKKO-EBELN,
S_BEDAT FOR EKKO-BEDAT .
SELECTION-SCREEN: END OF BLOCK B1.
PERFORM F_FETCH_DATA.
PERFORM FIELD_CAT.
PERFORM DISPLAY.
*PERFORM f_DISPLAY_DATA.
*&---------------------------------------------------------------------*
*& Form F_FETCH_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM F_FETCH_DATA .
SELECT EBELN FROM EKKO INTO TABLE IT_EKKO
WHERE EBELN IN S_EBELN AND
BEDAT IN S_BEDAT.
IF IT_EKKO[] IS NOT INITIAL.
SELECT EBELN EBELP FROM EKPO INTO CORRESPONDING FIELDS OF TABLE
IT_BASIC
FOR ALL ENTRIES IN IT_EKKO WHERE EBELN = IT_EKKO-EBELN.
ENDIF.
LOOP AT IT_BASIC INTO IS_BASIC.
SELECT SINGLE BWART MENGE LSMNG FROM EKBE INTO (IS_BASIC-BWART,IS_BASIC-MENGE,IS_BASIC-LSMNG)
WHERE EBELN = IS_BASIC-EBELN AND
EBELP = IS_BASIC-EBELP.
MODIFY IT_BASIC INDEX SY-TABIX FROM IS_BASIC
TRANSPORTING BWART MENGE.
*SELECT SINGLE BWART BELNR BUDAT MENGE LSMNG FROM EKBE INTO
* (IS_DRIL-BWART,IS_DRIL-MENGE,IS_DRIL-BUDAT,IS_DRIL-MENGE,IS_DRIL-LSMNG)
* WHERE EBELN = IS_BASIC-EBELN AND
* EBELP = IS_BASIC-EBELP.
*MODIFY IT_DRIL INDEX SY-TABIX FROM IS_DRIL
* TRANSPORTING BWART MENGE BUDAT MENGE LSMNG.
ENDLOOP.
ENDFORM. " F_FETCH_DATA
FORM FIELD_CAT.
W_FCAT-FIELDNAME = 'EBELN'.
W_FCAT-TABNAME = 'T_FCAT'.
W_FCAT-COL_POS = 1.
W_FCAT-SELTEXT_M = 'Purchasing Number'.
W_FCAT-EMPHASIZE = 'C510'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-FIELDNAME = 'EBELP'.
W_FCAT-TABNAME = 'T_FCAT'.
W_FCAT-COL_POS = 2.
W_FCAT-SELTEXT_M = 'Item Number'.
W_FCAT-EMPHASIZE = 'C610'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-FIELDNAME = 'BWART'.
W_FCAT-TABNAME = 'T_FCAT'.
W_FCAT-COL_POS = 3.
W_FCAT-SELTEXT_M = 'Movement Type'.
W_FCAT-EMPHASIZE = 'C401'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-FIELDNAME = 'MENGE'.
W_FCAT-TABNAME = 'T_FCAT'.
W_FCAT-COL_POS = 4.
W_FCAT-SELTEXT_M = 'Quantity'.
W_FCAT-EMPHASIZE = 'C401'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-FIELDNAME = 'LSMNG'.
W_FCAT-TABNAME = 'T_FCAT'.
W_FCAT-COL_POS = 5.
W_FCAT-SELTEXT_M = 'Unit'.
W_FCAT-EMPHASIZE = 'C401'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
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 =
IT_FIELDCAT = T_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* 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_BASIC.
* 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.