Internal Table에서 AT FIRST, AT NEW, AT THE END OF, AT LAST, SUM 사용

2455 단어

내부 테이블 루프 트리거 조건 설정 AT...END AT


이 문법은 이벤트 제어 함수로 LOOP 순환 문장에 적용되며, 내표의 데이터 변화 이벤트를 가져오는 데 사용됩니다.
이 기능을 분명히 하려면, 아래의 완전한 예가 가장 좋은 학습 지름길이다.
AT FIRST: 내부 테이블의 첫 번째 행을 순환할 때 실행되는 코드를 터치합니다.한 번만 실행합니다.
AT LAST: 내부 테이블의 마지막 행 데이터를 순환할 때 코드를 실행합니다.LOOP에서 할 일을 다 하고 나서야 그것을 실행하는 것이다.
AT NEW F1: 필드 F와 F의 왼쪽에 있는 모든 필드의 데이터가 이전 행의 데이터와 일치하지 않으면 코드를 실행합니다.먼저 한 줄을 실행하고 두 번째 줄과 첫 번째 줄의 값이 다르면 AT END OF F1을 실행한다.
값이 같으면 AT NEW F1 루프를 계속합니다.
AT END OF F1: 필드 F와 F의 왼쪽에 있는 모든 필드의 데이터가 다음 행의 데이터와 일치하지 않을 경우 코드를 실행합니다.
AT....End AT 문 블록 안: 각 행의 데이터를 순환할 때 실행됩니다.
*&---------------------------------------------------------------------*
*& Report  Z_WUWEI_0017
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  z_wuwei_0017.

DATA: BEGIN OF itab OCCURS 0,
      f1 TYPE i,
      f2(6) TYPE c,
      f3(10) TYPE n,
      f4(16) TYPE p DECIMALS 2,
      END OF itab.
DATA: sub_tot(10) TYPE p DECIMALS 3.
**--1
itab-f1 = 1.
itab-f2 = 'ONE'.
itab-f3 = 10.
itab-f4 = '1000.00'.
APPEND itab.
CLEAR itab.
itab-f1 = 1.
itab-f2 = 'ONE'.
itab-f3 = 20.
itab-f4 = '2000.00'.
APPEND itab.
CLEAR itab.
itab-f1 = 1.
itab-f2 = 'ONE'.
itab-f3 = 30.
itab-f4 = '3000.00'.
APPEND itab.
CLEAR itab.
*--2
itab-f1 = 2.
itab-f2 = 'TWO'.
itab-f3 = 10.
itab-f4 = '1000.00'.
APPEND itab.
CLEAR itab.
itab-f1 = 2.
itab-f2 = 'TWO'.
itab-f3 = 20.
itab-f4 = '2000.00'.
APPEND itab.
CLEAR itab.
*-- 3
itab-f1 = 3.
itab-f2 = 'THREE'.
itab-f3 = 10.
itab-f4 = '1000.00'.
APPEND itab.
CLEAR itab.
itab-f1 = 3.
itab-f2 = 'THREE'.
itab-f3 = 20.
itab-f4 = '2000.00'.
APPEND itab.
CLEAR itab.
SORT itab BY f1.

LOOP AT itab.
  AT FIRST.
    WRITE: /35 ' MATERIAL DETAILS:'.
    ULINE.
  ENDAT.
  AT NEW f1.
    WRITE: / 'DETAILS OF MATERIAL:' COLOR 7 , itab-f1.
    ULINE.
  ENDAT.
  WRITE: / itab-f1, itab-f2, itab-f3, itab-f4.
  sub_tot = sub_tot + itab-f4.
  AT END OF f1.
    ULINE.
    WRITE: / 'SUB TOTAL :' COLOR 3 INVERSE ON, sub_tot COLOR 3 INVERSE ON.
    CLEAR sub_tot.
  ENDAT.
  AT LAST.
    SUM.
    ULINE.
    WRITE: 'SUM:', itab-f4.
    ULINE.
  ENDAT.
ENDLOOP.

좋은 웹페이지 즐겨찾기