LOOP AT内表循环事件块 程序实例

REPORT zdemo_0006.
*声明一个结构
DATA: BEGIN OF gs_alv,
        va1 TYPE char2,
        va2 TYPE char2,
        va3 TYPE char2,
        va4 TYPE char2,
      END OF gs_alv.
*声明内表
DATA: gt_alv LIKE TABLE OF gs_alv.
*赋值宏
DEFINE append_va.
  gs_alv-va1 = &1.
  gs_alv-va2 = &2.
  gs_alv-va3 = &3.
  gs_alv-va4 = &4.
  APPEND gs_alv TO gt_alv.
  CLEAR gs_alv.
END-OF-DEFINITION.
*给内表赋值
append_va '11' '11' '11' '11'.
append_va '11' '11' '11' '22'.
append_va '22' '11' '11' '33'.
append_va '11' '22' '33' '44'.
*输出表内容:
LOOP AT gt_alv ASSIGNING FIELD-SYMBOL(<fs_alv1>).
  WRITE:/1 <fs_alv1>-va1,5 <fs_alv1>-va2,9 <fs_alv1>-va3,13 <fs_alv1>-va4.
ENDLOOP.
*遍历内表,测试on change of 。。。。endon语句,输出触发的那一行
WRITE:/ sy-uline.
WRITE:/'on change of'.
LOOP AT gt_alv ASSIGNING FIELD-SYMBOL(<fs_02>).
  ON CHANGE OF <fs_02>-va3.
    WRITE:/1 <fs_02>-va1,5 <fs_02>-va2,9 <fs_02>-va3,13 <fs_02>-va4.
  ENDON.
ENDLOOP.
WRITE:/ sy-uline.
WRITE:/'AT NEW '.
LOOP AT gt_alv ASSIGNING FIELD-SYMBOL(<fs_01>).
  AT NEW va3.
    WRITE:/1 <fs_01>-va1,5 <fs_01>-va2,9 <fs_01>-va3,13 <fs_01>-va4.
  ENDAT.
ENDLOOP.

WRITE:/ sy-uline.
WRITE:/'AT END OF '.
LOOP AT gt_alv ASSIGNING FIELD-SYMBOL(<fs_03>).
  AT END OF va3.
    WRITE:/1 <fs_03>-va1,5 <fs_03>-va2,9 <fs_03>-va3,13 <fs_03>-va4.
  ENDAT.
ENDLOOP.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值