前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ABAP随笔4- 新语法 for in / for then until

ABAP随笔4- 新语法 for in / for then until

作者头像
Tab Zhu
发布2022-06-23 15:11:47
1K0
发布2022-06-23 15:11:47
举报
文章被收录于专栏:TAB的coding生活TAB的coding生活

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

代码语言:javascript
复制
"今天学习一下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_matnr2
DATA(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 ) ).

-TAB 热爱技术 享受生活

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SAP TAB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档