질문이 제목그대로네요.. 부연해서 상세 질문을 할려고해도..
로컬변수 선언해서 루핑안에 + 1 하면 간단하지만 루핑을 안하고도 방법이 있는지요?
댓글 5
-
gwangchul
2009.01.18 06:58
-
CoMAN
2009.01.19 18:37
특정한 필드에 의한 소트가 아니라면 sy-tabix를 활용하세요....
예) read table itab index 100. --> 100번째 라인을 읽어라...
알고 계시죠?
이처럼 loop문에서도 internal table의 index를 활용하시면.....
-
카츠
2009.01.19 20:29
gwangchul님 CoMAN님 답변 주셔서 감사합니다.. 제 질문을 좀더 상세히 해드리자면
단순 조회하는 ALV조회 프로그램에서 굳이 퍼포먼스를 떨어뜨리는 Loop을 안쓰고도
1~n번까지의 순번을 넣을수있느냐 하는거였습니다.
-
양군
2009.01.20 20:25
결국은 OUTPUT용 인터널 테이블의 값을 수정하지 않고 그 값을 던져주면 ALV에서 알아서 LINE번호를 출력해주기를 바라시는 거죠?
그렇다면 EVENT를 이용하는 방법이 있겠지만 LOOP을 도는 거 못지 않게 성능에 좋지 않은 영향을 줄 것 같은데요..
단순 조회용 프로그램이라면 수 만건은 아닐테니(설마 수 만 건을 보기 위해서 만들지는 않겠죠) 그냥 LOOP을 이용해도 성능에 큰 영향을 주지 않습니다. 대상 인터널 테이블의 필드가 많다면 MOIDFY시 TRANSPORTING <필드명> 옵션을 사용하면 그나마 성능 저하를 줄이는 방법입니다.
-
카츠
2009.01.21 00:17
추가 옵션을 넣는 바람에 어쩔수없이 Loop을 쓰고 말았습니다.. 양군님이 말씀하신 방법도 한번 실험해봐야겠네요 ^^ 감사합니다 ^^
아니면 순번을 넣지 말고 출력하는 table을 선언할때 직접 순번을 정해보세요.