CREATE DATA dref TYPE (ls_fields-tabname).
ASSIGN dref->* TO FIELD-SYMBOL(<fs_data>).
lo_datatype = cl_abap_typedescr=>describe_by_data( <fs_data> ).
CASE lo_datatype->type_kind.
WHEN cl_abap_typedescr=>typekind_struct1
OR cl_abap_typedescr=>typekind_struct2.
CREATE DATA dyn_table TYPE TABLE OF (ls_fields-tabname).
ASSIGN dyn_table->* TO <dyn_table>.
CREATE DATA dyn_wa LIKE LINE OF <dyn_table>.
ASSIGN dyn_wa->* TO <dyn_wa>.
WHEN cl_abap_typedescr=>typekind_table.
CREATE DATA dyn_table TYPE (ls_fields-tabname).
ASSIGN dyn_table->* TO <dyn_table>.
CREATE DATA dyn_wa LIKE LINE OF <dyn_table>.
ASSIGN dyn_wa->* TO <dyn_wa>.
ENDCASE.
网友评论