*&---------------------------------------------------------------------*
*& Report ZDYNIT *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ZDYNIT .
DATA: d_ref TYPE REF TO data,
d_ref2 TYPE REF TO data,
i_alv_cat TYPE TABLE OF lvc_s_fcat,
ls_alv_cat LIKE LINE OF i_alv_cat.
TYPES tabname TYPE dcobjdef-name.
PARAMETER p_tablen TYPE tabname.
DATA BEGIN OF itab OCCURS 0.
INCLUDE STRUCTURE dntab.
DATA END OF itab.
FIELD-SYMBOLS: <f_fs> TYPE TABLE,
<f_fs1> TYPE TABLE,
<f_fs2> TYPE ANY,
<f_fs3> TYPE TABLE.
REFRESH itab.
CALL FUNCTION 'NAMETAB_GET'
EXPORTING
LANGU = SY-LANGU
ONLY = ' '
TABNAME = p_tablen
TABLES
NAMETAB = itab
EXCEPTIONS
INTERNAL_ERROR = 1
TABLE_HAS_NO_FIELDS = 2
TABLE_NOT_ACTIV = 3
NO_TEXTS_FOUND = 4
OTHERS = 5
.
IF SY-SUBRC <> 0.
ENDIF.
LOOP AT itab .
ls_alv_cat-fieldname = itab-fieldname.
ls_alv_cat-ref_table = p_tablen.
ls_alv_cat-ref_field = itab-fieldname.
APPEND ls_alv_cat TO i_alv_cat.
ENDLOOP.
* internal table build
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
* I_STYLE_TABLE =
IT_FIELDCATALOG = i_alv_cat
* I_LENGTH_IN_BYTE =
IMPORTING
EP_TABLE = d_ref
*E_STYLE_FNAME =
EXCEPTIONS
GENERATE_SUBPOOL_DIR_FULL = 1
others = 2
.
IF SY-SUBRC <> 0.
ENDIF.
ASSIGN d_ref->* TO <f_fs>.
SELECT * FROM (p_tablen) INTO CORRESPONDING FIELDS OF TABLE <f_fs>.
LOOP AT <f_fs> ASSIGNING <f_fs2> .
WRITE / <f_fs2>.
ENDLOOP.