6

有时 ABAP 会让我发疯,因为这些任务非常简单,比如在循环中增加一个整数......

这是我的尝试:

METHOD test.

  DATA lv_id TYPE integer.

  lv_id = 1.

  LOOP AT x ASSIGNING <y>.
    lv_id = lv_id+1.
  ENDLOOP.

ENDMETHOD.

这会导致错误消息字段类型“I”不允许子字段访问。

4

5 回答 5

23

您已经自己回答了这个问题,但为了让事情更清楚:

variable + 1 

是一个算术表达式 - 将变量的值加 1。

variable+1

是对字符变量的偏移操作。例如,如果变量包含ABCvariable+1则为BC

在处理 NUMC 时,这尤其令人困惑。例如, with variable = '4711',variable + 1被评估为4712, 而variable+1is '711'(一个字符序列)。

您看到的错误是因为无法对非字符类变量执行索引操作。

于 2010-06-02T18:29:02.400 回答
15

你的意思是:

ADD 1 to lv_id.

顺便说一下,当你循环一个内部表时,SY-TABIX 有循环计数器。

于 2010-06-02T14:46:15.050 回答
7

嗯,我明白了。这是他妈的空间......

lv_id = lv_id + 1

作品...

于 2010-06-02T13:11:58.733 回答
1

简单的

数据:gv_inc 类型 I。

将此语句放在循环中

gv_inc = gv_inc + 1 。

于 2016-04-22T11:23:14.933 回答
0

如果要增加每个循环周期,则可以直接获取表大小。

describe table x lines data(lv_id). "Out side of the loop.
于 2017-07-17T16:25:04.200 回答