CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
i_style_table = 'X'
it_fieldcatalog = lt_fcat
IMPORTING
ep_table = lt_fcat_dyn
EXCEPTIONS
generate_subpool_dir_full = 1
OTHERS = 2.
IF sy-subrc = 0.
* Assign the new table to field symbol
ASSIGN lt_fcat_dyn->* TO <it_dyn_table>.
CREATE DATA gw_line LIKE LINE OF <it_dyn_table>.
ASSIGN gw_line->* TO <gfs_line>.
ENDIF.
DATA : v_month(15), v_year TYPE char4.
DATA : v_tabix TYPE sy-tabix.
DATA : v_fieldvalue(10).
FIELD-SYMBOLS: <fs_table> TYPE STANDARD TABLE,
<fs_wa>.
BREAK-POINT.
SORT it_final_f BY tariff month.
LOOP AT it_final_f INTO wa_final_f.
* READ TABLE <it_dyn_table> INTO <gfs_line1>
* WITH KEY ('TARIFF') = wa_final_f-tariff.
* IF sy-subrc = 0.
* CONTINUE.
* ENDIF.
ASSIGN COMPONENT 'TARIFF' OF STRUCTURE <gfs_line> TO <fs_field>.
IF <fs_field> IS ASSIGNED.
MOVE wa_final_f-tariff TO <fs_field> .
ENDIF.
CASE wa_final_f-operand.
WHEN 'XYZ'.
CLEAR : v_month ,v_year,v_fieldvalue.
SPLIT wa_final_f-month AT '-' INTO v_month v_year.
CLEAR v_fieldvalue.
CONCATENATE v_month+0(3) v_year 'KWH_M' INTO
v_fieldvalue.
* TRANSLATE v_fieldvalue TO UPPER CASE.
ASSIGN COMPONENT v_fieldvalue OF STRUCTURE <gfs_line>
TO <fs_field1>. .......................... (SY-SUBRC = 4)
IF <fs_field1> IS ASSIGNED.
MOVE wa_final_f-wert1 TO <fs_field1> .
ENDIF.
WHEN 'ABC'.
CLEAR : v_month ,v_year,v_fieldvalue.
SPLIT wa_final_f-month AT '-' INTO v_month v_year.
CLEAR v_fieldvalue.
CONCATENATE v_month+0(3) v_year 'HDMD' INTO
v_fieldvalue .
* TRANSLATE v_fieldvalue TO UPPER CASE.
*data : lv_structure_name TYPE text30.
*lv_structure_name = v_fieldvalue.
ASSIGN COMPONENT v_fieldvalue OF STRUCTURE <gfs_line> TO
<fs_field1>.
IF <fs_field1> IS ASSIGNED.
MOVE wa_final_f-wert1 TO <fs_field1> .
ENDIF.
ENDCASE.