类CL_ABAP_TYPEDESCR,动态取得运行时类型
来源:互联网 发布:group_concat mysql 编辑:程序博客网 时间:2024/06/06 01:34
原文地址: http://blog.csdn.net/lhx20/archive/2008/10/23/3128295.aspx
有时候我们要在程序运行的时候取得某个内表或者某个结构它的属性或者它的字段的属性,可能通过类CL_ABAP_TYPEDESCR和它的子类取得指定内表的属性。
类CL_ABAP_TYPEDESCR和它的子类的结构图
CL_ABAP_TYPEDESCR
|
|--CL_ABAP_DATADESCR
| |
| |--CL_ABAP_ELEMDESCR
| |--CL_ABAP_REFDESCR
| |--CL_ABAP_COMPLEXDESCR
| |
| |--CL_ABAP_STRUCTDESCR
| |--CL_ABAP_TABLEDESCR
|
|--CL_ABAP_OBJECTDESCR
|
|--CL_ABAP_CLASSDESCR
|--CL_ABAP_INTFDESCR
例子1:
TYPES:
BEGIN OF TYP_DEPT,
ID(10) TYPE N,
NAME(10) TYPE C,
END OF TYP_DEPT.
DATA:
WA_DEPT TYPE TYP_DEPT,
DESCR_REF TYPE REF TO CL_ABAP_STRUCTDESCR.
FIELD-SYMBOLS:
<FS_DEPT> TYPE ABAP_COMPDESCR.
************************************************************************
* START-OF-SELECTION
************************************************************************
START-OF-SELECTION.
DESCR_REF ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_DATA( WA_DEPT ).
LOOP AT DESCR_REF->COMPONENTS ASSIGNING <FS_DEPT>.
WRITE: / <FS_DEPT>-NAME.
ENDLOOP.
例子2:
TYPES:
my_table TYPE HASHED TABLE OF i WITH UNIQUE KEY TABLE LINE.
DATA:
descr_ref TYPE ref to cl_abap_tabledescr.
FIELD-SYMBOLS:
<key_comp_wa> TYPE abap_keydescr.
START-OF-SELECTION.
descr_ref ?= cl_abap_typedescr=>describe_by_name( 'MY_TABLE' ).
WRITE: / 'Typename :', descr_ref->absolute_name.
WRITE: / 'Kind :', descr_ref->type_kind.
WRITE: / 'Length :', descr_ref->length.
WRITE: / 'Decimals :', descr_ref->decimals.
WRITE: / 'Table Kind :', descr_ref->table_kind.
WRITE: / 'Initial Size :', descr_ref->initial_size.
WRITE: / 'Key Def Kind :', descr_ref->key_defkind.
WRITE: / 'Has Unique Key:', descr_ref->has_unique_key.
WRITE: / 'Key Components:'.
LOOP AT descr_ref->key ASSIGNING <key_comp_wa>.
WRITE <key_comp_wa>-name.
ENDLOOP.
- 类CL_ABAP_TYPEDESCR,动态取得运行时类型
- 类CL_ABAP_TYPEDESCR,动态取得运行时类型
- 类CL_ABAP_TYPEDESCR,动态取得运行时类型
- CL_ABAP_TYPEDESCR
- 动态(程序运行时)生成枚举类型
- 动态(程序运行时)生成枚举类型
- 动态类型dynamic和动态语言运行时DLR
- 浏览器客户端智能自动化:如何取得页面中JavaScript运行时动态生成的URL?
- BCB运行期取得Enum(枚举)类型信息
- 运行时类型识别——Class类(动态加载类)
- MFC中运行时类型识别和动态创建类对象
- MFC运行时类型识别(MFC RTTI)与动态创建
- 动态运行时类型的显式转换
- 动态运行时类型识别与显式转换
- C++中运行时类型信息(RTTI)及动态强制类型转换
- 运行时类型识别(RTTI)与动态类型转换原理(reinterpret_cast const_cast static_cast dynamic_cast)
- 三十、多态性、动态类型 和 动态绑定(三)运行时 VS 编译时
- java之编译时类型(前期绑定)和运行时类型 (后期绑定、动态绑定、运行时绑定)
- 无法打开 IR/ID/ESR(XI/PI)
- 酷派开发
- 经典模式匹配(转)
- 面试记录
- 跨浏览器的iframe onload 事件监听(转)
- 类CL_ABAP_TYPEDESCR,动态取得运行时类型
- 大家好
- PHP 实现多服务器共享 SESSION 数据
- 谈目前项目组的代码提交制度
- 利用iText在JSP中生成PDF报表
- WindowXP上qt4.4.3安装与使用入门
- C++ 函数的数组参数
- VIM技巧之分隔窗口
- APUE 第二版 习题3.6