hiii try this code....its for ekko and ekpo...replace with your required fields or you can try standard program BCALV_GRID_03 .
REWARD POINTS if helpful
Report ZZTEST .
TYPE-POOLS: SLIS.
*type declaration for values from ekko
TYPES: BEGIN OF I_EKKO,
EBELN LIKE EKKO-EBELN,
AEDAT LIKE EKKO-AEDAT,
BUKRS LIKE EKKO-BUKRS,
BSART LIKE EKKO-BSART,
LIFNR LIKE EKKO-LIFNR,
END OF I_EKKO.
DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,
WA_EKKO TYPE I_EKKO.
*type declaration for values from ekpo
TYPES: BEGIN OF I_EKPO,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
MEINS LIKE EKPO-MEINS,
NETPR LIKE EKPO-NETPR,
END OF I_EKPO.
DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,
WA_EKPO TYPE I_EKPO .
*variable for Report ID
DATA: V_REPID LIKE SY-REPID .
*declaration for fieldcatalog
DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
- declaration for events table where user comand or set PF status will
- be defined
DATA: V_EVENTS TYPE SLIS_T_EVENT,WA_EVENT TYPE SLIS_ALV_EVENT.
- declartion for layout
DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
- declaration for variant(type of display we want)
DATA: I_VARIANT TYPE DISVARIANT,I_VARIANT1 TYPE DISVARIANT,I_SAVE(1) TYPE C.*PARAMETERS : p_var TYPE disvariant-variant.*Title displayed when the alv list is displayedDATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.INITIALIZATION.V_REPID = SY-REPID.PERFORM BUILD_FIELDCATLOG.PERFORM EVENT_CALL.PERFORM POPULATE_EVENT.START-OF-SELECTION.PERFORM DATA_RETRIEVAL.PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.PERFORM DISPLAY_ALV_REPORT.&----
*& Form BUILD_FIELDCATLOG&----
- Fieldcatalog has all the field details from ekko
----
FORM BUILD_FIELDCATLOG.WA_FIELDCAT-TABNAME = 'IT_EKKO'.WA_FIELDCAT-FIELDNAME = 'EBELN'.WA_FIELDCAT-SELTEXT_M = 'PO NO.'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.WA_FIELDCAT-TABNAME = 'IT_EKKO'.WA_FIELDCAT-FIELDNAME = 'AEDAT'.WA_FIELDCAT-SELTEXT_M = 'DATE.'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.WA_FIELDCAT-TABNAME = 'IT_EKKO'.WA_FIELDCAT-FIELDNAME = 'BUKRS'.WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.WA_FIELDCAT-TABNAME = 'IT_EKKO'.WA_FIELDCAT-FIELDNAME = 'BUKRS'.WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.WA_FIELDCAT-TABNAME = 'IT_EKKO'.WA_FIELDCAT-FIELDNAME = 'LIFNR'.WA_FIELDCAT-NO_OUT = 'X'.WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.ENDFORM. "BUILD_FIELDCATLOG&----
*& Form EVENT_CALL&----
- we get all events - TOP OF PAGE or USER COMMAND in table v_events
----
FORM EVENT_CALL.CALL FUNCTION 'REUSE_ALV_EVENTS_GET'EXPORTINGI_LIST_TYPE = 0IMPORTINGET_EVENTS = V_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.ENDFORM. "EVENT_CALL&----
*& Form POPULATE_EVENT&----
- Events populated for TOP OF PAGE & USER COMAND
----
FORM POPULATE_EVENT.READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.IF SY-SUBRC EQ 0.WA_EVENT-FORM = 'TOP_OF_PAGE'.MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =WA_EVENT-FORM.ENDIF.READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.IF SY-SUBRC EQ 0.WA_EVENT-FORM = 'USER_COMMAND'.MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =WA_EVENT-NAME.ENDIF.ENDFORM. "POPULATE_EVENT&----
*& Form data_retrieval&----
- retreiving values from the database table ekko
----
FORM DATA_RETRIEVAL.SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.ENDFORM. "data_retrieval&----
*& Form bUild_listheader&----
- text
----
- -->I_LISTHEADEtext
----
FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.DATA HLINE TYPE SLIS_LISTHEADER.HLINE-INFO = 'this is my first alv pgm'.HLINE-TYP = 'H'.ENDFORM. "build_listheader&----
*& Form display_alv_report&----
- text
----
FORM DISPLAY_ALV_REPORT.V_REPID = SY-REPID.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTINGI_CALLBACK_PROGRAM = V_REPID
- I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'I_GRID_TITLE = I_TITLE_EKKO
- I_GRID_SETTINGS =
- IS_LAYOUT = ALV_LAYOUT
IT_FIELDCAT = I_FIELDCAT[]
- IT_EXCLUDING =
- IT_SPECIAL_GROUPS =
- IT_SORT =
- IT_FILTER =
- IS_SEL_HIDE =
- i_default = 'ZLAY1'
I_SAVE = 'A'
- is_variant = i_variant
IT_EVENTS = V_EVENTSTABLEST_OUTTAB = IT_EKKO
- 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. "display_alv_report&----
*& Form TOP_OF_PAGE&----
- text
----
FORM TOP_OF_PAGE.CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'EXPORTINGIT_LIST_COMMENTARY = IT_LISTHEADER
- i_logo =
- I_END_OF_LIST_GRID =
.ENDFORM. "TOP_OF_PAGE&----
*& Form USER_COMMAND&----
- text
----
- -->R_UCOMM text
- -->, text
- -->RS_SLEFIELDtext
----
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMMRS_SELFIELD TYPE SLIS_SELFIELD.CASE R_UCOMM.WHEN '&IC1'.READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.PERFORM BUILD_FIELDCATLOG_EKPO.PERFORM EVENT_CALL_EKPO.PERFORM POPULATE_EVENT_EKPO.PERFORM DATA_RETRIEVAL_EKPO.PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.PERFORM DISPLAY_ALV_EKPO.ENDCASE.ENDFORM. "user_command&----
*& Form BUILD_FIELDCATLOG_EKPO&----
- text
----
FORM BUILD_FIELDCATLOG_EKPO.WA_FIELDCAT-TABNAME = 'IT_EKPO'.WA_FIELDCAT-FIELDNAME = 'EBELN'.WA_FIELDCAT-SELTEXT_M = 'PO NO.'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.WA_FIELDCAT-TABNAME = 'IT_EKPO'.WA_FIELDCAT-FIELDNAME = 'EBELP'.WA_FIELDCAT-SELTEXT_M = 'LINE NO'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.WA_FIELDCAT-TABNAME = 'I_EKPO'.WA_FIELDCAT-FIELDNAME = 'MATNR'.WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.WA_FIELDCAT-TABNAME = 'I_EKPO'.WA_FIELDCAT-FIELDNAME = 'MENGE'.WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.WA_FIELDCAT-TABNAME = 'I_EKPO'.WA_FIELDCAT-FIELDNAME = 'MEINS'.WA_FIELDCAT-SELTEXT_M = 'UOM'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.WA_FIELDCAT-TABNAME = 'I_EKPO'.WA_FIELDCAT-FIELDNAME = 'NETPR'.WA_FIELDCAT-SELTEXT_M = 'PRICE'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.ENDFORM. "BUILD_FIELDCATLOG_EKPO&----
*& Form event_call_ekpo&----
- we get all events - TOP OF PAGE or USER COMMAND in table v_events
----
FORM EVENT_CALL_EKPO.CALL FUNCTION 'REUSE_ALV_EVENTS_GET'EXPORTINGI_LIST_TYPE = 0IMPORTINGET_EVENTS = V_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.ENDFORM. "event_call_ekpo&----
*& Form POPULATE_EVENT&----
- Events populated for TOP OF PAGE & USER COMAND
----
FORM POPULATE_EVENT_EKPO.READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.IF SY-SUBRC EQ 0.WA_EVENT-FORM = 'TOP_OF_PAGE'.MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =WA_EVENT-FORM.ENDIF.ENDFORM. "POPULATE_EVENT&----
*& Form TOP_OF_PAGE&----
- text
----
FORM F_TOP_OF_PAGE.CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'EXPORTINGIT_LIST_COMMENTARY = IT_LISTHEADER
- i_logo =
- I_END_OF_LIST_GRID =
.ENDFORM. "TOP_OF_PAGE&----
*& Form USER_COMMAND&----
- text
----
- -->R_UCOMM text
- -->, text
- -->RS_SLEFIELDtext
----
*retreiving values from the database table ekkoFORM DATA_RETRIEVAL_EKPO.SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.ENDFORM.FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.DATA: HLINE1 TYPE SLIS_LISTHEADER.HLINE1-TYP = 'H'.HLINE1-INFO = 'CHECKING PGM'.ENDFORM.FORM DISPLAY_ALV_EKPO.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTING
- I_INTERFACE_CHECK = ' '
- I_BYPASSING_BUFFER = ' '
- I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
- I_CALLBACK_PF_STATUS_SET = ' '
- I_CALLBACK_USER_COMMAND = 'F_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 = ' '
I_GRID_TITLE = I_TITLE_EKPO
- I_GRID_SETTINGS =
- IS_LAYOUT =
IT_FIELDCAT = I_FIELDCAT[]
- IT_EXCLUDING =
- IT_SPECIAL_GROUPS =
- IT_SORT =
- IT_FILTER =
- IS_SEL_HIDE =
- I_DEFAULT =
I_SAVE = 'A'
- IS_VARIANT =
IT_EVENTS = V_EVENTSTABLEST_OUTTAB = IT_EKPOEXCEPTIONSPROGRAM_ERROR = 1OTHERS = 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.
Thanks
Ujwal