有时 ABAP 会让我发疯,因为这些任务非常简单,比如在循环中增加一个整数......
这是我的尝试:
METHOD test.
DATA lv_id TYPE integer.
lv_id = 1.
LOOP AT x ASSIGNING <y>.
lv_id = lv_id+1.
ENDLOOP.
ENDMETHOD.
这会导致错误消息字段类型“I”不允许子字段访问。
有时 ABAP 会让我发疯,因为这些任务非常简单,比如在循环中增加一个整数......
这是我的尝试:
METHOD test.
DATA lv_id TYPE integer.
lv_id = 1.
LOOP AT x ASSIGNING <y>.
lv_id = lv_id+1.
ENDLOOP.
ENDMETHOD.
这会导致错误消息字段类型“I”不允许子字段访问。
您已经自己回答了这个问题,但为了让事情更清楚:
variable + 1
是一个算术表达式 - 将变量的值加 1。
variable+1
是对字符变量的偏移操作。例如,如果变量包含ABC
,variable+1
则为BC
。
在处理 NUMC 时,这尤其令人困惑。例如, with variable = '4711'
,variable + 1
被评估为4712
, 而variable+1
is '711'
(一个字符序列)。
您看到的错误是因为无法对非字符类变量执行索引操作。
你的意思是:
ADD 1 to lv_id.
顺便说一下,当你循环一个内部表时,SY-TABIX 有循环计数器。
嗯,我明白了。这是他妈的空间......
lv_id = lv_id + 1
作品...
简单的
数据:gv_inc 类型 I。
将此语句放在循环中
gv_inc = gv_inc + 1 。
如果要增加每个循环周期,则可以直接获取表大小。
describe table x lines data(lv_id). "Out side of the loop.