F4_HNADL_SH2¶
개요¶
ABAP Dictionary 에서 생성된 Search Help 를 별도의 변경 없이 재사용하여 사용할 수 있으며,
F4_HNADL_SH 보다 더욱 상세한 기능을 제공한다.
SEARCH HELP 설정¶
1. INPUT UI 구성¶
- INPUT FIELD 를 이용하여 SEARCH HELP 설정
- TABLE 의 INPUT Properties 중 ShowValueHelp 를 True 로 설정
- value 에 필드 바인딩
- Events 의 valueHelpRequest 에 이벤트 바인딩

<사진 1> Search Help 호출을 위한 INPUT UI Property 설정 화면
2. SEARCH HELP LAYOUT 구성 및 Field Option 설정¶
2.1. ABAP 소스 코드 예시¶
METHOD ev_f4_dic2.
DATA: lv_index TYPE sy-index,
ls_layo TYPE /u4a/cl_f4_hnadl=>ty_f4layo_conf,
ls_search_layo TYPE /u4a/cl_f4_hnadl=>ty_set_search_layo,
ls_result_layo TYPE /u4a/cl_f4_hnadl=>ty_set_result_layo,
lt_values TYPE /u4a/y0093.
*--------------------------------------------------------------------*
* 1. Selected Index 조회
*--------------------------------------------------------------------*
/u4a/cl_utilities=>get_selected_index(
EXPORTING
i_event_name = i_event_name
IMPORTING
e_index = lv_index ).
CHECK lv_index IS NOT INITIAL.
*--------------------------------------------------------------------*
* 2. F4 Popup General Configuration
*--------------------------------------------------------------------*
ls_layo-f4gen_info = VALUE #(
width = ''
height = ''
selmult = '00'
styleclass = ''
draggable = '00'
title = 'Dictionary F4 Help2'
auto_search = '00'
zebra = '00'
dbclick = '00'
labelspanxl = '00'
labelspanl = '00'
labelspanm = '00'
labelspans = '00'
emptyspanxl = '00'
emptyspanl = '00'
emptyspanm = '00'
emptyspans = '00'
).
*--------------------------------------------------------------------*
* 3. Search Condition Configuration
*--------------------------------------------------------------------*
ls_search_layo = VALUE #(
shlpname = 'H_SCARR'
shlpfield = 'CARRID'
initvalue = ''
placeholder = ''
width = ''
enable = ''
field_label = 'CARR_ID'
uityp = ''
shname = ''
shretfld = ''
values = lt_values
isfocus = ''
visible = ''
align = ''
).
APPEND ls_search_layo TO ls_layo-search_field.
*--------------------------------------------------------------------*
* 4. Result List Configuration
*--------------------------------------------------------------------*
ls_result_layo = VALUE #(
shlpname = 'H_SCARR'
shlpfield = 'CARRID'
field_label = 'CARR_ID'
width = ''
isfix_col = '00'
col_align = '00'
txt_align = ''
visible = '00'
minwidth = ''
resizable = '00'
filter_option = '00'
enable_filter = '00'
enable_sorter = '00'
wrapping = '00'
).
APPEND ls_result_layo TO ls_layo-result_field.
ENDMETHOD.
2.2. SEARCH HELP 팝업 기본 설정 Parameter 설명¶
2.2.1. TY_SET_GEN_LAYO_INF¶
| PARAMETERS | Description |
|---|---|
| WIDTH | F4 팝업 넓이 (500px, 60%) |
| HEIGHT | F4 팝업 높이 (500px, 60%) |
| SELMULT | 선택 멀티 여부 (예: 00 = DEFAULT 단일선택, 01 = 멀티선택, 02 = 단일선택) |
| STYLECLASS | CSS Class |
| DRAGGABLE | 팝업 Draggable (예: 00 = DEFAULT 팝업 DRAG 가능, 01 = 팝업 DRAG 가능, 02 = 팝업 DRAG 불가) |
| TITLE | 팝업 TITLE |
| AUTO_SEARCH | 팝업 호출 후 자동 검색 여부 (예: 00 = DEFAULT 자동검색 안함, 01 = 자동검색 처리, 02 = 자동검색 안함) |
| ZEBRA | 결과리스트 Alternating line color (예: 00 = DEFAULT 처리안함, 01 = 처리함, 02 = 처리안함) |
| DBCLICK | 결과리스트 선택 더블클릭 사용 여부 (단일선택 전용, 00 = DEFAULT 처리안함, 01 = 처리함, 02 = 처리안함) |
| LABELSPANXL | 검색조건 라벨 여백 (XL) (예: 00 = DEFAULT 5) |
| LABELSPANL | 검색조건 라벨 여백 (L) (예: 00 = DEFAULT 5) |
| LABELSPANM | 검색조건 라벨 여백 (M) (예: 00 = DEFAULT 5) |
| LABELSPANS | 검색조건 라벨 여백 (S) (예: 00 = DEFAULT 12) |
| EMPTYSPANXL | 검색조건 입력필드 우측 여백 (XL) (예: 00 = DEFAULT 0) |
| EMPTYSPANL | 검색조건 입력필드 우측 여백 (L) (예: 00 = DEFAULT 0) |
| EMPTYSPANM | 검색조건 입력필드 우측 여백 (M) (예: 00 = DEFAULT 0) |
| EMPTYSPANS | 검색조건 입력필드 우측 여백 (S) (예: 00 = DEFAULT 0) |
| MAXHIT_INP_CONF | MAX HITS 입력필드 |
| CLOSE_BTN_CONF1 | 우상단 종료버튼 |
| CLOSE_BTN_CONF2 | 우하단 종료버튼 |
| SEARCH_BTN_CONF | 검색버튼 |
| FILTER_BTN_CONF | 필터 버튼 CONFIG 정보 |
| CONFIRM_BTN_CONF | 확인 버튼 |
| SEARCH_TXT_CONF | 검색조건 text |
| MAXHIT_TXT_CONF | max hits text |
| RESCNT_TXT_CONF | 검색결과 cnt text |
2.2.2. TY_SET_MAXHIT_CONF_INF¶
| PARAMETERS | Description |
|---|---|
| WIDTH | MAX HIT 입력필드 가로 크기 (100px, 20%) |
| VISIBLE | MAX HIT 입력필드 활성 여부 (예: 00 = DEFAULT 활성처리, 01 = 활성, 02 = 비활성) |
| ENABLE | MAX HIT 입력 가능 여부 (예: 00 = DEFAULT 입력가능, 01 = 입력 가능, 02 = 입력 불가) |
| ALIGN | MAX HIT 입력필드 좌·우 정렬 (예: 00 = DEFAULT Initial) |
| MAXHITS | MAX HIT 입력필드 초기값 |
| HIT_LIMIT | MAX HIT 입력필드 MAX 제한값 5000 (0 = all 검색) |
| PLACEHOLDER | MAX HIT 입력필드 placeholder value |
2.2.3. TY_SET_BTN_CONF_INF¶
| PARAMETERS | Description |
|---|---|
| TEXT | 버튼 TEXT |
| TOOLTIP | 버튼 TOOLTIP |
| ICON | 버튼 ICON |
| TYPE | 버튼 TYPE (예: 00 = 해당 버튼의 DEFAULT TYPE) |
| VISIBLE | 버튼 활성 여부 (예: 00 = 해당 버튼의 DEFAULT 활성여부, 01 = 활성, 02 = 비활성) |
| ENABLE | 버튼 PRESS 가능 여부 (예: 00 = 해당 버튼의 DEFAULT PRESS 여부, 01 = PRESS 가능, 02 = PRESS 불가) |
| WIDTH | 버튼 가로 크기 (100px, 20%) |
2.2.4. TY_SET_TXT_CONF_INF¶
| PARAMETERS | Description |
|---|---|
| TEXT | text |
| VISIBLE | TEXT 활성 여부 (예: 00 = 해당 TEXT의 DEFAULT 활성여부, 01 = 활성, 02 = 비활성) |
2.2.5. TY_SET_SEARCH_LAYO¶
| PARAMETERS | Description |
|---|---|
| SHLPNAME | Name of a Search Help |
| SHLPFIELD | Name of a search help parameter |
| INITVALUE | Init value |
| PLACEHOLDER | placeholder value |
| WIDTH | input field width (EX: 10px, 30%...) |
| ENABLE | input field 입력 가능 여부 (예: 00 = DEFAULT 입력가능, 01 = 입력 가능, 02 = 입력 불가) |
| FIELD_LABEL | Label Text |
| UITYP | F4 help 검색조건 필드 유형 |
| SHNAME | Name of a Search Help |
| SHRETFLD | Name of a search help parameter |
| VALUES | F4 SerchHelp Search Condition DDLB |
| ISFOCUS | 검색조건 FOCUS 여부 (예: 00 = DEFAULT 처리 안함, 01 = FOCUS 처리, 02 = FOCUS 처리 안함) |
| VISIBLE | 검색조건 활성 여부 (예: 00 = DEFAULT 활성, 01 = 활성 처리, 02 = 활성 처리 안함) |
| ALIGN | 검색조건 입력필드 좌·우 정렬 (예: 00 = DEFAULT Initial) |
2.2.6. TY_SET_RESULT_LAYO¶
| PARAMETERS | Description |
|---|---|
| SHLPNAME | Name of a Search Help |
| SHLPFIELD | Name of a search help parameter |
| FIELD_LABEL | Label Text |
| WIDTH | column width (EX: 10px, 30%...) |
| ISFIX_COL | 결과리스트 컬럼 고정여부 (예: 00 = DEFAULT 고정안함, 01 = 고정 처리, 02 = 고정 처리 안함) |
| COL_ALIGN | 컬럼 ALIGN (예: 00 = DEFAULT Begin) |
| TXT_ALIGN | 결과리스트 CELL의 TEXT 좌·우 정렬 (예: 00 = DEFAULT Initial) |
| VISIBLE | 결과리스트 컬럼 활성 여부 (예: 00 = DEFAULT 활성, 01 = 활성 처리, 02 = 활성 처리 안함) |
| MINWIDTH | 컬럼 최소 width (100) |
| RESIZABLE | 컬럼 RESIZE 가능 여부 (예: 00 = DEFAULT RESIZE 가능, 01 = RESIZE 가능, 02 = RESIZE 불가) |
| FILTER_OPTION | 결과리스트 필터 OPTION (예: 00 = DEFAULT CP) |
| ENABLE_FILTER | 결과리스트 FILTER 사용 여부 (예: 00 = DEFAULT FILTER 사용, 01 = FILTER 사용, 02 = FILTER 사용안함) |
| ENABLE_SORTER | 결과리스트 SORTER 사용 여부 (예: 00 = DEFAULT SORTER 사용, 01 = SORTER 사용, 02 = SORTER 사용안함) |
| WRAPPING | 결과리스트 CELL의 TEXT WRAPPING 처리 여부 (예: 00 = DEFAULT 처리함, 01 = 처리함, 02 = 처리안함) |
2.3. SEARCH HELP DIALOG SCREEN¶

