F4_HNADL_SHDYN2¶
목적¶
사용자가 정의한 F4_HELP의 가능 Entries를 활용하여 Search Help를 구현하는 방법을 사용할 수 있으며, F4_HNADL_SHDYN보다 더욱 상세한 기능을 제공
주요 단계¶
1. SEARCH HELP UI 구성¶
- INPUT FIELD 를 이용한 SEARCH HELP 예시를 설정
1.1 TABLE 의 INPUT Properties에서 ShowValueHelp를 True로 변경¶
1.2 value 필드에 적절한 바인딩 적용¶
1.3 Events 의 valueHelpRequest에 이벤트 바인딩¶

<사진 1> TABLE의 INPUT Properties 설정 화면
2. SEARCH HELP LAYOUT 구성 및 Field Option 설정¶
- SEARCH HELP 를 위한 LAYOUT을 구성하고 Field Option을 설정
- ABAP Source Code 예시
METHOD EV_F4_DYN2.
DATA : LV_INDEX TYPE SY-INDEX,
LV_NUM TYPE N LENGTH 2.
DATA : LS_LAYO TYPE /U4A/CL_F4_HNADL=>TY_DYN_F4LAYO_CONF,
LS_SEARCH_LAYO TYPE /U4A/CL_F4_HNADL=>TY_SET_DYN_SEARCH_LAYO,
LS_RESULT_LAYO TYPE /U4A/CL_F4_HNADL=>TY_SET_DYN_RESULT_LAYO.
DATA : LS_OTAB TYPE TY_OTAB,
LT_OTAB TYPE TABLE OF TY_OTAB.
*--------------------------------------------------------------------*
"* Selected Index.
CALL METHOD /U4A/CL_UTILITIES=>GET_SELECTED_INDEX
EXPORTING
I_EVENT_NAME = I_EVENT_NAME
IMPORTING
E_INDEX = LV_INDEX.
CHECK LV_INDEX IS NOT INITIAL.
"* Dynamic F4 Help Table Data.
DO 100 TIMES.
LV_NUM = SY-INDEX.
CONCATENATE 'OBJECT_' LV_NUM INTO LS_OTAB-NAME.
LS_OTAB-NO = SY-INDEX.
APPEND LS_OTAB TO LT_OTAB.
CLEAR LS_OTAB.
ENDDO.
"* F4 Help Pop-Up General Info.
LS_LAYO-F4GEN_INFO-TITLE = 'Dynamic F4 Help2'.
LS_LAYO-F4GEN_INFO-MULTSEL = '00'.
LS_LAYO-F4GEN_INFO-EXPANDED = '00'.
LS_LAYO-F4GEN_INFO-ZEBRA = '00'.
LS_LAYO-F4GEN_INFO-DBCLICK = '00'.
3. SEARCH HELP 다이얼로그 화면¶

<사진 2> Search help 화면 영역
4. 선택한 ROW의 값을 이용한 Call Back Method 설정¶
- CALL BACK METHOD는 ADD EVENT METHOD Button을 통해 생성해야 함
CALL METHOD /U4A/CL_F4_HNADL=>F4_SEARCH_HELP_DYNAMIC2
EXPORTING
IO_VIEW = AR_VIEW
I_ROW = LV_INDEX
I_SEVENT_NAME = 'EV_F4_DYN2_CB'
IS_DYN_F4LAYO_CONF = LS_LAYO
IT_DATA = LT_OTAB
EXCEPTIONS
PROCESS_STRU_DOES_NOT_FORMAT = 1
DATA_DOES_NOT_EXIST = 2
FIELD_TYPE_NOT_ALLOWED = 3
OTHERS = 4.
5. Call Back Method를 통해 Input Field에 선택한 Name값 설정¶
- 선택한 Row Index는 I_FDATA-ROWINDEX 에 존재함
METHOD EV_F4_DYN2_CB.
DATA : LV_NAME TYPE STRING,
LV_DATE TYPE D,
LV_FNAME TYPE STRING.
FIELD-SYMBOLS : <LFS_DATA> TYPE DATA,
<LFS_OTAB> TYPE TY_OTAB.
*--------------------------------------------------------------------*
"* Get : Selected F4 Help Value.
CALL METHOD /U4A/CL_F4_HNADL=>F4_GET_SELECT01
EXPORTING
IS_F4DATA = I_FDATA
I_FLDNM = 'NAME'
IMPORTING
E_VALUE = LV_NAME.
"* Get : Selected Index.
LV_FNAME = 'I_FDATA-ROWINDEX'.
ASSIGN (LV_FNAME) TO <LFS_DATA>.
CHECK <LFS_DATA> IS ASSIGNED.
"* Set : Input Value.
READ TABLE GT_OTAB ASSIGNING <LFS_OTAB> INDEX <LFS_DATA>.
CHECK <LFS_OTAB> IS ASSIGNED.
<LFS_OTAB>-NAME = LV_NAME.
ENDMETHOD.
6. Application 실행 후 원하는 Input Field의 Search Help Click¶

<사진 3> 프로그램에서 Search help 아이콘을 눌러 호출
7. Search Help Dialog 화면에서 Search 후 원하는 조회 결과 선택¶

<사진 4> Search help 화면에서 조회 후 라인 선택
8. Call Back Method 결과 확인¶
- 선택한 Row의 Input Field에 검색 조회 결과 시 선택한 Name이 들어간 것을 확인

<사진 5> 테이블에 값 입력 확인