콘텐츠로 이동

GET_SELECTED_INDEX_DEP

목적

GET_SELECTED_INDEX_DEP는 TABLE DATA 중 TABLE 구조의 INDEX 값을 추출할 때 사용한다.


주요 단계

1. Application에서 UI Object와 Event 생성

이미지

<사진 1> UI Object 생성 화면


2. Event 생성 후 "GET_SELECTED_INDEX_DEP" 구성

  • 첨부 ABAP SOURCE (EV_TABLE_INDEX_CHECK)
METHOD EV_TABLE_INDEX_CHECK.

      DATA : LS_DEEP   TYPE /U4A/S_TS0002,
             LS_DRATH  TYPE /U4A/S0066,
             LT_DRATH  TYPE /U4A/Y0066.

      DATA : LV_MSG      TYPE STRING,
             LV_IDX      TYPE C LENGTH 1,
             LV_DEEPIDX  TYPE C LENGTH 1.

*--------------------------------------------------------------------*

      "TABLE안의 TABLE의 INDEX값 추출
      CALL METHOD /U4A/CL_UTILITIES=>GET_SELECTED_INDEX_DEP
        EXPORTING
          IO_CONTROLLER = ME
          I_EVENT_NAME  = I_EVENT_NAME
        IMPORTING
          ES_SEL_LINE   = LS_DEEP     " 선택 라인 INDEX의 STRUCTURE
          ET_DPATH      = LT_DRATH.   " [U4A] Dep Structure binding update path

      "첫번째 TABLE IDX.
      READ TABLE LT_DRATH INTO LS_DRATH WITH KEY TABNM = 'GT_OTAB'.
      CHECK SY-SUBRC EQ 0.

      LV_IDX = LS_DRATH-LINE_IDX.
      CLEAR LS_DRATH.

      "DEEP TABLE IDX.
      READ TABLE LT_DRATH INTO LS_DRATH WITH KEY TABNM = 'DEEP'.
      CHECK SY-SUBRC EQ 0.

      LV_DEEPIDX = LS_DRATH-LINE_IDX.

      "MESSAGE 내역
      CONCATENATE `Table Index Value is ` LV_IDX
                  `,`
                  CL_ABAP_CHAR_UTILITIES=>NEWLINE
                  ` Deep Table Index Value is ` LV_DEEPIDX
                  `.`
                  CL_ABAP_CHAR_UTILITIES=>NEWLINE
                  `The corresponding index holds the values of `
                  LS_DEEP-FLD01 `, `
                  LS_DEEP-FLD02 `, `
                  LS_DEEP-FLD03 `.`
              INTO LV_MSG.

      "MESSAGE 호출
      CALL METHOD /U4A/CL_UTILITIES=>M_MESSAGETOAST
        EXPORTING
          IO_VIEW = ME->/U4A/IF_SERVER~AR_VIEW  " [U4A] UI Element Super Class
*         IS_MSG  =                              " Structure of message variables
          I_MSGTX = LV_MSG                       " MESSAGE TEXT
*         IT_MSGTX =                             " Table of Strings
          I_VPOS  = CS_M_MSG_TOS_VPOS-CENTER     " Vertical position
          I_HPOS  = CS_M_MSG_TOS_HPOS-CENTER     " Horizontal position
          I_VOFF  = '0'                          " Vertical offset
          I_HOFF  = '0'.                         " Horizontal offset
*         I_DURATION = 10000.

ENDMETHOD.

3. Web에서 실행

  • Web에서 Event 실행 시 TABLE의 INDEX 정보와 해당 DATA를 확인할 수 있다.

이미지

<사진 2> Web에서 INDEX 정보 확인 화면