안녕하십니까?
다름이 아니라, TABLE CONTROL 로 들어가서 ,
제가 SEARCH버튼을 추가 했습니다.
그래서 USER-COMMAND 에 서치 버튼을 클릭 했을때, ALV 기본 기능에서 제공 하는 것 처럼
창이 하나 뜨면서 값을 받고 난 다음, 해당값을 입력시에 그 값으로 커서가 이동 되는 기능을 넣고 싶습니다.
근데 어떻게 로직을 구현해야 할지 잘 모르겠습니다.
도움 부탁 드리겠습니다. (상세한 답변 부탁 드립니다. 소스까지 예를 들어 주시면 더 고맙구요)
감사합니다.
댓글 2
-
썬바바
2009.07.03 00:11
-
지나가다
2009.07.03 02:10
TABLE CONTROL 메인화면100번에 현 데이터가
NUMBER 01
NUMBER 02
NUMBER 03
NUMBER 04 ....CONTINUE
이런식으로 구성되있다고 가정했을시 NUMBER 필드의 값을 입력받고 해당 라인으로 이동하는것을 구현한다고하면
NUMBER의 값을 받는 0101추가 스크린을 구현하고요 (100번 스크린의 PAI단에 해야겠죠. 예:CALL SCREEN 0110 STARTING AT 60 13 )
0101화면의 PAI단에 SET CURSOR FIELD g_field LINE g_fline 시 사용할 g_field 와 g_fline 를 구하는 로직을 넣으세요
TABLE CONTROL이 구현된 인터널테이블이 GT_TAB이라고 가정하면
LOOP AT gt_tab.
IF GT_TAB-NUMBER CS G_NUMBER. (G_NUMBER : 0101화면의 입력필드)
tc_01-top_line = sy-tabix.
g_field = '화면의 NUMBER 필드'.
g_fline = 1.
EXIT.
ENDIF.
ENDLOOP.
LEAVE TO SCREEN 0.
메인화면 100번의
LOOP AT GT_TAB WITH CONTROL tc_01 CURSOR tc_01-current_line.
MODULE move_screen_0100.
ENDLOOP.
이런식으로 구현됐다고 가정하고.
MODULE set_cursor. 를 추가하셔서 아래의 구문을 넣어보세요.
SET CURSOR FIELD g_field LINE g_fline.
스크린의 이동경로는 100 -> SEARCH버튼누름-> 101 PAI단 -> 100번 PBO단 이렇게되겠네요.
장황하게 써서 도움이 될런지.....
아 TYPE은 g_field LIKE help_info-dynprofld, g_fline TYPE i.
기본적으로 Table Control은 ALV와 틀립니다. ALV는 리스트를 보기 쉬고 조작하기 편하게 만들어진것이고
Table Control은 on-Line프로그램에서 돌아간다고 생각하면된다.
즉 On-Line 프로그램이르로 .서치버튼을 눌렀을때 서치할 조건을 입력하는 화면을 하나 구성해야 할것이고,
또하나다 해당 결과에 따라 위치를 이동시키는 로직을 Table로 Control로 심어야 합니다.
즉 해당결과가 Table Control의 몇번째 위치에 있는지 파악하고 해당 결과를 리스트의 TOP에 뿌려줄 로직을 구현해야 할것 같습니다.
--짧은 지식입니다만 도움이 되시길.----