: 리스트 조회 시 내가 원하는 위치에 커서가 있게 하는 것!
-> 새로운 행 추가 (ADD) 할 때 '사용자'에게 편리함.
-> 첫 행 첫 열을 가리키고 싶을 땐 DEFAULT 이기에 해당 메쏘드 사용 안해도 됌.

1. CLASS 선언
CLASS LCL_ALV_GRID DEFINITION DEFERRED.
*&---------------------------------------------------------------------*
*& Class lcl_alv_grid
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
CLASS LCL_ALV_GRID DEFINITION INHERITING FROM CL_GUI_ALV_GRID.
PUBLIC SECTION.
METHODS: SET_OPTIMIZE_ALL_COLS,
CALL_SET_CURRENT_CELL_BASE IMPORTING IV_ROW TYPE I
IV_COL TYPE I.
ENDCLASS.
*&---------------------------------------------------------------------*
*& Class (Implementation) lcl_alv_grid
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
CLASS LCL_ALV_GRID IMPLEMENTATION.
METHOD SET_OPTIMIZE_ALL_COLS.
CALL METHOD ME->OPTIMIZE_ALL_COLS
EXPORTING
INCLUDE_HEADER = 1.
ENDMETHOD. "SET_OPTIMIZE_ALL_COLS
"Current Cell Control
METHOD CALL_SET_CURRENT_CELL_BASE.
CALL METHOD ME->SET_CURRENT_CELL_BASE
EXPORTING
ROW = IV_ROW
COL = IV_COL.
ENDMETHOD. "CALL_SET_CURRENT_CELL_BASE
ENDCLASS.
→ ALV GRID를 컨트롤 할 수 있는 CLASS 를 선언해주고 METHOD 설정 또한 해준다.
→ 잊지말고 CLASS ~ DEFINITION DEFERRED. 선언하기
→ ‘OPTIMIZE_ALL_COLS’ 도 참 편해. 저렇게 선언 해 놓고 ALV DISPLAY 혹은 REFRESH 할 때 마지막 문장으로 불러주면 ALV 가 딱 글자 수에 맞게 이쁘게 나온다.
→ 'SET_CURRENT_CELL_BASE' 메소드를 한번 살펴보면
ROW와 COL의 TYPE이 I 이기에, 사용 시에는 숫자 혹은 TYPE이 I 인 변수를 써야겠지.

2. METHOD 부르기
: 사용하고자 하는 ALV 에 METHOD를 부른다.
→ 저는 REFRESH 후에 커서 위치가 리스트에 맨 마지막 행의 첫 행을 가리키도록 했습니다.
FORM ALV_TABLE_REFRESH TABLES PT_LIST
USING PI_GRID TYPE REF TO LCL_ALV_GRID
PV_STABLE.
DATA : LS_STABLE TYPE LVC_S_STBL.
" Set cursor stable
IF PV_STABLE EQ 'X'.
LS_STABLE-ROW = 'X'.
LS_STABLE-COL = 'X'.
ENDIF.
" ALV refresh
CALL METHOD PI_GRID->REFRESH_TABLE_DISPLAY
EXPORTING
* i_soft_refresh = 'X'
IS_STABLE = LS_STABLE.
CALL METHOD PI_GRID->SET_OPTIMIZE_ALL_COLS.
DATA(LV_LINE) = LINES( PT_LIST[] ).
CALL METHOD PI_GRID->CALL_SET_CURRENT_CELL_BASE( IV_ROW = LV_LINE "가리킬 행
IV_COL = 1 ). "가리킬 열
ENDFORM
→ IV_ROW 와 IV_COL 숫자로 원하는 위치 설정 가능
'SAP' 카테고리의 다른 글
| 사용자 표기법 설정으로 인한 금액 표시 포맷 오류 문제 해결(SU01) (0) | 2025.12.09 |
|---|---|
| ABAP 자동 괄호 사용 (0) | 2025.12.09 |
| Field Catalog NO_OUT (0) | 2025.12.08 |
| 자주 쓰는 FUNCTION 모음 (0) | 2025.12.08 |
| NEW SYNTAX (0) | 2025.12.05 |