如何在ABAP中编写结构?

时间:2011-07-29 08:36:26

标签: sap 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 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更大?。

4 个答案:

答案 0 :(得分:3)

如果您想纯粹出于调试目的看到字段的内容,您也可以在代码中放置一个断点并查看调试器中的内容。

请不要将断点留在生产代码中!

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

编辑: 您也可以使用会话断点,这不需要您更改代码(并且仅在会话期间适用于您的用户):

在运行程序的系统中:

  • 打开程序
  • 选择您希望程序停止的行
  • 单击会话断点按钮

    enter image description here

断点图标将出现在该行的旁边(您也可以单击图标出现的位置,设置/删除断点)。

enter image description here

答案 1 :(得分:2)

我认为这只是一个快速示例,您不希望在生产环境中使用(部分) - 所以我忽略了代码中存在的其他潜在问题。

根据您的问题,您需要遍历您的itab以访问其值。然后,您可以访问如下值:

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

答案 2 :(得分:2)

您可以使用功能模块REUSE_ALV_GRID_DISPLAY

例如:

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  TABLES
    t_outtab = itab.

答案 3 :(得分:2)

ITAB比JTAB更大,因为它包含更多行; ITAB有4条线,而JTAB有3条线。

对于内部表格,GT运算符首先会查看表格中的行数。有关比较运算符(内部表)的更多详细信息,请参见http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb3841358411d1829f0000e829fbfe/content.htm。 [我看到你的例子也来自这个帮助页面。]