고수님들 안녕하세요.
다름이 아니라..
화면에서 필드의 데이터 값을 변경할 경우 refresh 하면서 변경된 필드의 스크린 라인이 가장 아래로 내려가는 현상이
일어나서 다시 스크롤을 가지고 다시 내려서 값을 찾아야 하는 불편함이 있어서요.
데이터를 변경하여도 변경한 라인이 가장 아래에 보여지지 않고 처음 그 화면 그대로 있게 하는 함수나 방법이 없을까요.
댓글 4
-
홀로서는나비
2010.05.10 18:42
-
태사성
2010.05.10 21:19
홀로서는나비님 가르쳐주신 방법으로 해결했습니다. 감사합니다.
*..커서 위치 현재 위치로 고정.(리플레쉬 될때....)
CALL METHOD g_grid5->get_scroll_info_via_id
IMPORTING
es_row_no = gs_row_no
es_row_info = gs_row_info
es_col_info = gs_col_info.
CALL METHOD g_grid5->get_current_cell
IMPORTING
es_row_id = gs_row_id
es_col_id = gs_col_id
es_row_no = gs_row_n2.
g_grid5->refresh_table_display( ) .
CALL METHOD g_grid5->set_scroll_info_via_id
EXPORTING
is_row_no = gs_row_no
is_row_info = gs_row_info
is_col_info = gs_col_info.
CALL METHOD g_grid5->set_current_cell_via_id
EXPORTING
is_row_id = gs_row_id
is_column_id = gs_col_id
is_row_no = gs_row_n2.
* Completed
CALL METHOD cl_gui_cfw=>update_view.
CALL METHOD cl_gui_cfw=>flush. -
곰고양이
2010.05.11 22:59
좋은 정보 감사합니다!!
-
초보탈출
2010.09.15 00:37
저두 잘 참고했습니다~ 감사합니다~
안녕하세요.
말씀하신 내용을 미루어 클래스 ALV 같군요.
REFRESH_TABLE_DISPLAY 메소드의 앞 뒤로 다음의 메소드를 사용하시면 스크롤의 이동을 막을 수 있습니다.
GET_SCROLL_INFO_VIA_ID
SET_SCROLL_INFO_VIA_ID
그러나 이 메소드만으로는 덤프가 발생할 수 있기에 다음의 메소드들을 같이 사용하시는 것이 바람직합니다.
GET_SELECTED_ROWS
SET_SELECTED_ROWS
GET_CURRENT_CELL
SET_CURRENT_CELL_VIA_ID