gpt4 book ai didi

persistence - 返回abap中持久化类的所有属性列表

转载 作者:行者123 更新时间:2023-12-03 23:58:37 26 4
gpt4 key购买 nike

我在自定义表上有一个持久类。现在使用 GET_PERSISTENT_BY_QUERY 我可以获得对象列表。我现在如何才能将这些对象的所有属性打印给用户(例如,作为 ALV)?

如果我以某种方式点击实例函数,我可以调用它吗?

最佳答案

这是一个动态的解决方案,query_data 是调用 get_persistent_by_query( ) 返回的结果。最后数据会存储在结构化表

DATA: pers_obj_desc   TYPE REF TO cl_abap_classdescr,
pers_query_data TYPE REF TO data,
field_cat TYPE lvc_t_fcat.

FIELD-SYMBOLS: <table> TYPE STANDARD TABLE.

LOOP AT query_data ASSIGNING FIELD-SYMBOL(<pers_data>).

AT FIRST.
pers_obj_desc ?= cl_abap_typedescr=>describe_by_object_ref( p_object_ref = <pers_data> ).

LOOP AT pers_obj_desc->attributes ASSIGNING FIELD-SYMBOL(<attr_desc>).
APPEND INITIAL LINE TO field_cat ASSIGNING FIELD-SYMBOL(<field_cat>).
<field_cat>-fieldname = <attr_desc>-name.
<field_cat>-intlen = <attr_desc>-length.
<field_cat>-datatype = <attr_desc>-type_kind.
ENDLOOP.

cl_alv_table_create=>create_dynamic_table(
EXPORTING
it_fieldcatalog = field_cat
IMPORTING
ep_table = pers_query_data
).
ASSIGN pers_query_data->* TO <table>.
ENDAT. " first

APPEND INITIAL LINE TO <table> ASSIGNING FIELD-SYMBOL(<line>).
LOOP AT pers_obj_desc->attributes ASSIGNING <attr_desc>.
ASSIGN COMPONENT <attr_desc>-name OF STRUCTURE <line> TO FIELD-SYMBOL(<field>).
data(getter) = 'GET_' && <attr_desc>-name.
CALL METHOD <pers_data>->(getter) RECEIVING result = <field>.
ENDLOOP.

ENDLOOP.

关于persistence - 返回abap中持久化类的所有属性列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32095293/

中,你可以用它来显示在你的ALV中。请注意,几乎无法控制字段的顺序。对于实际使用,您还必须添加一些错误处理。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com