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( ).
以下是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( ).
相关文章推荐
- Sqlite操作的一些关键类的官方说明与Intent的startactivityforresult方法
- iOS中一些常见的方法调用说明
- 一些mysql启动参数的说明和优化方法
- 一些mysql启动参数的说明和优化方法
- Hibernate session的方法的一些说明
- ajax的实现(小结)和一些方法说明
- 在ibatis中queryForPaginatedList( )方法的一些说明
- map容器的一些方法说明
- Linux下判断内存使用的一些方法和说明【转】
- .NET 中格式化数据的一些方法和格式说明
- 举例说明在android中使用正则表达式去掉字符串中标点符号及其他一些特殊符号的方法
- [置顶]对FileUpload文件上传控件的一些使用方法说明
- AppFuse1.8中BaseAction的一些主要方法说明
- 图片异步加载框架 Android-Universal-Image-Loader的一些参数说明及方法
- Linux下判断内存使用的一些方法和说明
- Qt configure 参数不完全说明 以及 精简系统 减少编译时间的一些方法
- python xlsxwriter模块一些方法说明
- ActionBar的一些方法说明
- fpga的EPCS 配置的2种方法(图文讲解,哈哈,网上互相抄袭的一些文字说明太不明了了)
- c#中math各种函数对整值不同的处理方法及一些说明(优化分页的时候特别用到)