ABAP 随笔4新语法 forinforthenuntil

作者:SAPTAB 约 3 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Data Engineering, MM, 开发, 数据工程, 物料管理
ABAP 随笔4新语法 forinforthenuntil - 封面图
ABAP 随笔4新语法 forinforthenuntil - 封面图

原创 Tab Zhu [ SAP TAB ](javascript:void\(0\);)

点击上方 蓝字 :关注Tab 一起来学习SAP技术

废话不多,先放上for in 和 for then until

"今天学习一下FOR的语法,常用的2个语法。"FOR wa|<fs> IN itab [INDEX INTO idx] [cond]

"FOR i = … [THEN expr] UNTIL|WHILE log_exp

DATA gs_mara TYPE mara.SELECT * FROM mara INTO TABLE @DATA(gt_mara) UP TO 10 ROWS.

*FOR wa|<fs> IN itab [INDEX INTO idx] [cond]TYPES:ty_matnr TYPE mara-matnr, ty_t_matnr TYPE TABLE OF ty_matnr WITH EMPTY KEY.

"1 将gt_mara 赋值给 gt_maktx*旧语法:DATA gt_matnr1 TYPE ty_t_matnr.DATA gs_matnr1 TYPE ty_matnr.LOOP AT gt_mara INTO gs_mara WHERE mtart = 'ROH'. . gs_matnr1 = gs_mara-matnr. APPEND gs_matnr1 TO gt_matnr1.ENDLOOP.*新语法 ls_mara仅为临时变量,程序会临时定义并赋值,ls_matnr-matnr 和 ty_t_matnr的行类型一定要保持一致"功能是将 gt_mara中的物料号赋值给gt_matnr2DATA(gt_matnr2) = VALUE ty_t_matnr( FOR ls_mara IN gt_mara ( ls_mara-matnr ) ). *当加上where条件时DATA(gt_matnr3) = VALUE ty_t_matnr( FOR ls_mara IN gt_mara WHERE ( mtart = 'ROH' ) ( ls_mara-matnr ) ).

"for with THEN and UNTIL | WHERE

*旧语法:TYPES:BEGIN OF ty_line, a TYPE i, b TYPE i, c TYPE i, END OF ty_line, ty_t_line TYPE TABLE OF ty_line WITH EMPTY KEY.DATA j TYPE i.DATA gt_lines1 TYPE ty_t_line.FIELD-SYMBOLS <ls_line1> TYPE ty_line.j = 0. DO. j = j + 1. IF j > 10. EXIT. ENDIF. APPEND INITIAL LINE TO gt_lines1 ASSIGNING <ls_line1>. <ls_line1>-a = j. <ls_line1>-b = j + 1. <ls_line1>-c = j + 2.ENDDO.

*新语法 x未表达式中隐式定义的变量DATA(gt_lines2) = VALUE ty_t_line( FOR x = 1 THEN x + 1 UNTIL x > 10( a = x b = x + 1 c = x + 2 ) ).

ABAP 随笔4新语法 forinforthenuntil - 封面图
ABAP 随笔4新语法 forinforthenuntil - 封面图

-TAB 热爱技术 享受生活

SAPTAB

关于作者:SAPTAB

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「ABAP随笔4新语法forinforthenuntil.md」整理生成,仅用于内部技术分享与学习交流。