테이블 컨트롤 만들고 있는데요 테이블 컨트롤의 자료를 화면에선 10라인까지 보이게 해놨습니다.
테이블에 데이터가 100개가있다면 세로 스크롤이 쭉 생겨서 스크롤을 내리거나 마우스휠로 내리면 내려오는데요
문제는 쭉~~ 내려서 현재 화면에 보이는 자료들이 어디쯤에 있다라는걸 알기가 힘들더라구요..
자료가 많아지면 많아질수록 그렇겠죠..
그래서 스크린에 자료의 라인수를 표시하는 필드를 만들었습니다.
gt_top_line , gt_last_line 두개를 만들어서 화면에선 "000 - 000" 이렇게 보이게 했는데요
문제는 gt-top_line = tc-current_line ,, gt-last_line = gt_top_line + 10.
이런식으로 코딩을 해서 해봤는데 적용이 잘 안되더군요..
LOOP AT itab WITH CONTROL tc
CURSOR tc-current_line.
ENDLOOP.
디버깅 걸어보니 저부분때문에 tc-current_line 이게 제어가 쉽지 않더라구요..
변수로
sy-tabix 이걸 줘보기도 했는데 역시나 문제가 생기네요 (저건 자료가 10개가 안되면 런타임 에러가 나더군요)
깔끔하게 현재 화면상에 보여지는 테이블컨트롤의 라인수를 나타낼수 있는 방법이 없을까요?
gt-top_line = tc-top_line --> 화면에 보여 지는 라인중 맨 윗라인의 테이블 인덱스
tc_current_line = sy-stepl + (tc-top_line - 1). --> loop 구문에서 현재 실행 되는 라인번호(테이블 인덱스 번호)
gt-last_line = gt_top_line + 10.
이걸로 하시면 되겠네요. 한번 확인해 보세요..그리고 help에서 "controls"로 검색을 하시면 테이블 컨트롤에 사용되는 변수가 나타납니다.
아래는 help에 나오는 내용 입니다.
즐밥하세요..