SAP POSSIBLE ENTRY (SEARCH HELP/ F4) 'F4IF_INT_TABLE_VALUE_REQUEST'



화면에 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.


다음은 서브루틴 문이다.


****FORM

   DATA LT_RETURN_TAB LIKE DDSHRETVAL OCCURS 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
        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.

***ENDFORM



다음 이전