*&---------------------------------------------------------------------*
*& Report ZTABLE_TEST
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ztable_test.
TYPES: BEGIN OF ts_tab1,
field TYPE char20,
value TYPE char20,
END OF ts_tab1.
DATA: it_tab1 TYPE TABLE OF ts_tab1 WITH DEFAULT KEY.
it_tab1 = VALUE #(
( field = 'ID' value = 456 )
( field = 'FirstName' value = 'Priya' )
( field = 'LastName' value = 'Acharya' )
( field = 'ID' value = 222 )
( field = 'FirstName' value = 'Dayita' )
( field = 'LastName' value = 'Srinivasan' )
( field = 'ID' value = 214 )
( field = 'FirstName' value = 'Raje' )
( field = 'LastName' value = 'Venkataraman' )
( field = 'ID' value = 123 )
( field = 'FirstName' value = 'Nilay' )
( field = 'LastName' value = 'Chandran' ) ).
TYPES: BEGIN OF ts_tab2,
id TYPE i,
firstname TYPE char20,
lastname TYPE char20,
END OF ts_tab2.
DATA: it_tab2 TYPE TABLE OF ts_tab2.
DATA: wa_tab2 LIKE LINE OF it_tab2.
LOOP AT it_tab1 INTO DATA(wa).
DATA(lv_tabix) = sy-tabix.
IF wa-field = 'ID'.
wa_tab2-id = wa-value.
ELSEIF wa-field = 'FirstName'.
wa_tab2-firstname = wa-value.
ELSEIF wa-field = 'LastName'.
wa_tab2-lastname = wa-value.
ENDIF.
IF ( lv_tabix MOD 3 = 0 ).
APPEND wa_tab2 TO it_tab2.
CLEAR wa_tab2.
ENDIF.
ENDLOOP.
cl_demo_output=>display_data(
EXPORTING
value = it_tab2
* name = " Name
).