Dynamic 如何在只有数据引用的表中循环
我正在使用功能模块Dynamic 如何在只有数据引用的表中循环,dynamic,abap,internal-tables,sap-query,Dynamic,Abap,Internal Tables,Sap Query,我正在使用功能模块RSAQ\u QUERY\u CALL,返回一个表: DATA: gr_data TYPE REF TO data. CALL FUNCTION 'RSAQ_QUERY_CALL' EXPORTING query = 'ZXXXXXXXX' usergroup = 'XXX' VARIANT = 'TEST' SKIP_SELSCREEN = 'X' DA
RSAQ\u QUERY\u CALL
,返回一个表:
DATA: gr_data TYPE REF TO data.
CALL FUNCTION 'RSAQ_QUERY_CALL'
EXPORTING
query = 'ZXXXXXXXX'
usergroup = 'XXX'
VARIANT = 'TEST'
SKIP_SELSCREEN = 'X'
DATA_TO_MEMORY = 'X'
IMPORTING
ref_to_ldata = gr_data
EXCEPTIONS
OTHERS = 11.
现在我如何在那张桌子上循环?
我尝试的是:
- 指定给字段符号
- 传递字段符号而不是dref
字段符号:类型表,
键入任何。
将gr_数据->*分配给。
在分配时循环。
做
将结构的组件sy索引指定给。
如果sy subrc为0。
出口“行的最后一个字段
恩迪夫。
写入:/'字段',sy索引':'。
恩多。
结束循环。
我找到了解决方案(在询问高级开发人员之后…)
字段符号:类型表,
键入任何。
将gr_数据->*分配给。
在分配时循环。
做
将结构的组件sy索引指定给。
如果sy subrc为0。
退出。”行的最后一个字段
恩迪夫。
写入:/'字段',sy索引':'。
恩多。
结束循环。
请参阅以下代码:
FIELD-SYMBOLS: <gt_data> type table,
<fs_value> type any.
ASSIGN gref_data->* to <gt_data>.
LOOP AT <gt_data> ASSIGNING <fs_value>.
write:<fs_value>. "Here you will get row by row
ENDLOOP.
字段符号:类型表,
键入任何。
将gref_数据->*分配给。
在分配时循环。
写入:。“在这里,你可以一排一排地拿到
结束循环。
请参阅以下代码:
FIELD-SYMBOLS: <gt_data> type table,
<fs_value> type any.
ASSIGN gref_data->* to <gt_data>.
LOOP AT <gt_data> ASSIGNING <fs_value>.
write:<fs_value>. "Here you will get row by row
ENDLOOP.
字段符号:类型表,
键入任何。
将gref_数据->*分配给。
在分配时循环。
写:“在这里,你可以一行一行地拿到
结束循环。
您尝试了哪种代码,出现了哪些问题/错误消息?我的尝试非常失败,出现了语法错误和类型不兼容的消息。我删除了这些尝试,搜索了其他可能性,但没有发现,因为表的结构不固定。您尝试了哪些代码,出现了哪些问题/错误消息?我的尝试非常失败,我得到了语法错误和类型不兼容的消息。我删除了这些尝试,搜索了其他可能性,但没有发现任何可能性,因为表的结构不固定。如果要实现类型安全,可以使用ABAP RTTS类方法,它的工作方式类似于工厂。这张桌子可以检查。然后您可以接收表的类型,在下一步中,您可以基于表的结构类型创建结构或fieldsymbol。如果你想做到类型安全,你可以使用ABAP RTTS类方法,它就像工厂一样工作。这张桌子可以检查。然后您可以接收表的类型,在下一步中,您可以基于表的结构类型创建结构或fieldsymbol。很好的通用的东西可以这样做。