您的位置:首页 > 其它

RTTI中的一些类和方法的说明

2011-03-08 14:29 155 查看
RTTI是Runtime Type Information,就是用来决定运行时的属性,包括描述表,描述字段;现在有一个描述信息的Super class CL_ABAP_TYPEDESCR来获取描述信息。

以下是CL_ABAP_TYPEDESCR的Sub Class

CL_ABAP_STRUCTDESCR "用来返回结构的属性

CL_ABAP_TABLEDESCR "用来返回表的属性

CL_ABAP_DATADESCR "用来返回数据相关的属性

CL_ABAP_ELEMDESCR "返回元素的属性,例如长度等;

CL_ABAP_REFDESCR "返回参考数据的相关属性

*-----------------------------------------------------------------------------------------------*



TYPES: BEGIN OF STR_MAT,
WERKS TYPE WERKS_D,
MATNR TYPE MATNR,
MAKTX TYPE MAKTX,
END OF STR_MAT.

DATA: LO_STR TYPE REF TO CL_ABAP_STRUCTDESCR,
TAB_COMP TYPE CL_ABAP_STRUCTDESCR=>COMPONENT_TABLE.

(1)获取结构的属性
LO_STR ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_NAME( 'STR_MAT' ).

"方法DESCRIBE_BY_NAME 就是根据表或者结构的名来获取相关的结构属性;

也可以换成如下的写法:

DATA: WA_MAT TYPE STR_MAT.

LO_STR ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_DATA( WA_MAT ).

"方法:DESCRIBE_BY_DATA就是根据工作区或内表来获取结构属性

(2)在获取结构属性之后,需要找到结构下的COMPONENT TABLE,就需要使用方法GET_COMPONENTS()
TAB_COMP = LO_STR->GET_COMPONENTS( ).
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: