hi haritha,
I have worked on your source code and changed some of the code.
You can cross check with your code with the bold
Hope it helps you.
*&---------------------------------------------------------------------*
*& Report ZR_ALV_USER_COMMAND
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZR_ALV_USER_COMMAND.
*type-pools
TYPE-POOLS : SLIS.
* tables
TABLES : LIKP, "SD Document: Delivery Header Data
LIPS, "SD document: Delivery: Item data
TTXID. "Valid text IDs
* types
TYPES : BEGIN OF TY_LIKP,
VBELN LIKE LIKP-VBELN, "Delivery
LFDAT LIKE LIKP-LFDAT, "Delivery date
VERUR LIKE LIKP-VERUR, "Identification
BOLNR LIKE LIKP-BOLNR, "Bill of lading
LIFNR LIKE LIKP-LIFNR, "Vendor's account number
END OF TY_LIKP.
TYPES : BEGIN OF TY_LIPS,
VBELN LIKE LIPS-VBELN, "Delivery
POSNR LIKE LIPS-POSNR, "Delivery item
MATNR LIKE LIPS-MATNR, "Material
WERKS LIKE LIPS-WERKS, "Plant
LGORT LIKE LIPS-LGORT, "Storage location
CHARG LIKE LIPS-CHARG, "Batch number
LFIMG LIKE LIPS-LFIMG, "Actual quantity delivered
VRKME LIKE LIPS-VRKME, "Sales unit
VGBEL LIKE LIPS-VGBEL, "Doc.No of the ref. doc(PO#)
VGPOS LIKE LIPS-VGPOS, "Item number(PO Line#)
END OF TY_LIPS.
TYPES : BEGIN OF TY_EKKO,
EBELN LIKE EKKO-EBELN,
LIFNR LIKE EKKO-LIFNR,
END OF TY_EKKO.
TYPES : BEGIN OF TY_EKPO,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
ELIKZ LIKE EKPO-ELIKZ,
END OF TY_EKPO.
* final table
TYPES : BEGIN OF TY_FINAL,
CHKBOX(1) TYPE C,
VBELN LIKE LIKP-VBELN, "Delivery
LFDAT LIKE LIKP-LFDAT, "Delivery date
VERUR LIKE LIKP-VERUR, "Identification
BOLNR LIKE LIKP-BOLNR, "Bill of lading
LIFNR LIKE LIKP-LIFNR, "Vendor's account number
POSNR LIKE LIPS-POSNR, "Delivery item
MATNR LIKE LIPS-MATNR, "Material
WERKS LIKE LIPS-WERKS, "Plant
LGORT LIKE LIPS-LGORT, "Storage location
CHARG LIKE LIPS-CHARG, "Batch number
LFIMG LIKE LIPS-LFIMG, "Actual quantity delivered
VRKME LIKE LIPS-VRKME, "Sales unit
VGBEL LIKE LIPS-VGBEL, "Doc.No of the ref. doc(PO#)
VGPOS LIKE LIPS-VGPOS, "Item number(PO Line#)
END OF TY_FINAL.
* internal tables
DATA : T_LIKP TYPE TABLE OF TY_LIKP,
WA_LIKP LIKE LINE OF T_LIKP.
DATA : T_LIPS TYPE TABLE OF TY_LIPS,
WA_LIPS LIKE LINE OF T_LIPS.
DATA : T_EKKO TYPE TABLE OF TY_EKKO,
WA_EKKO LIKE LINE OF T_EKKO.
DATA : T_EKPO TYPE TABLE OF TY_EKPO,
WA_EKPO LIKE LINE OF T_EKPO.
DATA : T_FINAL TYPE TABLE OF TY_FINAL,
WA_FINAL LIKE LINE OF T_FINAL.
DATA : T_FINAL1 TYPE TABLE OF TY_FINAL,
WA_FINAL1 LIKE LINE OF T_FINAL1.
* Internal table to hold all text ids, objects
DATA I_HEAD LIKE TTXID OCCURS 0 WITH HEADER LINE.
* Header for texts
DATA I_HEADER LIKE THEAD.
* Internal table to hold the texts
DATA T_TEXTS LIKE TLINE OCCURS 0 WITH HEADER LINE.
DATA : WA_NAME LIKE THEAD-TDNAME.
* ALV data declarations
DATA : T_FCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FCAT TYPE SLIS_FIELDCAT_ALV.
DATA : PROGRAM_ID LIKE SY-REPID.
* ALV Events
DATA : T_EVENTS TYPE SLIS_T_EVENT WITH HEADER LINE.
* constants
CONSTANTS : C_CHECK(1) VALUE 'X'. "Value used to set X for a field
* selection screen
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : S_LFDAT FOR LIKP-LFDAT , "Delivery date
S_LIFNR FOR LIKP-LIFNR, "Vendor's account number
S_VBELN FOR LIKP-VBELN, "Delivery
S_LIFEX FOR LIKP-LIFEX. "Ext. ID of delivery note
SELECTION-SCREEN : END OF BLOCK B1.
* parameters
SELECTION-SCREEN : BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
PARAMETERS : P_OPEN RADIOBUTTON GROUP R1 DEFAULT 'X',
P_ALL RADIOBUTTON GROUP R1.
SELECTION-SCREEN : END OF BLOCK B2.
INITIALIZATION.
S_LFDAT-low = '19900101'.
S_LFDAT-high = '20150101'.
APPEND s_lfdat.
S_LIFNR-low = '9001'.
S_LIFNR-high = '10000'.
APPEND s_lifnr.
* at selection-screen
AT SELECTION-SCREEN.
IF S_LFDAT[] IS INITIAL AND S_LIFNR[] IS INITIAL
AND S_VBELN[] IS INITIAL AND S_LIFEX[] IS INITIAL.
MESSAGE I024(ZDEV).
STOP.
ENDIF.
IF NOT S_LFDAT[] IS INITIAL.
IF S_LIFNR[] IS INITIAL.
MESSAGE I023(ZDEV).
STOP.
ENDIF.
ENDIF.
* start-of-selection
START-OF-SELECTION.
* Clear all the contents of all interbal tables
REFRESH T_LIKP.
REFRESH T_LIPS.
PERFORM GET_DATA.
PERFORM FINAL_DATA.
PERFORM BUILD_FCAT.
PERFORM DISPLAY_ALV_GRID.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA.
* get data from LIKP
SELECT VBELN
LFDAT
VERUR
BOLNR
LIFNR
FROM LIKP
INTO TABLE T_LIKP
WHERE VBELN IN S_VBELN
AND LFDAT IN S_LFDAT
AND LIFEX IN S_LIFEX.
IF SY-SUBRC = 0.
SORT T_LIKP BY VBELN.
* get data from LIPS
SELECT VBELN
POSNR
MATNR
WERKS
LGORT
CHARG
LFIMG
VRKME
VGBEL
VGPOS
FROM LIPS
INTO TABLE T_LIPS
FOR ALL ENTRIES IN T_LIKP
WHERE VBELN = T_LIKP-VBELN.
* get data from EKPO for Open item/All items
IF P_OPEN = 'X'.
SELECT EBELN
LIFNR
FROM EKKO
INTO TABLE T_EKKO
FOR ALL ENTRIES IN T_LIPS
WHERE EBELN = T_LIPS-VGBEL
AND LIFNR IN S_LIFNR.
IF SY-SUBRC = 0.
SELECT EBELN
EBELP
ELIKZ
FROM EKPO
INTO TABLE T_EKPO
FOR ALL ENTRIES IN T_EKKO
WHERE EBELN = T_EKKO-EBELN
AND ELIKZ = ' '.
ENDIF.
ELSE.
SELECT EBELN
LIFNR
FROM EKKO
INTO TABLE T_EKKO
FOR ALL ENTRIES IN T_LIPS
WHERE EBELN = T_LIPS-VGBEL
AND LIFNR IN S_LIFNR.
IF SY-SUBRC = 0.
SELECT EBELN
EBELP
ELIKZ
FROM EKPO
INTO TABLE T_EKPO
FOR ALL ENTRIES IN T_EKKO
WHERE EBELN = T_EKKO-EBELN.
ENDIF.
ENDIF.
* get the Batch tex based on Text ID ZASN
LOOP AT T_LIPS INTO WA_LIPS.
CONCATENATE WA_LIPS-VBELN WA_LIPS-POSNR INTO WA_NAME.
CALL FUNCTION 'READ_TEXT'
EXPORTING
* CLIENT = SY-MANDT
ID = 'ZBSN'
LANGUAGE = 'E'
NAME = WA_NAME
OBJECT = 'VBBP'
* ARCHIVE_HANDLE = 0
* importing
* header = i_header
TABLES
LINES = T_TEXTS
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8.
IF SY-SUBRC = 0.
WA_LIPS-CHARG = T_TEXTS-TDLINE.
MODIFY TABLE T_LIPS FROM WA_LIPS.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form BUILD_FCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM BUILD_FCAT.
WA_FCAT-COL_POS = 1.
WA_FCAT-FIELDNAME = 'CHKBOX'.
WA_FCAT-TABNAME = 'T_FINAL'.
WA_FCAT-OUTPUTLEN = '5'.
WA_FCAT-CHECKBOX = C_CHECK.
WA_FCAT-INPUT = C_CHECK.
* WA_FCAT-KEY = C_CHECK.
WA_FCAT-SELTEXT_L = 'Check'.
APPEND WA_FCAT TO T_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = 2.
WA_FCAT-FIELDNAME = 'LIFNR'.
WA_FCAT-TABNAME = 'T_FINAL'.
WA_FCAT-SELTEXT_L = 'Vendor'.
WA_FCAT-OUTPUTLEN = '12'.
APPEND WA_FCAT TO T_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = 3.
WA_FCAT-FIELDNAME = 'VBELN'.
WA_FCAT-TABNAME = 'T_FINAL'.
WA_FCAT-SELTEXT_L = 'Delivery'.
WA_FCAT-OUTPUTLEN = '12'.
APPEND WA_FCAT TO T_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = 4.
WA_FCAT-FIELDNAME = 'POSNR'.
WA_FCAT-TABNAME = 'T_FINAL'.
WA_FCAT-SELTEXT_L = 'Del.LineItem'.
WA_FCAT-OUTPUTLEN = '8'.
APPEND WA_FCAT TO T_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = 5.
WA_FCAT-FIELDNAME = 'VERUR'.
WA_FCAT-TABNAME = 'T_FINAL'.
WA_FCAT-SELTEXT_L = 'Identification'.
WA_FCAT-OUTPUTLEN = '30'.
APPEND WA_FCAT TO T_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = 6.
WA_FCAT-FIELDNAME = 'LFDAT'.
WA_FCAT-TABNAME = 'T_FINAL'.
WA_FCAT-SELTEXT_L = 'Date'.
WA_FCAT-OUTPUTLEN = '10'.
APPEND WA_FCAT TO T_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = 7.
WA_FCAT-FIELDNAME = 'MATNR'.
WA_FCAT-TABNAME = 'T_FINAL'.
WA_FCAT-SELTEXT_L = 'Material'.
WA_FCAT-OUTPUTLEN = '18'.
APPEND WA_FCAT TO T_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = 8.
WA_FCAT-FIELDNAME = 'LFIMG'.
WA_FCAT-TABNAME = 'T_FINAL'.
WA_FCAT-SELTEXT_L = 'Delivery Qty'.
WA_FCAT-DATATYPE = 'QUAN'.
WA_FCAT-DECIMALS_OUT = 3.
WA_FCAT-INPUT = C_CHECK.
WA_FCAT-OUTPUTLEN = '17'.
APPEND WA_FCAT TO T_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = 9.
WA_FCAT-FIELDNAME = 'VRKME'.
WA_FCAT-TABNAME = 'T_FINAL'.
WA_FCAT-SELTEXT_L = 'UOM'.
WA_FCAT-OUTPUTLEN = '5'.
APPEND WA_FCAT TO T_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = 10.
WA_FCAT-FIELDNAME = 'VGBEL'.
WA_FCAT-TABNAME = 'T_FINAL'.
WA_FCAT-SELTEXT_L = 'Ref Doc # '.
WA_FCAT-OUTPUTLEN = '12'.
APPEND WA_FCAT TO T_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = 11.
WA_FCAT-FIELDNAME = 'VGPOS'.
WA_FCAT-TABNAME = 'T_FINAL'.
WA_FCAT-SELTEXT_L = 'Ref Item# '.
WA_FCAT-OUTPUTLEN = '8'.
APPEND WA_FCAT TO T_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = 12.
WA_FCAT-FIELDNAME = 'WERKS'.
WA_FCAT-TABNAME = 'T_FINAL'.
WA_FCAT-SELTEXT_L = 'Plant'.
WA_FCAT-OUTPUTLEN = '5'.
APPEND WA_FCAT TO T_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = 13.
WA_FCAT-FIELDNAME = 'LGORT'.
WA_FCAT-TABNAME = 'T_FINAL'.
WA_FCAT-SELTEXT_L = 'Storage loc'.
WA_FCAT-OUTPUTLEN = '8.'.
APPEND WA_FCAT TO T_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = 14.
WA_FCAT-FIELDNAME = 'CHARG'.
WA_FCAT-TABNAME = 'T_FINAL'.
WA_FCAT-SELTEXT_L = 'Batch No'.
WA_FCAT-OUTPUTLEN = '10'.
APPEND WA_FCAT TO T_FCAT.
CLEAR WA_FCAT.
WA_FCAT-COL_POS = 15.
WA_FCAT-FIELDNAME = 'BOLNR'.
WA_FCAT-TABNAME = 'T_FINAL'.
WA_FCAT-SELTEXT_L = 'Bill of Lading'.
WA_FCAT-OUTPUTLEN = '15'.
APPEND WA_FCAT TO T_FCAT.
CLEAR WA_FCAT.
ENDFORM. " BUILD_FCAT
*&---------------------------------------------------------------------*
*& Form alv_status
*&---------------------------------------------------------------------*
* Set the PF Status of the ALV List
*----------------------------------------------------------------------*
FORM ALV_STATUS USING EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'ZSTATUS'.
REFRESH extab[].
ENDFORM. " ALV_STATUS
*&---------------------------------------------------------------------*
*& Form USER_COMMAND
*&---------------------------------------------------------------------*
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
RS_SELFIELD-REFRESH = 'X'.
REFRESH : T_FINAL1.
* R_UCOMM = SY-UCOMM.
CASE R_UCOMM.
WHEN 'EXIT' OR 'BACK' OR 'CANCEL'.
LEAVE PROGRAM.
WHEN 'SELECT_ALL'.
LOOP AT T_FINAL INTO WA_FINAL.
WA_FINAL-CHKBOX = 'X'.
* MODIFY TABLE T_FINAL FROM WA_FINAL.
MODIFY T_FINAL FROM WA_FINAL INDEX sy-tabix.
ENDLOOP.
WHEN 'DESEL_ALL'.
LOOP AT T_FINAL INTO WA_FINAL.
WA_FINAL-CHKBOX = ' '.
* MODIFY TABLE T_FINAL FROM WA_FINAL.
MODIFY T_FINAL FROM WA_FINAL INDEX sy-tabix.
ENDLOOP.
ENDCASE.
ENDFORM. " USER_COMMAND
*&---------------------------------------------------------------------*
*& Form DISPLAY_ALV_GRID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY_ALV_GRID.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = sy-repid
I_CALLBACK_PF_STATUS_SET = 'ALV_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
* I_STRUCTURE_NAME =
* 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 =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = T_FINAL
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM. " DISPLAY_ALV_GRID
*&---------------------------------------------------------------------*
*& Form FINAL_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FINAL_DATA.
DATA : W_EBELP(6) TYPE C.
LOOP AT T_LIPS INTO WA_LIPS.
READ TABLE T_LIKP INTO WA_LIKP WITH KEY VBELN = WA_LIPS-VBELN.
IF SY-SUBRC = 0.
READ TABLE T_EKPO INTO WA_EKPO WITH KEY EBELN = WA_LIPS-VGBEL.
IF SY-SUBRC = 0.
WA_FINAL-VGBEL = WA_EKPO-EBELN.
WA_FINAL-VGPOS = WA_LIPS-VGPOS.
WA_FINAL-VBELN = WA_LIPS-VBELN.
WA_FINAL-LIFNR = WA_LIKP-LIFNR.
WA_FINAL-POSNR = WA_LIPS-POSNR.
WA_FINAL-VERUR = WA_LIKP-VERUR.
WA_FINAL-LFDAT = WA_LIKP-LFDAT.
WA_FINAL-MATNR = WA_LIPS-MATNR.
WA_FINAL-LFIMG = WA_LIPS-LFIMG.
WA_FINAL-VRKME = WA_LIPS-VRKME.
WA_FINAL-WERKS = WA_LIPS-WERKS.
WA_FINAL-LGORT = WA_LIPS-LGORT.
WA_FINAL-CHARG = WA_LIPS-CHARG.
WA_FINAL-BOLNR = WA_LIKP-BOLNR.
APPEND WA_FINAL TO T_FINAL.
CLEAR WA_FINAL.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. " FINAL_DATA