300x250
728x90
# SAP ALV 특정 Cell 설정하는 방법
# 지금 하고있는 로직이 맞는건지, 안 맞는건지 모르겠지만.. 참고용으로 생각하면 됩니다...!
# 예를 들어) 다음과 같이 Cell을 선택 후, 변경을 누르면?
# 다음과 같이 Cell 선택 한, 필드가 Edit 형태로 보이게 하는 방법을 알아보자.
# 시작하기 전
# 기본 시작하는 방식에서 좀 다른 방법이기 때문에 참고만 하고 넘어가자.
2022.04.15 - [.SAP/..ABAP] - SAP ALV cell edit 설정( Enabled, Disabled )
시작해보자.
# 기본적인 TOP 선언
TYPES: BEGIN OF TY_S_LIST01.
INCLUDE STRUCTURE SCARR.
TYPES: CELLSTYL TYPE LVC_T_STYL,
END OF TY_S_LIST01.
# 기본적인 Layout 선언
GS_LAYOUT01-SEL_MODE = 'A'.
GS_LAYOUT01-STYLEFNAME = 'CELLSTYL'.
# STATUS 버튼 추가 후, PAI 로직 설정
# 01.간단하게 CASE문을 만들어보자
# 02.이제 선택한 CELL에 대한 정보를 가져오기 위해서는 다음 Method을 사용해야한다. 또한 해당 인터널테이블을 바로 가져오기 위해서 READ TABLE을 써보자.
DATA:
LT_CELL TYPE LVC_T_CELL,
LS_CELL TYPE LVC_S_CELL.
CALL METHOD G_ALV_GRID01->GET_SELECTED_CELLS
IMPORTING
ET_CELL = LT_CELL.
READ TABLE LT_CELL INTO LS_CELL INDEX 1.
# GET_SELECTED_CELLS Method을 통해서 ALV에서 선택한 Cell의 해당 라인과 컬럼을 가져올 수 있다.
# 03. 가져온 ROW_ID을 통해서 ALV에서 사용되는 인터널테이블을 읽어보자.
READ TABLE GT_LIST01 INTO GS_LIST01
INDEX LS_CELL-ROW_ID.
# 04. 해당 Cell이 Edit 모드가 열려있는지 닫혀있는지 확인을 하는 로직이며, 변경된 " CELLSTYL "를 Modify 해보자.
# 열려있을 때는 닫아주고, 닫혀있을 때는 열어주는 식으로 변경했다 #
# PERFORM에 대한 것은 밑에 로직에 같이 있으니 참고.
IF GS_LIST01-CELLSTYL IS INITIAL.
PERFORM FCAT_CELL1
USING
LS_CELL-COL_ID
CL_GUI_ALV_GRID=>MC_STYLE_ENABLED
CHANGING
GS_LIST01.
ELSE.
CLEAR
GS_LIST01-CELLSTYL.
ENDIF.
MODIFY GT_LIST01 FROM GS_LIST01
INDEX LS_CELL-ROW_ID .
FORM FCAT_CELL1
USING
VALUE(P_FNAME)
VALUE(P_MC_STYLE)
CHANGING
PS_LIST TYPE TY_S_LIST01.
DATA:
LV_CELL TYPE LVC_S_STYL,
LV_CELL_LIST TYPE LVC_S_STYL.
CLEAR
PS_LIST-CELLSTYL.
LV_CELL-STYLE = P_MC_STYLE.
LV_CELL-FIELDNAME = P_FNAME.
INSERT LV_CELL INTO TABLE PS_LIST-CELLSTYL.
ENDFORM. "FCAT_CELL1
# 05. 이제 EDIT모드를 활성화 하기 위해서 다음과 같은 로직 쓰고, ALV REFRESH를 해보자.
CALL METHOD G_ALV_GRID01->SET_READY_FOR_INPUT " 조회모드 -> 편집모드 "
EXPORTING
I_READY_FOR_INPUT = 1. " Edit 활성화 "
CALL METHOD G_ALV_GRID01->REFRESH_TABLE_DISPLAY
EXPORTING
I_SOFT_REFRESH = 'X'.
# 이제 실행을 해보자!
끝!
728x90
'.ABAP > ..ALV' 카테고리의 다른 글
SAP ALV CELL Color 설정 (0) | 2024.09.20 |
---|---|
SAP ALV Double Click( 더블 클릭 ) 정리 (0) | 2024.06.18 |
SAP ALV Hotspot 정리 (2) | 2024.04.02 |
SAP ALV SubTotal(소계) 정리 (4) | 2024.02.21 |
SAP ALV Blank(공백) 정리 (1) | 2024.01.04 |