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:
例子2:
my_table TYPE HASHED TABLE OF i WITH UNIQUE KEY TABLE LINE.
descr_ref TYPE ref to cl_abap_tabledescr.
<key_comp_wa> TYPE abap_keydescr.
descr_ref ?= cl_abap_typedescr=>describe_by_name( 'MY_TABLE' ).
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.
partner TYPE bu_partner,
END OF gs_partner.
DATA rtti TYPE REF TO cl_abap_typedescr.
DATA length TYPE i.
DATA data_type TYPE string.
rtti = cl_abap_typedescr=>describe_by_data( gs_partner-partner ).
length = STRLEN( rtti->absolute_name ).
data_type = rtti->absolute_name+6(length).
DATA : t001 LIKE TABLE OF t001 WITH HEADER LINE.
CALL FUNCTION 'GET_COMPONENT_LIST'
EXPORTING
program = sy-repid
fieldname = 'T001'
TABLES
components = components.
LOOP AT components.
WRITE :/ components-compname , components-type.
ENDLOOP.
TYPES: ty_poheader TYPE bapimepoheader.
DATA: dref TYPE REF TO data.
DATA: descr_ref1 TYPE REF TO cl_abap_structdescr.
DATA : l_string TYPE string.
DATA : l_object TYPE dd_x031l_table.
DATA : l_true TYPE abap_bool.
DATA : l_desc TYPE REF TO cl_abap_typedescr.
FIELD-SYMBOLS: <fs_line2> TYPE ty_poheader.
START-OF-SELECTION.
TYPES: my_struct TYPE mepoheader.
DATA:
my_data TYPE my_struct,
descr_ref TYPE REF TO cl_abap_structdescr.
FIELD-SYMBOLS:
<comp_wa> TYPE abap_compdescr.
START-OF-SELECTION.
descr_ref ?= cl_abap_typedescr=>describe_by_data( my_data ).
WRITE: / 'Typename :', descr_ref->absolute_name.
WRITE: / 'Kind :', descr_ref->type_kind.
WRITE: / 'Length :', descr_ref->length.
WRITE: / 'Decimals :', descr_ref->decimals.
WRITE: / 'Struct Kind :', descr_ref->struct_kind.
WRITE: / 'Components'.
WRITE: / 'Name Kind Length Decimals'.
LOOP AT descr_ref->components ASSIGNING <comp_wa>.
WRITE: / <comp_wa>-name, <comp_wa>-type_kind,
<comp_wa>-length, <comp_wa>-decimals.
ENDLOOP.
*& Report ZCTEST06
*&---------------------------------------------------------------------*
*& 主要使用cl_abap_typedescr=>describe_by_data方法
*& 和子类cl_abap_structdescr中的components属性
*& components包含以下信息
*& length 长度
*& decimals 小数
*& type_kind 类型
*& name 字段名
*&---------------------------------------------------------------------*
BEGIN OF ty1,
p1(10) TYPE c,
p2(5) TYPE n,
p3(3) TYPE p DECIMALS 2,
END OF ty1.
iw_comp TYPE abap_compdescr,
ref_descr TYPE REF TO cl_abap_structdescr.
WRITE : /1 iw_comp-length,
15 iw_comp-decimals,
30 iw_comp-type_kind,
45 iw_comp-name.
CLEAR iw_comp.
ENDLOOP.
598



被折叠的 条评论
为什么被折叠?



