본문 바로가기
ABAP/Function|Class

[SearchHelp] 손익센터 그룹 탐색도움말

by name_text 2023. 9. 14.

손익센터 그룹 탐색도움말

K_GROUP_SELECT

 

# 소스코드 예시

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_GRPNM-LOW.
  PERFORM F4_PRCTR_GROUP CHANGING S_GRPNM-LOW.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_GRPNM-HIGH.
  PERFORM F4_PRCTR_GROUP CHANGING S_GRPNM-HIGH. 


FORM F4_PRCTR_GROUP CHANGING P_VALUE.
  DATA: LT_DYNPFIELDS TYPE STANDARD TABLE OF  DYNPREAD,
        LV_BUKRS      TYPE TKA02-BUKRS,
        LV_KOKRS      TYPE TKA02-KOKRS.
  DATA: LV_CLASS_NAME TYPE  RGSBS-CLASS,
        LV_SET_NAME   TYPE  SETHEADER-SETNAME,
        LV_SET_TITLE  LIKE  RGSBS-TITLE,
        LV_TABLE_NAME LIKE  RGSBS-TABLE,
        LV_SETID      LIKE  RGSBS-SETNR.

* 회사코드가 Parameter로 선언되어 있을 경우
  LT_DYNPFIELDS = VALUE #( ( FIELDNAME = 'P_BUKRS' ) ).
  CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
      DYNAME                               = SY-REPID
      DYNUMB                               = SY-DYNNR
    TABLES
      DYNPFIELDS                           = LT_DYNPFIELDS
    EXCEPTIONS
      INVALID_ABAPWORKAREA                 = 1
      INVALID_DYNPROFIELD                  = 2
      INVALID_DYNPRONAME                   = 3
      INVALID_DYNPRONUMMER                 = 4
      INVALID_REQUEST                      = 5
      NO_FIELDDESCRIPTION                  = 6
      INVALID_PARAMETER                    = 7
      UNDEFIND_ERROR                       = 8
      DOUBLE_CONVERSION                    = 9
      STEPL_NOT_FOUND                      = 10
      OTHERS                               = 11
            .
  IF SY-SUBRC <> 0.
*   Implement suitable error handling here
  ENDIF.

  READ TABLE LT_DYNPFIELDS INTO DATA(LS_DYNPFIELDS) INDEX 1.
  IF SY-SUBRC EQ 0.
    LV_BUKRS = LS_DYNPFIELDS-FIELDVALUE.
    SELECT SINGLE
      KOKRS
      INTO @LV_KOKRS
    FROM TKA02
    WHERE BUKRS EQ @LV_BUKRS.
  ENDIF.

* 탐색 도움말 호출
  CALL FUNCTION 'K_GROUP_SELECT'
    EXPORTING
      CLASS                    = '0106'
      FIELD_NAME               = 'RPRCTR'
      SET                      = '*'
      TABLE                    = 'GLPCT'
      KOKRS                    = LV_KOKRS
      FIKRS                    = LV_KOKRS
    IMPORTING
      CLASS_NAME               = LV_CLASS_NAME
      SET_NAME                 = LV_SET_NAME
      SET_TITLE                = LV_SET_TITLE
      TABLE_NAME               = LV_TABLE_NAME
      SETID                    = LV_SETID
    EXCEPTIONS
      NO_SET_PICKED            = 1
      OTHERS                   = 2
            .
  IF SY-SUBRC EQ 0.
    P_VALUE = LV_SET_NAME.
  ENDIF.
ENDFORM.

댓글