Hi Malikarjun,
See this code, it will be helpful.
*Type pools declaration for ALV
TYPE-POOLS: SLIS. " ALV Global Types
*data declaration for dynamic internal table and alv
DATA: L_STRUCTURE TYPEREFTODATA,
L_TABLE TYPEREFTODATA,
STRUC_DESC TYPEREFTO CL_ABAP_STRUCTDESCR,
LT_LAYOUT TYPE SLIS_LAYOUT_ALV,
LS_LVC_FIELDCATALOGUE TYPE LVC_S_FCAT,
LT_LVC_FIELDCATALOGUE TYPE LVC_T_FCAT,
LS_FIELDCATALOGUE TYPE SLIS_FIELDCAT_ALV,
LT_FIELDCATALOGUE TYPE SLIS_T_FIELDCAT_ALV.
*field symbols declaration
FIELD-SYMBOLS :
<IT_TABLE> TYPESTANDARDTABLE,
<DYN_STR> TYPEANY,
<STR_COMP> TYPE ABAP_COMPDESCR.
*declarations for grid title
DATA : T1(30),
T2(10),
T3(50).
*selection screen declaration for table input
PARAMETERS : P_TABLE LIKE DD02L-TABNAME.
*initialization event
INITIALIZATION.
*start of selection event
START-OF-SELECTION.
*texts for grid title
T1 = 'Dynamic ALV display for table'.
T2 = P_TABLE.
CONCATENATE T1 T2 INTO T3 SEPARATEDBY SPACE.
* Dynamic creation of a structure
CREATEDATA L_STRUCTURE TYPE (P_TABLE).
ASSIGN L_STRUCTURE->* TO<DYN_STR>.
* Fields Structure
STRUC_DESC ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_DATA( <DYN_STR> ).
LOOPAT STRUC_DESC->COMPONENTS ASSIGNING<STR_COMP>.
* Build Fieldcatalog
LS_LVC_FIELDCATALOGUE-FIELDNAME = <STR_COMP>-NAME.
LS_LVC_FIELDCATALOGUE-REF_TABLE = P_TABLE.
APPEND LS_LVC_FIELDCATALOGUE TO LT_LVC_FIELDCATALOGUE.
* Build Fieldcatalog
LS_FIELDCATALOGUE-FIELDNAME = <STR_COMP>-NAME.
LS_FIELDCATALOGUE-REF_TABNAME = P_TABLE.
APPEND LS_FIELDCATALOGUE TO LT_FIELDCATALOGUE.
ENDLOOP.
* Create internal table dynamic
CALLMETHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = LT_LVC_FIELDCATALOGUE
IMPORTING
EP_TABLE = L_TABLE.
ASSIGN L_TABLE->* TO<IT_TABLE>.
* Read data from the table selected.
SELECT * FROM (P_TABLE)
INTO CORRESPONDING FIELDSOFTABLE<IT_TABLE>.
* ALV Layout
LT_LAYOUT-ZEBRA = 'X'.
LT_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
LT_LAYOUT-WINDOW_TITLEBAR = T3.
*ALV output
CALLFUNCTION'REUSE_ALV_GRID_DISPLAY'
EXPORTING
IS_LAYOUT = LT_LAYOUT
IT_FIELDCAT = LT_FIELDCATALOGUE
TABLES
T_OUTTAB = <IT_TABLE>
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.
Regards,
Ramesh.T