Освоение ABAP: подробное руководство по циклированию внутренних таблиц

В ABAP внутренние таблицы представляют собой фундаментальную структуру данных, используемую для хранения данных и управления ими. Цикл по внутренним таблицам позволяет перебирать элементы и выполнять различные операции. В этой статье блога мы рассмотрим различные методы циклического перемещения по внутренним таблицам на примерах кода.

  1. Оператор LOOP:
    Оператор LOOP — это наиболее распространенный метод перебора внутренних таблиц в ABAP. Это позволяет последовательно обрабатывать каждую запись во внутренней таблице.
DATA: lt_table TYPE TABLE OF string,
      lv_value TYPE string.
LOOP AT lt_table INTO lv_value.
  WRITE: / lv_value.
ENDLOOP.
  1. Цикл FOR:
    ABAP также предоставляет конструкцию цикла FOR для циклического перемещения по внутренним таблицам. Он позволяет вам определить индексную переменную и перебирать таблицу на основе индекса.
DATA: lt_table TYPE TABLE OF string,
      lv_value TYPE string,
      lv_index TYPE i.
DO lv_index = 1 TO lines( lt_table ).
  lv_value = lt_table[ lv_index ].
  WRITE: / lv_value.
ENDDO.
  1. READ TABLE с INDEX:
    Другой способ просмотреть внутреннюю таблицу — использовать оператор READ TABLE с индексом. Вы можете увеличить индекс вручную и получить соответствующую запись.
DATA: lt_table TYPE TABLE OF string,
      lv_value TYPE string,
      lv_index TYPE i.
lv_index = 1.
READ TABLE lt_table WITH KEY table_line = lv_index INTO lv_value.
WHILE sy-subrc = 0.
  WRITE: / lv_value.
  lv_index = lv_index + 1.
  READ TABLE lt_table WITH KEY table_line = lv_index INTO lv_value.
ENDWHILE.
  1. LOOP AT с условием WHERE:
    Вы можете фильтровать внутренние элементы таблицы, используя условие WHERE в операторе LOOP. Это позволяет обрабатывать только те записи, которые соответствуют указанным критериям.
DATA: lt_table TYPE TABLE OF string,
      lv_value TYPE string.
LOOP AT lt_table INTO lv_value WHERE lv_value = 'ABC'.
  WRITE: / lv_value.
ENDLOOP.
  1. LOOP AT с GROUP BY:
    Оператор LOOP поддерживает дополнение GROUP BY, которое позволяет группировать записи внутренней таблицы на основе определенного поля. Это полезно для выполнения вычислений или агрегирования сгруппированных данных.
DATA: lt_table TYPE TABLE OF string,
      lv_value TYPE string,
      lv_group TYPE string.
LOOP AT lt_table INTO lv_value GROUP BY lv_group.
  WRITE: / lv_group, lv_value.
ENDLOOP.

В этой статье мы рассмотрели несколько методов циклического перемещения по внутренним таблицам в ABAP. Оператор LOOP, цикл FOR, READ TABLE с INDEX и LOOP AT с условием WHERE и GROUP BY обеспечивают гибкость в обработке данных и манипулировании ими. Освоив эти методы, вы сможете эффективно работать с внутренними таблицами в своих программах ABAP.