SAP/ABAP

AT FIRST, AT NEW, AT END OF, AT LAST

그녀는애교쟁이 2013. 9. 3. 18:11

개발할 때 가장 많이 쓰는 구문은 LOOP AT ~ ENDLOOP 구문입니다. 

다른 언어들과 다르게 Abap 에서는 LOOP 를 돌릴 때 간단하면서도 강력한 기능을 제공합니다.



 AT FIRST ~~~~ ENDAT.

 loop의 처음 한 번만 실행

 AT NEW  ~~~~ ENDAT.

 해당 필드의 값이  처음 값이면 실행.

 AT END OF ~~~ ENDAT.

 해당 필드의 값이 sort의 마지막값이면 실행

 AT LAST ~~~~~ ENDAT.

 loop의 마지막 한 번만 실행.


단, 사용하기전에 internal table을 반드시 Sort 시켜서 데이터가 꼬이는 일이 없도록 해야 합니다.


  SORT LT_P0002 BY PERNR ASCENDING.

  DATA: LT_CON TYPE TT_MEX0002,
        LS_CON TYPE TS_MEX0002.

  LOOP AT LT_P0002.
    AT NEW PERNR.
      CLEAR IT_MEXT0002.
      CLEAR: LT_CON, LT_CON[].
      IT_MEXT0002-PERNR = LT_P0002-PERNR.
    ENDAT.

    CLEAR LS_CON.
    LS_CON = LT_P0002.
    APPEND LS_CON TO LT_CON.

    AT END OF PERNR.
      IT_MEXT0002-CON[] = LT_CON[].
      APPEND IT_MEXT0002.
    ENDAT.

  ENDLOOP.


- 2013년 9월 15일 추가 내용 -


추가로 체크하고자 하는 필드는 가장 앞에 있어야 동작합니다.

(중간에 껴있는 필드는 인식하지 않습니다.)


- 끗 -

반응형

'SAP > ABAP' 카테고리의 다른 글

SAP 로그인 후 특정 T-code 수행  (0) 2013.09.05
PAI Chain  (0) 2013.09.05
Abap Editor 단축키  (0) 2013.09.04
Clear, Refresh, Free  (0) 2013.09.04
ABAP Loop ~ Into / Assigning  (0) 2013.09.04
모듈풀 프로그램 스크린 필드 옵션  (0) 2013.09.03
ABAP Concatenate 수행시 공백 처리  (0) 2013.09.03
Modal Dialog [X] 버튼 사용 불가  (0) 2013.09.03
Report 프로그램 변형 ( Variant )  (0) 2013.09.03
ALV Grid 색상표  (0) 2013.09.03