Abap 如何编写结构?

Abap 如何编写结构?,abap,Abap,如何显示结构内部的值?请参见下面的示例: DATA: BEGIN OF line, col1 TYPE i, col2 TYPE i, END OF line. DATA: itab LIKE TABLE OF line, jtab LIKE TABLE OF line. DO 3 TIMES. line-col1 = sy-index. line-col2 = sy-index ** 2. APPEND line TO i

如何显示结构内部的值?请参见下面的示例:

DATA: BEGIN OF line,
        col1 TYPE i,
        col2 TYPE i,
      END OF line.

DATA: itab LIKE TABLE OF line,
      jtab LIKE TABLE OF line.

DO 3 TIMES.
  line-col1 = sy-index.
  line-col2 = sy-index ** 2.
  APPEND line TO itab.
ENDDO.

MOVE itab TO jtab.

line-col1 = 10. line-col2 = 20.
APPEND line TO itab.


IF itab GT jtab.
  WRITE / 'ITAB GT JTAB'.
ENDIF.
写入:itab、jtab。


因为我想知道为什么itab比jtab大?

我假设这只是一个简单的示例,您不想在生产环境中使用(部分)它-所以我忽略了代码中存在的其他潜在问题

就您的问题而言,您需要在itab上循环以访问其值。然后可以访问如下值:

DATA: ls_current_line LIKE line.
" ...
LOOP AT itab INTO ls_current_line.
  WRITE / ls_current_line-col1.
ENDLOOP.

您可以使用功能模块
重用\u ALV\u GRID\u DISPLAY

例如:

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  TABLES
    t_outtab = itab.

如果您想纯粹为了调试目的查看字段的内容,也可以在代码中添加断点,然后在调试器中查看内容

只是不要在生产代码中留下断点

break-point. 
"or use break yourusername  <= this use is safer
断点。

“或者使用break yourusernameITAB比JTAB大,因为它包含更多的行;ITAB有4行,而JTAB有3行


对于内部表,GT运算符首先查看表中的行数。有关比较运算符(对于内部表)的更多详细信息,请访问。[我看到您的示例也取自此帮助页。]

这种方法的实际应用是什么?如果你解释一下你想做什么,也许可以强调一些(可能更好的)替代方法。你的术语不正确。你的意思是“结构”,而不是“对象”“。这是完全不同的事情。会话断点实际上更可取,但我发现解释图标的外观有点困难>