SAP/ABAP 코드

(ABAP 코드) ON VALUE-REQUEST FOR

haramang 2021. 7. 7. 11:49

* 프로그램 내에서 Search Help를 만든다.

 

 

*- F4 관련 테이블

DATA F4_RETURN  LIKE TABLE OF DDSHRETVAL WITH HEADER LINE,

       LT_DYNMAPP TYPE TABLE OF DSELC      WITH HEADER LINE,

       LT_DYNTAB  TYPE TABLE OF STRING.

 

* Search Help만들기 위한 테이블 선언

  DATA BEGIN OF LS_DEV,

           DEVNR LIKE ZTBD2_12_01-DEVNR,

           DEVNM LIKE ZTBD2_12_01-DEVNM,

           CETCD LIKE ZTBD2_12_06-CETCD,

           CETNM LIKE ZTBD2_12_05-CETNM,

         END OF LS_DEV,

 LT_DEV LIKE TABLE OF LS_DEV.

 

 

  CLEAR LT_DYNMAPP[]LT_DYNTAB[]LT_DEV[].

 

* Search Help 만들기 위한 Field들 받아오기

  SELECT A~DEVNRA~DEVNMB~CETCDC~CETNM

  INTO TABLE @LT_DEV

  FROM ZTBD2_12_01 AS A

  LEFT OUTER JOIN ZTBD2_12_06 AS B

  ON A~DEVNR B~DEVNR

  LEFT OUTER JOIN ZTBD2_12_05 AS C

  ON B~CETCD C~CETCD

  ORDER BY A~DEVNRA~DEVNM.

 

 

* Search Help 만들기 위한 Function

*-> CALL FUNCTION

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

    EXPORTING

      RETFIELD        'DEVNR'

      DYNPPROG        SY-CPROG

      DYNPNR          SY-DYNNR

      WINDOW_TITLE    '개발자'

      VALUE_ORG       'S'

    TABLES

      VALUE_TAB       LT_DEV

      RETURN_TAB      F4_RETURN

    EXCEPTIONS

      PARAMETER_ERROR 1

      NO_VALUES_FOUND 2

      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.

 

* F4_RETURN의 첫번째 Line

  READ TABLE F4_RETURN INDEX 1.

 

  CHECK SY-SUBRC 0.

  * P_DEV(파라미터 변수 이름)에 FIELDVAL을 입력

  P_DEV F4_RETURN-FIELDVAL.