[英]How to create a internal table based on object attribute?
I am trying to create sorted table based on instances.我正在尝试基于实例创建排序表。 Here below my coding:下面是我的编码:
CLASS my_fancy_pony DEFINITION.
PUBLIC SECTION.
DATA mv_nice_key TYPE i.
ENDCLASS.
CLASS my_fancy_pony IMPLEMENTATION.
ENDCLASS.
DATA lt_my_fancy_ponys TYPE SORTED TABLE OF REF TO my_fancy_pony WITH UNIQUE KEY mv_nice_key.
DATA lt_my_fancy_ponys TYPE SORTED TABLE OF REF TO my_fancy_pony WITH UNIQUE KEY table_line->mv_nice_key.
This is not passing through the syntax check.这没有通过语法检查。 Could you tell how I can achieve that?你能告诉我如何做到这一点吗?
You can't use classes directly as structures.您不能将类直接用作结构。
However, you can construct a map that does what you need:但是,您可以构建一个 map 来满足您的需要:
TYPES:
BEGIN OF map_entry,
mv_nice_key TYPE i,
ref_to_object TYPE REF TO my_fancy_pony,
END OF map_entry.
TYPES map_type TYPE SORTED TABLE OF map_entry WITH UNIQUE KEY mv_nice_key.
DATA(lt_my_fancy_pony_map) = VALUE map_type(
FOR each IN lt_my_fancy_ponys
( mv_nice_key = each->mv_nice_key
ref_to_object = each ) ).
The map can number any of the class's attributes that you need: map 可以对您需要的任何类属性进行编号:
TYPES:
BEGIN OF map_entry,
mv_nice_key TYPE i,
some_other_att TYPE i,
" ...
ref_to_object TYPE REF TO my_fancy_pony,
END OF map_entry.
TYPES map_type TYPE SORTED TABLE OF map_entry WITH NON-UNIQUE KEY table_line.
DATA(lt_my_fancy_pony_map) = VALUE map_type(
FOR each IN lt_my_fancy_ponys
( mv_nice_key = each->mv_nice_key
some_other_att = each->some_other_att
" ...
ref_to_object = each ) ).
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.