Увеличьте целое число

Иногда ABAP сводит меня с ума с действительно простыми задачами, такими как постепенное увеличение целого числа в цикле...

Вот моя попытка:

METHOD test.

  DATA lv_id TYPE integer.

  lv_id = 1.

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

ENDMETHOD.

Это приводит к сообщению об ошибке Тип поля "I", не разрешает доступ подполя.

6
задан Suncatcher 18 July 2017 в 09:15
поделиться

3 ответа

Вы имеете в виду:

ADD 1 to lv_id.

Между прочим, когда вы выполняете цикл по внутренней таблице, SY-TABIX имеет счетчик цикла.

15
ответ дан 8 December 2019 в 02:11
поделиться

Я понял. Это чертовы пробелы ...

lv_id = lv_id + 1

работает ...

7
ответ дан 8 December 2019 в 02:11
поделиться

Вы уже сами ответили на вопрос, но для большей ясности:

variable + 1 

- это арифметическое выражение - добавьте 1 к значению переменной.

variable+1

- это операция смещения символьной переменной. Например, если переменная содержит ABC , переменная + 1 будет BC .

Это может сбивать с толку при работе с NUMC. Например, если переменная = '4711' , переменная + 1 оценивается как 4712 , тогда как переменная + 1 равна «711» (последовательность символов).

Ошибка, которую вы видели, возникла из-за того, что невозможно выполнить операцию индексирования для не символьной переменной.

22
ответ дан 8 December 2019 в 02:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: