我想从内部表格中获取动态数据。
例如,内部表有两个字段:数字 - 名称
它充满了像:
这样的信息
如何才能获得相同的数据?我想获得数据的数据。我想给相同的数字着色。我的意思是keyid的1,2,6是红色的,3和4是蓝色的,5是黄色的。由于内部表是动态的,我不能确定总有1个数字。
答案 0 :(得分:1)
我假设你的意思是你不知道你的动态表是否总是有你正在寻找的列。
使用运行时类型服务(RTTS)确定动态表的结构。以下数据将确定您的结构是否有一个名为“NUMBER”的字段。您可以使用表lt_component来检查需要阅读的组件(ASSIGN COMPONENT number OF STRUCTURE <fs_line> TO <fs_field>
)。
DATA:
lr_tabledescr TYPE REF TO cl_abap_tabledescr,
lr_datadescr TYPE REF TO cl_abap_datadescr,
lr_structdescr TYPE REF TO cl_abap_structdescr,
lr_typedescr TYPE REF TO cl_abap_typedescr,
lt_component TYPE TABLE OF abap_componentdescr.
DATA tab TYPE TABLE OF sflight.
lr_tabledescr ?= cl_abap_datadescr=>describe_by_data( tab ).
lr_typedescr ?= lr_tabledescr->get_table_line_type( ).
lr_structdescr ?= lr_typedescr.
lt_component = lr_structdescr->get_components( ).
READ TABLE lt_component WITH KEY name = 'NUMBER'.