我想从一个动态的内部表中接收数据。
例如,内部表有两个字段:数字 - 名称
它充满了以下信息:
我怎样才能只获得相同的数据?我想获得基于数字的数据库。我想为相同的数字着色。我的意思是keyid的1、2、6是红色,3和4是蓝色,5是黄色。由于内部表是动态的,我不能确定数字中总是有 1。
我想从一个动态的内部表中接收数据。
例如,内部表有两个字段:数字 - 名称
它充满了以下信息:
我怎样才能只获得相同的数据?我想获得基于数字的数据库。我想为相同的数字着色。我的意思是keyid的1、2、6是红色,3和4是蓝色,5是黄色。由于内部表是动态的,我不能确定数字中总是有 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'.