DATA:lt_dfies LIKE TABLE OF dfies.
DATA:ls_dfies LIKE dfies.
DATA p_name TYPE tabname.
DATA p_fldnm TYPE tabname.
DATA ls_table TYPE zsql_clause_elements.
DATA lr_struc TYPE REF TO cl_abap_structdescr.
DATA lr_table TYPE REF TO cl_abap_tabledescr.
DATA lr_type TYPE REF TO cl_abap_typedescr.
DATA lr_data TYPE REF TO cl_abap_datadescr.
DATA lt_comp TYPE abap_component_tab.
DATA ls_comp LIKE LINE OF lt_comp.
DATA l_string TYPE string.
TYPES: BEGIN OF W_ITAB,
WERKS LIKE ZFICO_JGHYWH-WERKS,"工厂
MATNRC LIKE ZFICO_JGHYWH-MATNRC,"电机电控物料代码
MATNRM LIKE ZFICO_JGHYWH-MATNRM,"成品代码
PERIOB LIKE ZFICO_JGHYWH-PERIOB,"有效起始期间
ERDAT LIKE ZFICO_JGHYWH-ERDAT,"创建日期
CGCBJ LIKE ZFICO_JGHYWH-CGCBJ,"采购成本价
HYWHJ LIKE ZFICO_JGHYWH-HYWHJ,"还原维护价格
MAKTXM LIKE ZFICO_JGHYWH-MAKTXM,"成品代码描述
MAKTXC LIKE ZFICO_JGHYWH-MAKTXC,"电机电控代码描述
PERIOE LIKE ZFICO_JGHYWH-PERIOE,"有效截止期间
ERNAM LIKE ZFICO_JGHYWH-ERNAM,"创建人
LABOR LIKE ZFICO_JGHYWH-LABOR,"电机/ 电控
END OF W_ITAB.
DATA: wtab TYPE TABLE OF w_itab WITH HEADER LINE.
DATA:cl_descr TYPE REF TO cl_abap_structdescr.
FIELD-SYMBOLS:<fs_comp> TYPE abap_compdescr.
FIELD-SYMBOLS <fs_name> TYPE ANY.
cl_descr ?= cl_abap_typedescr=>describe_by_data( wtab ).
LOOP AT cl_descr->components ASSIGNING <fs_comp>.
WRITE: / <fs_comp>-name, "字段名称
<fs_comp>-type_kind, "字段类型
<fs_comp>-length, "字段长度
<fs_comp>-DECIMALS. "字段小数位
* APPEND <fs_comp>-name TO gt_field.
ENDLOOP.
可应用场景。Excel上传时,区分各种字段类型。
eg.对千分位进行处理,excel上传时,业务整理数据后还有千分符,就会使得程序dump掉,这个可以判断定义内表是否P类型,P类型的去除千分符
当然,实际使用中可能内表结构跟表结构一致时 可以用 这个SAP 标准的BAPI DDIF_FIELDINFO_GET