이것좀 봐주세요 도저히 노력해봐도 잘 안되네요
AT END OF 써서 노력해 보았는데 잘안되네요
특히 GT_ITAB02에 MENGE2 가 없다면 문제가 없는데
WERKS MATKL 그룹핑기준으로 MENGE1 과 MENG2를
나열하는게 힘듭니다.
GT_ITAB01
WERKS MATKL MATNR MENGE BWART MEINS
============================================
1100 100 100001 100.00 101 KG
1100 100 100001 50.00 102 KG
1100 200 100002 150.00 101 KG
1100 200 100002 20.00 531 KG
1100 200 100002 10.00 532 KG
1200 300 100003 100.00 101 KG
1200 300 100003 50.00 531 KG
WERKS 와 MATKL 그룹핑 기준으로
GT_ITAB02-MENGE1 = BWART가 101(+)와 102(-)일 경우 MENGE수량을 SUM한다
GT_ITAB02-MENGE2 = BWART가 531(+)와 532(-)일 경우 MENGE수량을 SUM한다
GT_ITAB02
WERKS MATKL MENGE1 MENGE2 MEINS
============================================
1100 100 50.00 0.00 KG
1100 200 150.00 10.00 KG
1200 300 100.00 50.00 KG
댓글 3
-
신종철™
2007.10.01 20:28
-
벤벤토
2007.10.01 20:42
LOOP AT GT_ITAB01 INTO GS_ITAB01.
AT END OF WERKS.
ENDAT.
AT END OF MATKL.
SUM.
MOVE-CORRESPONDING GS_ITAB01 TO GS_ITAB02.
MOVE GS_ITAB01-MENGE TO GS_ITAB02-MENGE1.
APPEND GS_ITAB02 TO GT_ITAB02.
ENDAT.
CLEAR GS_ITAB01.
ENDLOOP.
이렇게 하면 GT_ITAB02에 WERKS나 MATKL 변할때 기준으로 MENGE를 SUM해서 GT_ITAB02에 MENGE1으로 APPEND 는 가능한데
MENGE2가 문제네요,, 그리고 101 102를 더하기 뺴기 하고 531 나 532 더하기 뺴기 하는 로직을 어디다 놓아야 하는지 조언좀
이게 생각보다 쉽지 않네요 GT_ITAB02에 MENGE1 만 있으면 쉬운데 MENGE2가 있어서.............그것도 WERKS나 MATKL이 변할때
SUM해서 넣어야 하니 어렵네요 , 죽갔어요...
-
백혜정
2007.10.02 00:02
대충 적은 PSEUDO CODE입니다만, 참고하세요.
LOOP AT GT_ITAB01 INTO GS_ITAB01.
MOVE-CORRESPONDING GS_ITAB01 TO GS_ITAB02.
CASE GS_ITAB01-BWART .
WHEN '101' OR '101'.
GS_ITAB02-MENGE1 = GS_ITAB01-MENGE.
WHEN '531' OR '532'
GS_ITAB02-MENGE2 = GS_ITAB01-MENGE.
ENDCASE.
COLLECT GS_ITAB02 INTO GT_ITAB02.
ENDLOOP.
Work Area를 하나 두시고
At end of 위쪽에서 이동유형에 따라 더하기 빼기를 계산을 하시고
At end of 안쪽으로 들어갈 경우 Work Area에 계산되어 있는 값을 찍어주면 될것 같습니다.