ALV GRID

ALV GRID에 SEARCH HELP 추가하기

오늘은 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

    https://moon-7.tistory.com/33

 

2. F4IF_INT_TABLE_VALUE_REQUEST

   https://moon-7.tistory.com/29

 

 

 

"펑션에서 리턴받은 값으로 화면 업데이트

 

  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