오늘은 ALV GRID에 SEARCH HELP 추가하는 방법을 단계별로 알아보겠습니다
1. F4 CLASS DEFINITION 선언하기
METHODS: HANDLE_ON_F4 FOR EVENT ONF4 OF CL_GUI_ALV_GRID
IMPORTING SENDER
E_FIELDNAME
E_FIELDVALUE
ES_ROW_NO
ER_EVENT_DATA
E_DISPLAY.
**class 명으로 data 선언해야함
( DATA: GRF_EVENT_RECEIVER TYPE REF TO LCL_RECEIVER )
2. PBO에 CLASS HANDLER 등록하기
CREATE OBJECT GRF_EVENT_RECEIVER .
SET HANDLER : GRF_EVENT_RECEIVER->HANDLE_ON_F4 FOR GRF_GRID.
3. PBO에 SEARCH HELP Event 추가하기
DATA: GT_F4 TYPE LVC_T_F4,
GS_F4 TYPE LVC_S_F4.
* 서치헬프를 적용할 필드를 지정해준다.
gs_f4-fieldname = 'KOSTL'.
gs_f4-register = 'X'.
INSERT gs_f4 INTO TABLE gt_f4.
CALL METHOD GRF_GRID->register_f4_for_fields
EXPORTING it_f4 = gt_f4.
4. Field catalog에 사용필드 지정하기
F4사용할 필드카탈로그 설정시,
LVC_S_FCAT-f4availabl = 'X' 로 설정한다.
5. F4 CLASS IMPLEMENTATION 로직 구현하기
FORM handle_help_f4 USING SENDER
P_FIELDNAME TYPE LVC_FNAME "F4클릭한 필드
P_FIELDVALUE TYPE LVC_VALUE "F4클릭한 필드값
P_S_ROW_NO TYPE LVC_S_ROID "F4클릭한 필드 라인
PR_EVENT_DATA TYPE REF TO CL_ALV_EVENT_DATA
P_DISPLAY TYPE CHAR01. "활성화: '' , 비활성화: 'X'
DATA : LS_LVC_MODI TYPE LVC_S_MODI.
FIELD-SYMBOLS : <F4TAB> TYPE LVC_T_MODI.
"Event was Handled 속성
PR_EVENT_DATA>M_EVENT_HANDLED = C_X.
"서치헬프 펑션은 아래 URL을 참고하세요.
1 . F4IF_FIELD_VALUE_REQUEST
2. F4IF_INT_TABLE_VALUE_REQUEST
"펑션에서 리턴받은 값으로 화면 업데이트
ASSIGN PR_EVENT_DATA->M_DATA->* TO <F4TAB>.
LS_LVC_MODI-ROW_ID = P_S_ROW_NO-ROW_ID.
LS_LVC_MODI-FIELDNAME = P_FIELDNAME.
LS_LVC_MODI-VALUE = LT_RETURN-FIELDVAL. (펑션리턴값)
APPEND LS_LVC_MODI TO <F4TAB>.
ENDFORM.
'ALV GRID' 카테고리의 다른 글
ALV GRID 툴바 제거 방법 (0) | 2021.09.09 |
---|---|
ALV 화면 분리 (CL_GUI_SPLITTER_CONTAINER) (0) | 2021.07.21 |
ALV 색상 표 (0) | 2021.07.01 |
ALV GRID 색상 추가 3가지 방법 (0) | 2021.07.01 |
ALV GRID TITLE 설정 (0) | 2021.06.15 |