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 정보 확인 화면