화면에 POSSIBLE ENTRY (SEARCH HELP/ F4) 만들기
다음 화면에서 보이는 것이 POSSIBLE ENTRY이다.
해당 필드에 입력해야 하는 값을 모를 경우 넣을 수 있는 값을 보여준다.
SELECTION SCREEN에서는 PARAMETER로 데이터를 선언하면 자동으로 생기는데,
CBO테이블의 경우에는
딕셔너리에서 F4 서치헬프를 설정해 놓지 않으면 보이지 않는다.
이런 경우에 로직으로 POSSIBLE ENTRY를 만들어 줄 수 있다.
다음은 SELECTION SCREEN의 필드에 F4를 만들어 주는 경우,
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_KOSTL.
*---------------------------------------------------------------------*
PERFORM F4_HELP.
스크린의 필드에 F4를 만들어 주는 경우에는 PAI 로직에
PROCESS ON VALUE-REQUEST. 로직을 타게 만들어 준다.
PROCESS AFTER INPUT.
MODULE GET_CURSOR_FIELD.
PROCESS ON VALUE-REQUEST.
FIELD :
LS_DATA-KOSTL MODULE F4_KOSTL.
MODULE GET_CURSOR_FIELD.
PROCESS ON VALUE-REQUEST.
FIELD :
LS_DATA-KOSTL MODULE F4_KOSTL.
다음은 서브루틴 문이다.
****FORM
DATA : LT_RETURN_TAB LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE.
DATA : BEGIN OF LS_KOSTL,
ZBUKR TYPE ZFBT020-ZBUKR,
UBKNT TYPE ZFBT020-UBKNT,
END OF LS_KOSTL.
DATA : LT_KOSTL LIKE TABLE OF LS_KOSTL.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE LT_KOSTL
FROM CSKS
WHERE BUKRS = '1000'.
* CBO테이블에는 보기가 없으므로 코스트센터 마스터 테이블에서
* 코스트센터를 가지고 와서 보여준다
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'KOSTL' " 필드 이름
DYNPPROG = SY-REPID " Current program
DYNPNR = SY-DYNNR " Screen number
DYNPROFIELD = 'LS_DATA-KOSTL' " 입력 필드 위 SELECTION SCREEN 경우 S_KOSTL
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'KOSTL' " 필드 이름
DYNPPROG = SY-REPID " Current program
DYNPNR = SY-DYNNR " Screen number
DYNPROFIELD = 'LS_DATA-KOSTL' " 입력 필드 위 SELECTION SCREEN 경우 S_KOSTL
WINDOW_TITLE = '코스트센터' " 서치헬프창에 보여질 이름
VALUE_ORG = 'S'
TABLES
VALUE_TAB = LT_KOSTL " 보여줄 데이터 인터널 테이블
RETURN_TAB = LT_RETURN_TAB
EXCEPTIONS
PARAMETER_ERROR = 1 " Incorrect parameter
NO_VALUES_FOUND = 2 " No values found
OTHERS = 3
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
VALUE_ORG = 'S'
TABLES
VALUE_TAB = LT_KOSTL " 보여줄 데이터 인터널 테이블
RETURN_TAB = LT_RETURN_TAB
EXCEPTIONS
PARAMETER_ERROR = 1 " Incorrect parameter
NO_VALUES_FOUND = 2 " No values found
OTHERS = 3
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
***ENDFORM
Tags:
SAP ABAP