Il codice permette di creare un fieldcat dinamico.
FIELD-SYMBOLS: <gfst_dyntable> TYPE INDEX TABLE,
<gfs_dyntable> TYPE any.
TYPES:BEGIN OF ty_dynst,
fname TYPE char10,
END OF ty_dynst.
DATA: lt_fcat1 TYPE TABLE OF lvc_s_fcat,
ls_fcat1 TYPE lvc_s_fcat,
lv_lines TYPE char2,
lv_index TYPE char2,
ls_dynst TYPE ty_dynst,
t_newtable TYPE REF TO data,
t_newline TYPE REF TO data,
lv_tabix TYPE sy-tabix,
ls_var LIKE LINE OF s_var.
FIELD-SYMBOLS: <lfs_fieldcat> LIKE LINE OF gt_fieldcat.
ls_fcat1-fieldname = 'MATNR'.
APPEND ls_fcat1 TO lt_fcat1.
CLEAR ls_fcat1.
lv_index = sy-index.
LOOP AT s_var INTO ls_var.
ls_fcat1-fieldname = ls_var-low.
APPEND ls_fcat1 TO lt_fcat1.
CLEAR: ls_fcat1.
ENDLOOP.
CLEAR ls_dynst.
CLEAR lv_index.
CALL METHOD cl_alv_table_create=>create_dynamic_table "Here creates the internal table dynamcally
EXPORTING
it_fieldcatalog = lt_fcat1
IMPORTING
ep_table = t_newtable.
ASSIGN t_newtable->* TO <gfst_dyntable>.
CREATE DATA t_newline LIKE LINE OF <gfst_dyntable>.
ASSIGN t_newline->* TO <gfs_dyntable>.
gt_fieldcat = lt_fcat1.