zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    "用脑思考"和"用心感知"
    Oracle 分页查询
    MySQL定时执行存储过程
    java商城小程序收藏
    巴士团小程序
    微信小程序this作用域
    Flink之API的使用(3):Source的使用
    Flink之API的使用(2):Transform算子的使用
    Flink之API的使用(1):Sink的使用
    Flink之基础内容(2):DataStream的创建和使用
  • 原文地址:https://www.cnblogs.com/jxzhu/p/11881121.html
Copyright © 2011-2022 走看看