需求是这样的:
根据物料 序列号 从EQUI 和 EQBS 表获取对应的特殊库存状态
然后从T156C表获取对应的描述
T156C中有对应的库存状态的描述,但是它是用字段描述来分辨,
使用下图举例,如果是01 ‘’,那么对应的会在Unrestricted-use stock这个字段打X,我们要获取的就是这一条对应的X所在的列的字段描述
FUNCTION zatj_gx_get_sobkz_txt.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(IS_DATA) TYPE T156C
*" EXPORTING
*" REFERENCE(EV_TXT)
*" TABLES
*" IT_TABLE STRUCTURE DNTAB OPTIONAL
*"----------------------------------------------------------------------
DATA : lt_idetails TYPE abap_compdescr_tab WITH HEADER LINE.
DATA : lr_ref_table_des TYPE REF TO cl_abap_structdescr.
DATA:ls_table LIKE LINE OF it_table.
FIELD-SYMBOLS: TYPE ANY.
IF it_table IS INITIAL .
CALL FUNCTION 'NAMETAB_GET'
EXPORTING
langu = sy-langu
tabname = 'T156C'
TABLES
nametab = it_table
EXCEPTIONS
no_texts_found = 1.
ENDIF.
**动态得到内表结构 ”全局结构
lr_ref_table_des ?=
cl_abap_typedescr=>describe_by_name( 'T156C' ).
lt_idetails[] = lr_ref_table_des->components[].
LOOP AT lt_idetails.
ASSIGN COMPONENT lt_idetails-name OF STRUCTURE is_data TO .
IF sy-subrc = 0 AND = 'X'.
READ TABLE it_table INTO ls_table
WITH KEY fieldname = lt_idetails-name.
ev_txt = ls_table-fieldtext.
EXIT.
ENDIF.
ENDLOOP.
ENDFUNCTION.