• 2019.11.18【每天学点SAP小知识】Day4


    "今天学习一下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 ) ).

    for ls_data in gt_data 相当于 用一个临时变量 来 循环gt_data. 

    -Tab

  • 相关阅读:
    算法题---最长公共前缀
    算法练习题---罗马数字转int
    算法练习题---原地删除数组元素
    获取当前服务的IP和端口号
    算法练习题---回文数
    Java数学表示式解析工具- jeval
    Redis的安装与部署
    Centos开机自启动redis
    Java 7 的 7 个新的 “酷” 特性
    java7新特性——使用ThreadLocalRandom产生并发随机数
  • 原文地址:https://www.cnblogs.com/jxzhu/p/11881121.html
Copyright © 2020-2023  润新知