AT的用法

AT FIRST: 第一次循环时.
AT LAST: 最后一次循环时.
AT NEW f: 在一组字段的开头时. 这组字段里f和f左边的内容要完全相同.
AT END OF f: 在一组字段的结尾时. 字段同上.


*&---------------------------------------------------------------------*
*& Report  ZPAB06_T_AT                                                 *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  zpab06_t_at LINE-COUNT 10.

DATA: BEGIN OF line,
  col1 TYPE c,
  col2 TYPE i,
  col3 TYPE i,
END OF line.

DATA itab LIKE STANDARD TABLE OF line WITH HEADER LINE.

line-col1 = 'A'.
DO 3 TIMES.
  line-col2 = 1.
  line-col3 = sy-index ** 1.
  INSERT line INTO TABLE itab.
ENDDO.

line-col1 = 'B'.
DO 3 TIMES.
  line-col2 = 2 * sy-index.
  line-col3 = ( 2 * sy-index ) ** 2.
  INSERT line INTO TABLE itab.
ENDDO.

SORT itab BY col1 col2.

PERFORM output_last.

*&--------------------------------------------------------------------*
*&      Form  output_end
*&--------------------------------------------------------------------*
*       at end of
*---------------------------------------------------------------------*
FORM output_end.
  LOOP AT itab INTO line.
    WRITE: / line-col1, 10 line-col2, 20 line-col3.
    AT END OF col2.
      SUM.
      ULINE.
      WRITE: / 'TOTAL:', 10 line-col2, 20 line-col3.
      SKIP.
    ENDAT.
  ENDLOOP.
ENDFORM.                                                    "output_end

*&--------------------------------------------------------------------*
*&      Form  output_new
*&--------------------------------------------------------------------*
*       at new
*---------------------------------------------------------------------*
FORM output_new.
  LOOP AT itab INTO line.
    WRITE: / line-col1, 10 line-col2, 20 line-col3.
    AT NEW col2.
      SUM.
      ULINE.
      WRITE: / 'TOTAL:', 10 line-col2, 20 line-col3.
      SKIP.
    ENDAT.
  ENDLOOP.
ENDFORM.                                                    "output_new

*&--------------------------------------------------------------------*
*&      Form  output_last
*&--------------------------------------------------------------------*
*       at last
*---------------------------------------------------------------------*
FORM output_last.
  LOOP AT itab INTO line.
    WRITE: / line-col1, 10 line-col2, 20 line-col3.
    AT LAST.
      SUM.
      ULINE.
      WRITE: / 'TOTAL:', 10 line-col2, 20 line-col3.
      SKIP.
    ENDAT.
  ENDLOOP.
ENDFORM.                                                    "output_last

*&--------------------------------------------------------------------*
*&      Form  output_first
*&--------------------------------------------------------------------*
*       at first
*---------------------------------------------------------------------*
FORM output_first.
  LOOP AT itab INTO line.
    WRITE: / line-col1, 10 line-col2, 20 line-col3.
    AT FIRST.
      SUM.
      ULINE.
      WRITE: / 'TOTAL:', 10 line-col2, 20 line-col3.
      SKIP.
    ENDAT.
  ENDLOOP.
ENDFORM.                                                   "output_first
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值