dynamic - 如何在仅引用数据的表中循环

标签 dynamic abap internal-tables sap-query

我正在使用函数模块RSAQ_QUERY_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

两者都不起作用。

最佳答案

我找到了解决方案(在询问高级开发人员后..)

FIELD-SYMBOLS: <gt_data> type table,
               <row>     type any.

ASSIGN gr_data->* to <gt_data>.

LOOP AT <gt_data> ASSIGNING <row>.

  DO.
    ASSIGN COMPONENT sy-index OF STRUCTURE <row> TO <field>.
    IF sy-subrc <> 0.
      EXIT. " last field of row
    ENDIF.

    WRITE : / 'Field', sy-index, ':', <field>.

  ENDDO.
    
ENDLOOP.

关于dynamic - 如何在仅引用数据的表中循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39331010/

相关文章:

javascript - 如何将整个 SVG 图像文件夹(或如何动态加载它们)导入 React Web App?

android - 创建 Intent 并将其命名为当前日期和时间

abap - 如何手动触发 ALV DATA_CHANGE 事件?

sockets - ABAP Websocket 服务器 XSRF token

abap - 删除一行的最简单方法

C# 将 IntPtr 转换为 int

optimization - 如何修复使用滚动原理的 Gekko 优化中的 "Solution Not Found"错误

greatest-n-per-group - Open SQL 中每组的最大 N

abap - INSERT INTO itab 时抑制不可抑制的警告

performance - 在 WHERE 中使用条件 =、>=、<= 优化 LOOP AT