ABAP

[ABAP] 조회 화면 Search Help 예제

mrexuex 2024. 8. 27. 14:16

🚩 코드

1. SELECTION-SCREEN 선언

SELECT-OPTIONS : S_WERKS FOR MARD-WERKS.
  

2. 이벤트 선언

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_WERKS-LOW.
  PERFORM F4_FOR_WERKS.
   

3. 코딩

FORM F4_FOR_WERKS.

  DATA : BEGIN OF LS_WERKS,
           WERKS TYPE TVKWZ-WERKS,
           NAME1 TYPE T001W-NAME1,
         END OF LS_WERKS,
         LT_WERKS LIKE TABLE OF LS_WERKS.

  DATA : LS_RETURN TYPE DDSHRETVAL,
         LT_RETURN TYPE TABLE OF DDSHRETVAL.

  CLEAR : LT_WERKS.
  

  SELECT DISTINCT A~WERKS,
                  B~NAME1
      FROM TVKWZ   AS A
  INNER JOIN T001W AS B ON A~WERKS = B~WERKS
     WHERE A~VKORG IN @S_VKORG
      INTO CORRESPONDING FIELDS OF TABLE @LT_WERKS.

  SORT LT_WERKS BY WERKS.


  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      RETFIELD        = 'WERKS'
      VALUE_ORG       = 'S'
    TABLES
      VALUE_TAB       = LT_WERKS
      RETURN_TAB      = LT_RETURN
    EXCEPTIONS
      PARAMETER_ERROR = 1
      NO_VALUES_FOUND = 2
      OTHERS          = 3.


  CHECK LT_RETURN IS NOT INITIAL.

  READ TABLE LT_RETURN INTO LS_RETURN INDEX 1.
  IF SY-SUBRC EQ 0.
    S_WERKS-LOW = LS_RETURN-FIELDVAL.
  ENDIF.

ENDFORM.

 

🚩 결과 화면

 

반응형