안녕하세요.
이제 막 ABAB을 배운 신입 입니다.
여기 저기 자료를 찾아보고 있는데 생각 보다 쉽지 않네요 ㅜㅜ
다름이 아니라, LT_DATA 라는 인터널 테이블 값 안에 표와 같이 값이 있습니다.
위 값을 GT_DATA 라는 인터널 테이블에 넣으려고 하는데 GT_DATA에는 1줄로 표현을 해야되거든요.
그래서 MODIFY를 했더니 맨 윗줄만 GT_DATA로 넘어가고 나머지 2, 3 째줄은 반영이 안되네요 ㅜ
마지막 줄 기준? 데이터를 GT_DATA에 넣고 싶은데 어떻게 하면 좋을까요?
<LT_DATA>
댓글 4
-
Hwable
2020.04.23 01:55
-
죠죠
2020.04.23 21:16
네, 답변 감사합니다.
화면상에 MEND00 ~ MENGE05 까지만 기재 했는데 실제 MENGE20 까지 있거든요 ㅎㅎ
아래 내용처럼 해결은 했습니다.
고맙습니다.
-
죠죠
2020.04.23 21:15
해당 내용 자문 자답 합니다.
혹시 동일한 내용으로 궁금해 하실 분들이 계실 수도 있을 것 같아서요..^^;
두가지 방법이 있는데,
첫번쨰는,
MENGE05 끝에 TTL 필드를 추가하여 합산을 구하고 SORT LT_DATA BY TTL 내림차순으로 정리 합니다. (그럼 TTL 기준 값이 많은게 올라가겠죠)
이후 DELETE LT_DATA FROM 2 TO 99 (99열밖에 없다는 가정하에) 하여 LT_DATA의 첫번째 줄을 남기고 모두 삭제 처리합니다.
두번째는,
별도의 LV_LINE 라인을 선언합니다. (숫자 타입으로..)
DATA : LV_LINE TYPE I.
LOOP 구문 안에서 DESCRIBE TABLE LT_DATA LINES LV_LINE 구문으로 라인수를 반환받고, (값이 3개니까 LV_LINE은 값이 3이겠죠)
READ TALBE LT_DATA INDEX LV_LINE으로 값을 찾을 때 LV_LINE의 값을 가져오게 하면 됩니다.
혹시 도움이 되실 수 있어 남겨 봅니다.
고수님들 많은 도움 부탁 드려요 ~
-
racooooo
2020.08.20 22:23
modify lt_data from gt_data index lines( lt_data ).
이렇게 하시면 lt_data를 sort하지 않아도 가장 아래에 있는 라인을 가져오게 됩니다.
LT_DATA에서 GT_DATA 로 이동하려는 데이터가 '선택되는 기준'이 필요할 것 같습니다.
1) MENGE00, MENGE02, MENG04 값이 모두 있는 데이터를 선택할 것인지, (IF 조건문)
2) MENGEXX 필드 중 XX가 가장 큰 숫자의 필드의 데이터가 있으면 그 행을 선택되게끔 할 것인지 말이죠. (필드심볼 활용)
그 행이 정해지면 READ TABLE 로 읽어서 GT_DATA 로 APPEND 하면 될 것 같습니다.