左边啊

不努力,哪有光明

field symbol 一---已知字段名

DATABEGIN OF t_out2 OCCURS 0,
  f001 TYPE f, f002 TYPE f, f003 TYPE f, f004 TYPE f,
  avg1 TYPE f, avg2 TYPE f, avg3 TYPE f, avg4 TYPE f,
  END OF t_out2.

DATABEGIN OF t_out OCCURS 0,
  f001 TYPE f, f002 TYPE f, f003 TYPE f, f004(40TYPE c,
  END OF t_out.

FIELD-SYMBOLS: <fs>,<fs1>.
DATA: gv_avg(40),
      t_avg(40).
DATA: gv_idx TYPE n.

t_out2-f001 '80'.
t_out2-f002 '60'.
t_out2-f003 '50'.
APPEND t_out2.

t_out-f001 '8'.
t_out-f002 '6'.
t_out-f003 '5'.
APPEND t_out.



LOOP AT t_out2.


  DO TIMES.
    gv_idx = sy-index.
    CONCATENATE 't_out2-f00'gv_idx INTO gv_avg.
    ASSIGN (gv_avgTO <fs>.
    <fs> = <fs> / 2.

  ENDDO.
  MODIFY t_out2.
ENDLOOP.

LOOP AT t_out.

  DO TIMES.
    gv_idx = sy-index.
    CONCATENATE 't_out2-f00'gv_idx INTO gv_avg.
    ASSIGN (gv_avgTO <fs>.
    CONCATENATE 't_out-f00'gv_idx INTO t_avg.
    ASSIGN (t_avgTO <fs1>.
    <fs1> = <fs>.
    MODIFY t_out.

  ENDDO.

ENDLOOP.

 

IS BOUND:用于检查一个引用变量是否指向了一个有效的引用。帮助文档特意提到,如果一个引用指向的是一个栈上申请的变量,那么这个变量会随栈的销毁而被销毁,因此指向其的引用不再有效。

IS INITIAL: 用于检查一个变量的值是否为其数据类型对应的初始值。

比如我定义一个引用变量但不对其赋值,则IS INITIAL判断一定为abap_true.

 

IS ASSIGNED: 对于检测的field symbol,该关键字判断该field symbol是否分配有内存区域。

posted on 2020-07-01 10:20  左佐佐  阅读(242)  评论(0编辑  收藏  举报

导航