В ABAP 7.40 доступны различные методы циклов для эффективного перебора структур данных и выполнения операций. В этой статье блога мы рассмотрим несколько методов и приведем примеры кода, демонстрирующие их использование.
- Цикл DO…ENDDO:
Цикл DO…ENDDO — это базовая конструкция цикла в ABAP. Он позволяет многократно выполнять блок кода до тех пор, пока не будет выполнено указанное условие. Вот пример:
DATA: counter TYPE i VALUE 1.
DO 10 TIMES.
WRITE: / 'Iteration:', counter.
counter = counter + 1.
ENDDO.
- LOOP AT…ENDLOOP:
Оператор LOOP AT…ENDLOOP используется для перебора внутренних таблиц, таблиц базы данных или других структур данных. Он автоматически обрабатывает индекс цикла и обеспечивает доступ к каждому элементу во время итерации. Вот пример:
DATA: lt_numbers TYPE TABLE OF i,
lv_number TYPE i.
lt_numbers = VALUE #( (1) (2) (3) (4) (5) ).
LOOP AT lt_numbers INTO lv_number.
WRITE: / 'Number:', lv_number.
ENDLOOP.
- LOOP AT…INTO…ENDLOOP:
Оператор LOOP AT…INTO…ENDLOOP позволяет сохранять значения определенных полей из зацикленной структуры в отдельных переменных. Вот пример:
DATA: lt_employees TYPE TABLE OF ty_employee,
ls_employee TYPE ty_employee.
LOOP AT lt_employees INTO ls_employee.
WRITE: / 'Employee Name:', ls_employee-name,
'Employee Age:', ls_employee-age.
ENDLOOP.
- LOOP AT…GROUP BY…ENDLOOP:
Инструкция LOOP AT…GROUP BY…ENDLOOP группирует элементы внутренней таблицы на основе указанного ключевого поля. Это позволяет выполнять операции над каждой группой. Вот пример:
DATA: lt_employees TYPE TABLE OF ty_employee,
ls_grouped TYPE ty_employee,
lv_key TYPE ty_employee-key.
LOOP AT lt_employees INTO ls_grouped
GROUP BY key = ls_grouped-key.
WRITE: / 'Group:', lv_key.
WRITE: / 'Employees in the group:'.
LOOP AT GROUP lv_key INTO ls_grouped.
WRITE: / 'Employee Name:', ls_grouped-name.
ENDLOOP.
ENDLOOP.
В этой статье мы рассмотрели различные методы создания циклов в ABAP 7.40, включая цикл DO…ENDDO, LOOP AT…ENDLOOP, LOOP AT… INTO…ENDLOOP и LOOP AT…GROUP BY…ENDLOOP. Эти методы обеспечивают гибкость и эффективность при работе со структурами данных в программировании ABAP. Используя эти методы в своем коде, вы можете улучшить читаемость и удобство обслуживания ваших ABAP-программ.