DATA wa1 TYPE spfli.
wa1-carrid = 'AA'.
wa1-connid = ' '.
wa1-cityfrom = 'SEOUL'.
wa1-cityto = 'PUSAN'.
DO 10 TIMES.
wa1-carrid = sy-index.
WRITE:/ wa1-carrid, wa1-connid, wa1-cityfrom, wa1-cityto.
ENDDO.
위문장을 실행하니 결과를 아래의 처럼 나오던데
결과>
1 0000 SEOUL PUSAN
2 0000 SEOUL PUSAN
3 0000 SEOUL PUSAN
4 0000 SEOUL PUSAN
5 0000 SEOUL PUSAN
6 0000 SEOUL PUSAN
7 0000 SEOUL PUSAN
8 0000 SEOUL PUSAN
9 0000 SEOUL PUSAN
10 0000 SEOUL PUSAN
위 로직상과 약간 다르게 나오는것 같은데
제 생각에는
AA 공백 SEOUL PUSAN
. .
. .
. .
이런 식으로 나올 줄 알았는데 어떻게 저런 결과 나오는지 이해가 안갑니다.
답변부탁합니다.
댓글 5
-
쭈니
2009.01.22 23:01
-
띵호아빠
2009.01.22 23:46
wa1-carrid = sy-index <- DO ~ENDDO 의 Index 값 이 나온거고,
wa1-connid <-- Type 이 NUMC 라서 0000 이 나온겁니다.
-
아카드05
2009.01.23 00:06
생각하시던 결과대로 나오게 하려면
DO ~ ENDDO 사이의 'wa1-carrid = sy-index.' 구문을 빼야하고,
공백 대신 0000 이 출력되는건 WA1가 참조하고있는 spfli의 connid 필드 type이 numc인 이상 0000으로 출력될 수 밖에 없습니다.
-
덩콘
2009.01.23 01:06
초보이신거 같아서 저도 초보지만 답변 남겨봅니다
wa1-carrid = sy-index. -> 여기서 sy-index는 간단히 말하자면 말그대로 인덱스 즉 순차적으로 1씩 늘어나죠
그래서 1 2 3 4 5 ...... 10 이런결과가 제일 앞줄에 나오구요
자세한건 시스템 필드라고 검색하시면 자료 많이 나올겁니다
connid는 윗분 말씀대로 type이 numc이기 때문에 공백일경우 디폴트값이 0000이 나오게 됩니다
저도 처음에 저부분이 의아했는데 다른 타입들은 디폴트 값이 없는걸로 알고있는데
숫자 형식의 필드들은 디폴트로 0을 가지더라구요
혹시 제 답변중에 틀린부분있으면 첨삭 바랍니다 저도 초보라서 ㅎㅎ
-
설련
2009.01.23 03:52
아카드님과 덩콘님의 말씀이 맞습니다.
가장 빠르고 이해하시기편한건 디버깅이 최고라고 생각합니다..
디버깅을 한번 해보시지요