0

我想从一个动态的内部表中接收数据。

例如,内部表有两个字段:数字 - 名称

它充满了以下信息:

在此处输入图像描述

我怎样才能只获得相同的数据?我想获得基于数字的数据库。我想为相同的数字着色。我的意思是keyid的1、2、6是红色,3和4是蓝色,5是黄色。由于内部表是动态的,我不能确定数字中总是有 1。

4

1 回答 1

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'.
于 2012-08-14T07:29:52.770 回答