有时候,ABAP会让我疯狂,只需要在循环中递增一个整数就可以了......
这是我的尝试:
METHOD test.
DATA lv_id TYPE integer.
lv_id = 1.
LOOP AT x ASSIGNING <y>.
lv_id = lv_id+1.
ENDLOOP.
ENDMETHOD.
这会导致错误消息字段类型“I”不允许子字段访问。
答案 0 :(得分:21)
你已经自己回答了这个问题,但为了让事情更清楚一点:
variable + 1
是一个算术表达式 - 将1加到变量的值上。
variable+1
是字符变量的偏移操作。例如,如果变量包含ABC
,则variable+1
为BC
。
在处理NUMCs时,这可能会特别令人困惑。例如,对于variable = '4711'
,variable + 1
评估为4712
,而variable+1
为'711'
(字符序列)。
您看到的错误是因为无法对非类似字符的变量执行索引操作。
答案 1 :(得分:15)
你的意思是:
ADD 1 to lv_id.
顺便说一下,当你遍历内部表时,SY-TABIX有循环计数器。
答案 2 :(得分:6)
lv_id = lv_id + 1
工程...
答案 3 :(得分:1)
<强>简单强>
DATA:gv_inc type I。
将此声明放入循环
gv_inc = gv_inc + 1。
答案 4 :(得分:0)
如果要增加每个循环周期,则可以直接获取表格大小。
describe table x lines data(lv_id). "Out side of the loop.