안녕하세요 답변주신 모든 분들의 덕분으로 해결 직전입니다.
지금 자료는 다 받아오는데요
문제가 txt_wr, txt_etc, txt_dict 이 세개 필드 길이를 200씩 주고 있는데요
아래보시는바와같이 4등분으로 쪼개서 데이타문에 50길이씩 txtdict는 25길이씩 정의해주고 있습니다.
그런데 이자료는 스크린에 불러오질 못하네요
무슨문제일까요? 소스상에 문제인가요?
CONCATENATE 이구문을 써도 안나오네요
필드 전부 다불러오는데 위 3개 필드만 못불러온다는 것입니다.
CLEAR ZTEXT1.
CLEAR GT_ROW_TABLE[].
CALL METHOD GRID->GET_SELECTED_ROWS IMPORTING ET_INDEX_ROWS =
GT_ROW_TABLE[].
CALL METHOD CL_GUI_CFW=>FLUSH.
* only one selected row!
READ TABLE GT_ROW_TABLE INDEX 1.
IF SY-SUBRC = 0.
READ TABLE GT_ZOUTPUT INDEX GT_ROW_TABLE-INDEX.
IF SY-SUBRC = 0.
READ TABLE GT_ZTEXT1 WITH KEY DOCNAME = GT_ZOUTPUT-DOCNAME.
IF SY-SUBRC = 0.
ZTEXT1 = GT_ZTEXT1.
ELSE.
CONCATENATE T_TXT_WR1 T_TXT_WR2 T_TXT_WR3 T_TXT_WR4 INTO ZTEXT1-TXT_WR.
CONCATENATE T_TXT_ETC1 T_TXT_ETC2 T_TXT_ETC3 T_TXT_ETC4 INTO ZTEXT1-TXT_ETC.
CONCATENATE T_TXT_DICT1 T_TXT_DICT2 T_TXT_DICT3 T_TXT_DICT4 INTO ztext1-TXT_DICT.
SELECT SINGLE * FROM ZTEXT1 WHERE DOCNAME = GT_ZOUTPUT-DOCNAME
and name = gt_zoutput-name
AND DOCDATE = GT_ZOUTPUT-DOCDATE.
IF SY-SUBRC = 0.
GT_ZTEXT1 = ZTEXT1.
ELSE.
ENDIF.
ENDIF.
ENDIF.
CALL SCREEN 901 STARTING AT 10 10.
ELSE.
MESSAGE I000(0K) WITH TEXT-054 SPACE SPACE SPACE.
ENDIF.
댓글 4
-
버미!
2010.11.03 21:53
-
미르모
2010.11.03 23:10
님.. T_TXT_WR1 T_TXT_WR2 --> 길이를 50으로 주고
ZTEXT1-TXT_WR --> 길이를 200으로 줬다는 말씀??
근데 T_TXT_WR1 ~ T_TXT_WR4 값들은 어디서 받나요?? 이 값들을 받는 설정이 없는데..
CONCATENATE 앞부분에 중단점 설정해놓고요...프로그램 실행시켜서 조건 다 주고 실행버튼 누르기 전에 Tcode 입력하는 부분에
/h 주고 실행..눌러보세요... 그럼 실행되면서 중단점 걸린데서 멈춥니다^^
각 변수 더블클릭해서 들어오는 값 확인해 보세요..
-
특정단어
2010.11.03 23:21
음.. 구조적으로다가 문제가 쪼끔 있어보이는데요??
조급해하지 마시고, 차 한잔 하시면서... 머리 속에 요 부분에 대한 흐름도를 다시 한 번 그려보시죠..
그러면 기껏 ZTEXT1에 concatenate 하고 나서 바로 밑에서 select문을 날려버리는 "만행"은 저지르지 않으실 것 같습니다. ㅋㅋ
그리고.. 읽다 보니까 결국 값이 들어가야 될 itab이 GT_ZTEXT1 인지, ZTEXT1 인지 것두 헷갈리네요. @.@a
찬찬히 보세요.. ^^
-
유정a
2010.11.04 16:49
감사합니다 완료했어요^^
디버깅 해보시면 왜 안나오는 지 알수 있을 텐데~~