FORM frm_create_compose_dymic_tab  USING ev_error ev_message TYPE bapi_msg.  DATA l_line TYPE char10.  DATA:    lo_elemt TYPE REF TO cl_abap_elemdescr,    lt_comp  TYPE cl_abap_structdescr=>component_table,    ls_comp  LIKE LINE OF lt_comp.  DATA:lr_dref  TYPE REF TO data,       lo_descr TYPE REF TO cl_abap_structdescr,       l_string TYPE string.  DATA: lo_struc TYPE REF TO cl_abap_structdescr,        lo_table TYPE REF TO cl_abap_tabledescr,        lo_type  TYPE REF TO cl_abap_typedescr,        lo_line  TYPE REF TO data,        lo_itab  TYPE REF TO data.  DATA(lv_tabname) = '/BIC/AZO_BCD1100'.  CREATE DATA lr_dref TYPE (lv_tabname).  ASSIGN lr_dref->* TO FIELD-SYMBOL(<fs_data>).  lo_descr ?= cl_abap_typedescr=>describe_by_data( <fs_data> ).  DATA(lt_fields) = lo_descr->get_ddic_field_list( p_langu = sy-langu                                             p_including_substructres = abap_true ).  LOOP AT lt_fields ASSIGNING FIELD-SYMBOL(<fs_fields>).    IF <fs_fields>-fieldname = 'FISCYEAR'        OR       <fs_fields>-fieldname = 'FISCPER3'         OR       <fs_fields>-fieldname = 'FISCVARNT'        OR       <fs_fields>-fieldname = '/BIC/ZBPC_GUID'   OR       <fs_fields>-fieldname = 'RECORDMODE'       OR       <fs_fields>-fieldname = '/BIC/ZBPC_NO'     OR       <fs_fields>-fieldname = 'CURRENCY'.      CONTINUE.    ELSEIF <fs_fields>-fieldname = '/BIC/ZBPC_TK32'.      CONCATENATE <fs_fields>-tabname '-' <fs_fields>-fieldname INTO l_string.      ls_comp-name = <fs_fields>-fieldname.      CALL METHOD cl_abap_datadescr=>describe_by_name        EXPORTING          p_name         = l_string        RECEIVING          p_descr_ref    = lo_type        EXCEPTIONS          type_not_found = 1          OTHERS         = 2.      ls_comp-type ?= lo_type.      APPEND ls_comp TO lt_comp.      CLEAR ls_comp.*      ls_comp-name = <fs_fields>-fieldname.      CONCATENATE <fs_fields>-fieldname '1' INTO ls_comp-name.      ls_comp-type ?= cl_abap_elemdescr=>get_c( p_length = 20 ).      APPEND ls_comp TO lt_comp.      CLEAR ls_comp.      CONTINUE.    ENDIF.    CONCATENATE <fs_fields>-tabname '-' <fs_fields>-fieldname INTO l_string.    ls_comp-name = <fs_fields>-fieldname.    CALL METHOD cl_abap_datadescr=>describe_by_name      EXPORTING        p_name         = l_string      RECEIVING        p_descr_ref    = lo_type      EXCEPTIONS        type_not_found = 1        OTHERS         = 2.    ls_comp-type ?= lo_type.    APPEND ls_comp TO lt_comp.    CLEAR ls_comp.  ENDLOOP.  IF lt_comp[] IS INITIAL.    ev_error = 'E'.    ev_message = '没有保护请查看输出表头'.  ELSE.    TRY.        lo_struc = cl_abap_structdescr=>create( lt_comp ).      CATCH cx_sy_struct_attributes .    ENDTRY.****  end*Generate table type dynamically    TRY.        CALL METHOD cl_abap_tabledescr=>create          EXPORTING            p_line_type  = lo_struc            p_table_kind = 'S'            p_key_kind   = 'D'          RECEIVING            p_result     = lo_table.      CATCH cx_sy_table_creation .    ENDTRY.*Generate internal table via the dynamic table type    CREATE DATA lo_itab TYPE HANDLE lo_table.    ASSIGN lo_itab->* TO <fs_itab>.*Generate work area    CREATE DATA lo_line TYPE HANDLE lo_struc.    ASSIGN lo_line->* TO <fs_wa>.  ENDIF.ENDFORM.