SAP ABAP F4(search help, possible entry) 만들기 F4IF_INT_TABLE_VALUE_REQUEST

SAP ABAP F4 팝업 구현

스탠다드로 제공하거나 dicrtionary를 이용하는 방법 말고 직접 ABAP을 이용해 F4 help를 만들 수 있다.


F4IF_INT_TABLE_VALUE_REQUEST 함수는 테이블 데이터를 기반으로 F4 팝업을 생성하여 사용자에게 검색 가능한 값을 제시한다. 

F4 팝업을 구현하기 위해서는 먼저 내부 테이블을 준비한 후, F4IF_INT_TABLE_VALUE_REQUEST 함수를 호출하여 데이터를 표시합니다.

ex,
DATA: lt_value_list TYPE TABLE OF ddshretval,
      lt_field_list TYPE TABLE OF dfies,
      lt_return_tab TYPE TABLE OF ddshretval,
      ls_value_list TYPE ddshretval,
      ls_field_list TYPE dfies.

DATA: lv_field_value TYPE string.

" 검색 도움말을 위한 데이터 테이블 준비
DATA: lt_f4_data TYPE TABLE OF string,
      ls_f4_data TYPE string.

" 데이터 삽입
ls_f4_data = '1001|전자제품'. APPEND ls_f4_data TO lt_f4_data.
ls_f4_data = '1002|가구'. APPEND ls_f4_data TO lt_f4_data.
ls_f4_data = '1003|의류'. APPEND ls_f4_data TO lt_f4_data.

" 필드 리스트 설정
ls_field_list-fieldname = 'MATNR'.  " 필드명
ls_field_list-scrtext_l = '상품 코드'. " 긴 텍스트
ls_field_list-scrtext_m = '코드'.  " 중간 텍스트
ls_field_list-scrtext_s = '코드'.  " 짧은 텍스트
APPEND ls_field_list TO lt_field_list.

ls_field_list-fieldname = 'MAKTX'.
ls_field_list-scrtext_l = '상품명'.
ls_field_list-scrtext_m = '명'.
ls_field_list-scrtext_s = '명'.
APPEND ls_field_list TO lt_field_list.

" F4 팝업 호출
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
  EXPORTING
    retfield        = 'MATNR'
    dynpprog        = sy-repid
    dynpnr          = sy-dynnr
    dynprofield     = 'P_MATNR'
    value_org       = 'S'
  TABLES
    value_tab       = lt_f4_data
    field_tab       = lt_field_list
    return_tab      = lt_return_tab
  EXCEPTIONS
    parameter_error = 1
    no_values_found = 2
    OTHERS          = 3.

" 선택된 값 가져오기
IF lt_return_tab IS NOT INITIAL.
  READ TABLE lt_return_tab INTO ls_value_list INDEX 1.
  lv_field_value = ls_value_list-fieldval.
  WRITE: '선택된 값:', lv_field_value.
ENDIF.


  • RETFLD: 선택된 값이 반환될 필드명입니다.
  • DYNPPROG: 현재 실행 중인 프로그램의 이름을 지정합니다.
  • DYNPFLD: F4 팝업을 사용할 화면 필드의 이름입니다.
  • VALUE_TAB: F4 팝업에서 표시할 데이터를 담고 있는 테이블입니다.
  • FIELD_TAB: 팝업 창에서 필드에 대한 설명을 제공하는 테이블입니다.
  • RETURN_TAB: 사용자가 선택한 값을 저장하는 테이블입니다.


 예제 실행 결과

위 코드를 실행하면 다음과 같은 F4 팝업이 표시된다.

상품 코드 상품명
1001 전자제품
1002 가구
1003 의류


다음 이전