" 제가 정리한 건 아니구요, 정리하신 분에게는 죄송^^;;;;;
AT NEW f.
ENDAT.
* f 이전의 필드 중 하나라도 New 일 때 탄다.
* f 이후의 문자형 필드는 깨진다.
* f 이전 필드까지로 sort 되어져야한다.
--------------------------------------------------------------------------
AT END OF f
ENDAT.
* f 이전 필드 모두의 중복이 끝나는 시점에 탄다.
* f 이후의 문자형 필드는 깨진다.
* f 이전 필드까지로 sort 되어져야한다.
--------------------------------------------------------------------------
AT FIRST.
ENDAT.
* loop의 처음에 한번 탄다.
--------------------------------------------------------------------------
AT LAST.
ENDAT.
* loop의 마지막에 한번 탄다.
--------------------------------------------------------------------------
ON CHANGE OF f.
ENDON.
* f의 변경이 발생할때 마다 탄다. 최초에도 탄다.
* 앞 필드와 관계없다. 문자형 필드라도 깨지지 않는다.
* f 필드로 sort 되어져야한다.
* Refresh가 되지 않는 단점이 있다.
댓글 6
-
김창훈
2007.09.12 12:02
-
윤훈태
2007.10.15 15:11
혹 아시는지....
각각의 위치에
SUM
을 누르시면
AT NEW ~ AT END 의 값 필드 합계가 계산되며, 두 구분의 어디든지 값은 동일
AT FIRST ~ AT LAST 의 값 필드 합계가 계산되며, 두 구분의 어디든지 값은 동일
-
삼주
2008.01.21 10:11
정말 감사합니다!!
-
카이사르
2008.06.03 18:54
감사합니다.
-
grace
2008.10.27 10:50
정말 감사합니다.
-
고구미
2008.10.27 15:28
감사합니다 ㅠ_ㅠ
* 사용실예 입니다.
* 뱃치번호별로 1건씩 생성하여야 한다.
DATA st_display LIKE gt_display.
SORT gt_display BY charg werks lgort umwrk umlgo matnr.
LOOP AT gt_display.
st_display = gt_display.
AT NEW charg.
PERFORM bdc_dynpro USING 'SAPMM07R' '0500'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RM07M-BWART'.
PERFORM bdc_field USING 'BDC_OKCODE' '=NPK'.
PERFORM bdc_field USING 'RM07M-BWART' '301'.
PERFORM bdc_field USING 'RM07M-WERKS' st_display-werks.
PERFORM bdc_dynpro USING 'SAPMM07R' '1500'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RKPF-WEMPF'.
PERFORM bdc_field USING 'BDC_OKCODE' '=OK'.
PERFORM bdc_field USING 'RKPF-WEMPF' st_display-charg.
PERFORM bdc_field USING 'RKPF-UMWRK' st_display-umwrk.
PERFORM bdc_field USING 'RKPF-UMLGO' st_display-umlgo.
ENDAT.
ADD 1 TO l_cnt.
IF l_cnt = 1.
PERFORM bdc_dynpro USING 'SAPMM07R' '0510'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'RESB-MATNR' st_display-matnr.
PERFORM bdc_field USING 'RESB-LGORT' st_display-lgort.
PERFORM bdc_field USING 'RESB-ERFMG' st_display-menge.
PERFORM bdc_field USING 'RESB-BDTER' p_datum.
ELSE.
PERFORM bdc_dynpro USING 'SAPMM07R' '0510'.
PERFORM bdc_field USING 'BDC_OKCODE' '=NPR'.
PERFORM bdc_dynpro USING 'SAPMM07R' '0510'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'RESB-MATNR' st_display-matnr.
PERFORM bdc_field USING 'RESB-LGORT' st_display-lgort.
PERFORM bdc_field USING 'RESB-ERFMG' st_display-menge.
PERFORM bdc_field USING 'RESB-BDTER' p_datum.
ENDIF.
AT END OF charg.
PERFORM bdc_dynpro USING 'SAPMM07R' '0510'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RESB-ERFMG'.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
CALL TRANSACTION 'MB21' USING it_bdcdata
OPTIONS FROM it_opt .
gt_display-msgty = sy-msgty.
CALL FUNCTION 'RKC_MSG_STRING'
EXPORTING
id = sy-msgid
mtype = sy-msgty
number = sy-msgno
par1 = sy-msgv1
par2 = sy-msgv2
par3 = sy-msgv3
par4 = sy-msgv4
IMPORTING
msg_lin = gt_display-msglin.
MODIFY gt_display TRANSPORTING msgty msglin
WHERE charg = st_display-charg.
CLEAR it_bdcdata[].
CLEAR it_bdcdata.
CLEAR l_cnt.
ENDAT.
ENDLOOP.