먼저 아밥 잭님에게는 송구스럽게도 또 질문을 드리네요ㅠㅠ
그림은 테이블에서 데이터를 보는 화면이구요.
제가 만드는 프로그램은 GJAHR과 PERBL에 조건을 줘서 테이블에서 조건에 맞는 조건을 추출하여
수정,삽입,삭제등이 가능하게 하고 다시 원래의 테이블에 저장시키는 겁니다.
1. 문제는 사진의 빨간테두리 안의 필드가 나오지 않게 즉 보이지 않게 저장되어야 하구요
2. 아밥 잭님꼐서 감사하게도 코딩을 알려주셔서 했는데 파란색칸의 ROW가 같은 BURKS내에서 가장 밑에 줄이
가장 위에 줄에 하나 더 생기네요. ITMNO은 빈칸이 되면서요.
도와주세요.
살려주세요.
저 신입인데 짤리면 어떻게요 ㅠ
살려주세요 고수님들.ㅠ
ITMNO할당 코딩을 보여드리겠습니다. (추후, 아밥잭님께서 기분이 나쁘시다거나 말씀해주시면 지우도록하게습니다.ㅜ)
DATA : L_CNT1 TYPE i,
L_CNT2 TYPE i.
CLEAR : L_CNT1, L_CNT2.
LOOP AT GT_DISP.
CASE GT_DISP-BUKRS.
WHEN '2010'.
L_CNT1 = L_CNT1 + 1.
GT_DISP-ITMNO = L_CNT1.
WHEN '2020'.
L_CNT2 = L_CNT2 + 1.
GT_DISP-ITMNO = L_CNT2.
ENDCASE.
MOVE-CORRESPONDING GT_DISP TO GT_1011. " 같은 필드명을 가지고 있으면 한번에 값을 넣어 줌.
APPEND GT_1011.
CLEAR : GT_DISP, GT_1011. "GT_ 헤더 CLEAR
ENDLOOP.
댓글 10
-
gurebear
2010.08.27 00:30
-
아밥 잭
2010.08.27 00:37
일단, 이렇게 해보세요.
그리고 이해가 안가는데, 저장할 때 ITMNO를 저장 안하나요?
그러면 왜 ITMNO를 구하나요?
ITMNO를 화면에서 보는것인지 아니면 테이블에 저장해야하는지 좀 알려주세요.
아래에 인터널테이블을 두개 적은이유는 하나는 ITMNO를 없는것이고,
GT_1011는 ITMNO필드가 있는 인터널 테이블입니다.
그러니,,, 용도에 따라서 GT_DISP 또는 GT_1011를 사용하세요.
예)
1. ITMNO가 필요없이 저장할 때.
INSERT 테이블 FROM TABLE GT_DISP.
2. ITMNO가 필요한것 저장할 때.
INSERT 테이블 FROM TABLE GT_1011.
하나는
DATA : L_CNT1 TYPE i,
L_CNT2 TYPE i.
CLEAR : L_CNT1, L_CNT2.
CLEAR : GT_1011, GT_1011[].
LOOP AT GT_DISP.
MOVE-CORRESPONDING GT_DISP TO GT_1011.
CASE GT_DISP-BUKRS.
WHEN '2010'.
L_CNT1 = L_CNT1 + 1.
GT_1011-ITMNO = L_CNT1.
WHEN '2020'.
L_CNT2 = L_CNT2 + 1.
GT_1011-ITMNO = L_CNT2.
ENDCASE.
APPEND GT_1011.
CLEAR : GT_DISP, GT_1011.
ENDLOOP. -
gurebear
2010.08.27 00:45
흠.저는 초보라. 사수님이 마침 휴가셔서 물어볼 대가 없어서요. 잭님은 큰 힘이 됩니다.ㅠㅠ
우선 화면에 보이는 테이블에선 ITMNO가 나오면 안되구요
저 화면의 테이블중에 BUKRS만 KEY로 잡혀있는데 BUKRS값에는 2010, 2020만 들어가게 됩니다.
그래서 자료를 추출 수정 후 저장할 때 BUKRS만 KEY로 잡혀서 데이터가 2010, 2020 하나씩만 들어가게 되드라구요. 끝내것만.
그래서 ITMNO로 KEY하나 더 주어서 각 ROW를 구분하여 저장시 합쳐지지 않도록 하기위한 것입니다.
고로 화면에 출력하지는 않구요.
아밥 잭님..고맙습니다 ㅠㅠ
아무것도 아닌 저에게 이런 도움을 주시고..ㅠㅠ
-
아밥 잭
2010.08.27 00:57
음,,,지금 보이는 화면이 테이블을 조회하신것 같은되요.
테이블에서는 보이지 않게하는거은 se11에서 조건을 주면되는데요.
제가 알고 싶은것은 테이블에 저장될때 bukrs하나로 저장을 할것인지 아니면 bukrs을 itmno별로 하실것인지를
알려주세요. 아시다시피 key는 중복이 안됩니다.
혹시, 테이블에 저장은하돼 bukrs를 중복을 허용하게 저장하고 싶은신것인가요?
-
gurebear
2010.08.27 01:01
네!!! 맞아요!!!! BUKRS가 중복이되도 ROW별로 저장하게 하고 싶어요!!
죄송해요..초보라 언어도 낯설고 용어도 낯설어서 잭님만 고생하시네요..
-
아밥 잭
2010.08.27 01:05
itmno는 key로 안잡고 넣고 싶다는것인가요? -
gurebear
2010.08.27 01:15
ITMNO를 KEY로 잡아야만. 중복이 안되서 ROW가 다 들어가네요.
흠.
잭님이 말씀해주신데로 SE11가서 칼럼선별을 통해 안보이게 했어요.
감사합니다..ㅠㅠ
잭님..ㅠㅠ
정말 감동이네요 ㅠㅠ
세상은 아직 밝구나..ㅠㅠ
-
아밥 잭
2010.08.27 01:18
아까, itmno가 잘못들어가는것은 해결되었나요?
아밥은 clear의 위치나 move-corresponding의 위치에 따라서
append위치에 따라서 간혹 의외의 결과가 나옵니다.
조금이라도 도움이 되었다면 좋겠네요.
-
gurebear
2010.08.27 01:28
네^^move-corresponding의 위치를 조금 변경하고
마지막에 알려주신 clear : 1011, 1011[]를 쓰니까 바로 해결됬어요!!
아밥 잭님
정말 갑사드려요 ㅠㅠ
-
낙천
2010.08.27 01:30
위 Loop문으로 itmno가 공백으로 들어갈일은 없어보이는데요 음
혹시 현 Loop문을 타기전에 GT_1011에 itmno가 빈 Row가 들어가 있는지 확인해보세용~
디버깅을 돌려보니 마지막에 APPEND할 때 문제 현상이 일어납니다..
도저히 모르겠네요 ㅠㅠ