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

    技术2022-05-19  21

    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( ).

     


    最新回复(0)