<사진 2> Search help 화면 영역
3. Search Help 호출 및 Call Back Method 설정¶
3.1. Search Help 호출¶
"*- Call : Dictionary F4 Help2.
CALL METHOD /U4A/CL_F4_HNADL=>F4_SEARCH_HELP2
EXPORTING
IO_VIEW = AR_VIEW " [U4A] UI Element Super Class.
I_SHLPNAME = 'H_SCARR' " Name of a Search Help.
I_ROW = LV_INDEX " 호출처 INDEX.
I_SEVENT_NAME = 'EV_F4_DIC2_CB' " 서버 이벤트 명.
IS_F4LAYO_CONF = LS_LAYO. " F4 엔트리 컨피그레이션.
ENDMETHOD.
3.2. Call Back Method 생성¶
- ADD EVENT METHOD 버튼을 통해 생성해야 함
- 선택한 Row Index는 I_FDATA-ROWINDEX에 존재함
- CARRID, CARRNAME 값을 Input Field에 적용
METHOD EV_F4_DIC2_CB.
DATA:
LV_CARRID TYPE S_CARR_ID,
LV_CARRNAME TYPE S_CARRNAME,
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 = 'CARRID'
IMPORTING
E_VALUE = LV_CARRID.
CALL METHOD /U4A/CL_F4_HNADL=>F4_GET_SELECT01
EXPORTING
IS_F4DATA = I_FDATA
I_FLDNM = 'CARRNAME'
IMPORTING
E_VALUE = LV_CARRNAME.
*--------------------------------------------------------------------*
"*- 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>-CARRID = LV_CARRID.
<LFS_OTAB>-CARRNAME = LV_CARRNAME.
ENDMETHOD.
4. 검색 결과 반영¶
4.1. Application 실행 후 원하는 Input Field의 Search Help Click¶

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

<사진 4> Search help 화면에서 조회 후 라인 선택
4.3. Call Back Method 결과 (선택한 Row의 Input Field에 검색 조회 결과 시 선택한 Material Number 가 들어간 것을 확인 )¶

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