*&---------------------------------------------------------------------*
*& Report ZR_ALV_INETR_PO
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZR_ALV_INETR_PO_3LIST.
TABLES: EKKO, EKPO,LFA1.
TYPE-POOLS: SLIS.
TYPES: BEGIN OF ST_EKKO,
EBELN TYPE EKKO-EBELN,
BUKRS TYPE EKKO-BUKRS,
BSTYP TYPE EKKO-BSTYP,
BSART TYPE EKKO-BSART,
LIFNR TYPE EKKO-LIFNR,
ERNAM TYPE EKKO-ERNAM,
AEDAT TYPE EKKO-BEDAT,
END OF ST_EKKO.
TYPES: BEGIN OF ST_EKPO,
EBELN TYPE EKPO-EBELN,
EBELP TYPE EKPO-EBELP,
MATNR TYPE EKPO-MATNR,
MENGE TYPE EKPO-MENGE,
NETPR TYPE EKPO-NETPR,
END OF ST_EKPO.
DATA: IT_EKKO TYPE TABLE OF ST_EKKO,
IT_EKPO TYPE TABLE OF ST_EKPO,
WA_EKKO TYPE ST_EKKO,
WA_EKPO TYPE ST_EKPO.
DATA: IT_FC1 TYPE SLIS_T_FIELDCAT_ALV,
IT_FC2 TYPE SLIS_T_FIELDCAT_ALV,
WA_FC1 TYPE SLIS_FIELDCAT_ALV,
WA_FC2 TYPE SLIS_FIELDCAT_ALV.
DATA: IT_LH1 TYPE SLIS_T_LISTHEADER,
IT_LH2 TYPE SLIS_T_LISTHEADER,
WA_LH1 TYPE SLIS_LISTHEADER,
WA_LH2 TYPE SLIS_LISTHEADER,
LINE TYPE I,
LINE1(10) TYPE C,
T_LINE LIKE WA_LH1-INFO.
SELECT-OPTIONS: S_EBELN FOR EKPO-EBELN.
PERFORM GETDATA1.
PERFORM FIELDCAT1.
PERFORM DISPLAY1.
FORM GETDATA1.
SELECT EBELN EBELP MATNR MENGE NETPR FROM EKPO INTO TABLE IT_EKPO WHERE EBELN IN S_EBELN.
ENDFORM.
FORM FIELDCAT1.
CLEAR: WA_FC1.
WA_FC1-TABNAME = 'IT_EKPO'.
WA_FC1-FIELDNAME = 'EBELN'.
WA_FC1-SELTEXT_S = 'PO DOC NO'.
WA_FC1-COL_POS = 1.
APPEND WA_FC1 TO IT_FC1.
CLEAR: WA_FC1.
WA_FC1-TABNAME = 'IT_EKPO'.
WA_FC1-FIELDNAME = 'EBELP'.
WA_FC1-SELTEXT_S = 'PO DOC ITEM'.
WA_FC1-COL_POS = 2.
APPEND WA_FC1 TO IT_FC1.
CLEAR: WA_FC1.
WA_FC1-TABNAME = 'IT_EKPO'.
WA_FC1-FIELDNAME = 'MATNR'.
WA_FC1-SELTEXT_S = 'MATERIAL NO'.
WA_FC1-COL_POS = 3.
APPEND WA_FC1 TO IT_FC1.
CLEAR: WA_FC1.
WA_FC1-TABNAME = 'IT_EKPO'.
WA_FC1-FIELDNAME = 'MENGE'.
WA_FC1-SELTEXT_S = 'QUANTITY'.
WA_FC1-COL_POS = 4.
APPEND WA_FC1 TO IT_FC1.
CLEAR: WA_FC1.
WA_FC1-TABNAME = 'IT_EKPO'.
WA_FC1-FIELDNAME = 'NETPR'.
WA_FC1-SELTEXT_S = 'NET PRICE'.
WA_FC1-COL_POS = 5.
APPEND WA_FC1 TO IT_FC1.
ENDFORM.
FORM TOP_OF_PAGE1.
CLEAR WA_LH1.
WA_LH1-TYP = 'H'.
WA_LH1-INFO = 'PURCHASE ORDER ITEM DATA'.
APPEND WA_LH1 TO IT_LH1.
CLEAR WA_LH1.
WA_LH1-TYP = 'S'.
WA_LH1-KEY = 'DATE:'.
CONCATENATE SY-DATUM+6(2) SY-DATUM+4(2) SY-DATUM(4) INTO WA_LH1-INFO SEPARATED BY '/'.
APPEND WA_LH1 TO IT_LH1.
CLEAR WA_LH1.
DESCRIBE TABLE IT_EKPO LINES LINE.
LINE1 = LINE.
CONCATENATE 'TOTAL NO OF RECORD SELECTED' LINE1 INTO T_LINE SEPARATED BY SPACE.
WA_LH1-TYP = 'A'.
WA_LH1-INFO = T_LINE.
APPEND WA_LH1 TO IT_LH1.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LH1.
REFRESH IT_LH1.
CLEAR: WA_LH1.
ENDFORM.
FORM DISPLAY1.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE1'
I_BACKGROUND_ID = 'ALV_BACKGROUND'
IT_FIELDCAT = IT_FC1
TABLES
T_OUTTAB = IT_EKPO .
ENDFORM.
form USER_COMMAND USING R_UCOMM LIKE SY-UCOMM RS_SELF TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
READ TABLE IT_EKPO INTO WA_EKPO INDEX RS_SELF-TABINDEX.
PERFORM FIELDCAT2.
PERFORM GETDATA2.
PERFORM DISPLAY2.
ENDCASE.
ENDFORM.
FORM GETDATA2.
SELECT EBELN BUKRS BSTYP BSART ERNAM AEDAT FROM EKKO INTO CORRESPONDING FIELDS OF TABLE IT_EKKO WHERE EBELN = WA_EKPO-EBELN.
ENDFORM.
FORM FIELDCAT2.
CLEAR: WA_FC2.
WA_FC2-TABNAME = 'IT_EKKO'.
WA_FC2-FIELDNAME = 'EBELN'.
WA_FC2-SELTEXT_S = 'PO DOC NO'.
WA_FC2-COL_POS = 1.
APPEND WA_FC2 TO IT_FC2.
CLEAR: WA_FC2.
WA_FC2-TABNAME = 'IT_EKKO'.
WA_FC2-FIELDNAME = 'BUKRS'.
WA_FC2-SELTEXT_S = 'COMPANY CODE'.
WA_FC2-COL_POS = 2.
APPEND WA_FC2 TO IT_FC2.
CLEAR: WA_FC2.
WA_FC2-TABNAME = 'IT_EKKO'.
WA_FC2-FIELDNAME = 'BUTYP'.
WA_FC2-SELTEXT_S = 'PO DOC CAT'.
WA_FC2-COL_POS = 3.
APPEND WA_FC2 TO IT_FC2.
CLEAR: WA_FC2.
WA_FC2-TABNAME = 'IT_EKKO'.
WA_FC2-FIELDNAME = 'BSART'.
WA_FC2-SELTEXT_S = 'PO DOC TYPE'.
WA_FC2-COL_POS = 4.
APPEND WA_FC2 TO IT_FC2.
CLEAR: WA_FC2.
ENDFORM.
FORM DISPLAY2.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_USER_COMMAND = 'USER_COMMAND2'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE2'
IT_FIELDCAT = IT_FC2
TABLES
T_OUTTAB = IT_EKKO.
CLEAR: WA_FC2.
REFRESH IT_FC2.
ENDFORM.
FORM TOP_OF_PAGE2.
CLEAR WA_LH1.
WA_LH1-TYP = 'H'.
WA_LH1-INFO = 'PURCHASE ORDER HEADER DATA'.
APPEND WA_LH1 TO IT_LH1.
CLEAR WA_LH1.
WA_LH1-TYP = 'S'.
WA_LH1-KEY = 'DATE:'.
CONCATENATE SY-DATUM+6(2) SY-DATUM+4(2) SY-DATUM(4) INTO WA_LH1-INFO SEPARATED BY '/'.
APPEND WA_LH1 TO IT_LH1.
CLEAR: WA_LH1,LINE,LINE1,T_LINE.
DESCRIBE TABLE IT_EKKO LINES LINE.
LINE1 = LINE.
CONCATENATE 'TOTAL NO OF RECORD SELECTED' LINE1 INTO T_LINE SEPARATED BY SPACE.
WA_LH1-TYP = 'A'.
WA_LH1-INFO = T_LINE.
APPEND WA_LH1 TO IT_LH1.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LH1.
REFRESH IT_LH1.
CLEAR: WA_LH1.
ENDFORM.
FORM USER_COMMAND2 USING R_UCOMM2 LIKE SY-UCOMM RS_SELF2 TYPE SLIS_SELFIELD.
READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELF2-TABINDEX.
PERFORM FIELDCAT3.
PERFORM DISPLAY3.
ENDFORM.
FORM FIELDCAT3.
CLEAR: WA_FC2,IT_FC2.
WA_FC2-TABNAME = 'IT_EKKO'.
WA_FC2-FIELDNAME = 'ERNAM'.
WA_FC2-SELTEXT_S = 'ENTER BY NAME'.
WA_FC2-COL_POS = 1.
APPEND WA_FC2 TO IT_FC2.
CLEAR: WA_FC2.
WA_FC2-TABNAME = 'IT_EKKO'.
WA_FC2-FIELDNAME = 'AEDAT'.
WA_FC2-SELTEXT_S = 'CREATED DATE'.
WA_FC2-COL_POS = 2.
APPEND WA_FC2 TO IT_FC2.
ENDFORM.
FORM DISPLAY3.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_GRID_TITLE = 'VENDER DETAILS'
IT_FIELDCAT = IT_FC2
TABLES
T_OUTTAB = IT_EKKO
.
CLEAR: WA_FC2.
REFRESH IT_FC2.
ENDFORM.
RESULT:
Basic list
Secondary list 1
Secondary list 2
No comments:
Post a Comment