ALV Grid๋ฅผ ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋จ์์ Display ↔ Change ํ ํด ๋ฒํผ์ ๊ตฌํํ ๋์๋ ํด๋์ค CL_GUI_ALV_GRID
์ SET_READY_FOR_INPUT
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
๋จ๊ณ 1. ํ๋ก๊ทธ๋จ GUI Status์ Application Toolbar์ ๋ฒํผ ์ถ๊ฐ
- Function Code๋ Icon์ ๊ฐ๋ฐ์ ์ํ๋ ๋๋ก ์ง์
- SE80์ด๋ ๊ธฐํ ์คํ ๋ค๋ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ๋ ์์ด์ฝ ์ด๋ฆ์ 'ICON_TOGGLE_DISPLAY_CHANGE'
๋จ๊ณ 2. ํด๋น๋๋ ์คํฌ๋ฆฐ PAI์ ๊ธฐ๋ฅ ๊ตฌํ
- Executable ํ๋ก๊ทธ๋จ์์ 100๋ฒ ์คํฌ๋ฆฐ์ ํธ์ถํ์ฌ, 100๋ฒ ์คํฌ๋ฆฐ์ ALV๋ฅผ ๊ทธ๋ ค์ฃผ๋ ํ๋ก๊ทธ๋จ์ผ ๋, 100๋ฒ ์คํฌ๋ฆฐ์ PAI์ USER_COMMAND ๋ชจ๋์ ๋ง๋ค์ด์ OKCODE๋ฅผ ๋ฐ์์๋ค.
2-1. TOP์์์ ๋ณ์์ ์ธ
DATA : GV_UCOMM TYPE SY-UCOMM,
GV_OKCODE TYPE SY-UCOMM, "100๋ฒ ์คํฌ๋ฆฐ์์ ์ฌ์ฉํ๋ OKCODE ๋ณ์
GO_ALV_GRID TYPE REF TO CL_GUI_ALV_GRID,
GV_TITLE TYPE CHAR10.
2-2. 100๋ฒ ์คํฌ๋ฆฐ์ PAI
PROCESS AFTER INPUT.
MODULE USER_COMMAND.
2-3. ๋ชจ๋ USER_COMMAND
MODULE USER_COMMAND.
GV_UCOMM = GV_OKCODE.
CLEAR GV_OKCODE.
CASE GV_UCOMM.
WHEN 'EDIT'. "๋จ๊ณ 1์์ ์ง์ ํ Function Code
PERFORM TOGGLE_MODE.
ENDCASE.
ENDMODULE.
2-4. ์ค์ ๋ก์ง์ด ๋ค์ด๊ฐ ์๋ TOGGLE_MODE ์๋ธ๋ฃจํด
- IS_READY_FOR_INPUT( )
๋ฉ์๋๋ ํ์ฌ ๋ชจ๋๊ฐ Display์ธ์ง Change๋ฅผ ์๋ ค์ค๋ค.
FORM TOGGLE_MODE.
LV_RESULT = GO_ALV_GRID->IS_READY_FOR_INPUT( ).
CASE LV_RESULT.
WHEN 0. "Display ๋ชจ๋์ธ ๊ฒฝ์ฐ, Change๋ก ๋ณ๊ฒฝ
CALL METHOD GO_ALV_GRID->SET_READY_FOR_INPUT
EXPORTING
I_READY_FOR_INPUT = 1.
WHEN 1. "Change ๋ชจ๋์ธ ๊ฒฝ์ฐ, Display๋ก ๋ณ๊ฒฝ
CALL METHOD GO_ALV_GRID->SET_READY_FOR_INPUT
EXPORTING
I_READY_FOR_INPUT = 0.
ENDCASE.
ENDFORM.
Display ↔ Change ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ์์ฒด๋ ๊ฐ๋จํ๋ฐ, ํ๋ ์นดํ๋ก๊ทธ์ EDIT ์์ฑ์ด๋ ๋ ์ด์์์ EDIT ์์ฑ๊ณผ ์ฎ์ฌ ์์ด์ ์ ๊ฒฝ์จ์ผํ ๋ถ๋ถ๋ค์ด ์๋ค.
1. ํ๋ ์นดํ๋ก๊ทธ/๋ ์ด์์ EDIT ์์ฑ์ด ์ฒดํฌ๋์ด ์์ด์ผ ํ๋ค.
- ํ ๊ธ ๋ฒํผ์ ๊ตฌํํด๋จ์ด๋ ํ๋์นดํ๋ก๊ทธ/๋ ์ด์์-EDIT = 'X'
์ด ๋์ด ์์ด์ผ ๋ณ๊ฒฝ ๊ฐ๋ฅํ๊ฒ ๋ฐ๋๋ค.
2. ๋ง์ฝ ํ๋ ํ๋๋ผ๋ ํ๋์นดํ๋ก๊ทธ-EDIT = 'X'
๋์ด ์์ผ๋ฉด ์ฒ์ ํ๋ก๊ทธ๋จ ์คํ ์ ๋ฌด์กฐ๊ฑด Change๋ชจ๋๋ก ๋์ค๊ฒ ๋๋ค.
- ๊ทธ๋์ SET_TABLE_FOR_FIRST_DISPLAY
์ดํ์ SET_READY_FOR_INPUT
๋ฉ์๋๋ฅผ ํตํด์ ๊ฐ์ ๋ก Display ๋ชจ๋๋ก ๋ฐ๊ฟ ์ฃผ์ด์ผ ํ๋ค.
3. ์ํ์ ๋ฐ๋ฅธ Title Bar ๋ก์ง ๋ณ๊ฒฝ
- ๋ชจ๋์ ๋ฐ๋ผ Title์ 'Display OOO'๋ 'Change OOO'๋ก ๋ฐ๊พธ์ด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ, ๊ทธ๋ด ๋์๋ ์๋ ๋จ๊ณ์ ๋ฐ๋ฅธ๋ค
1) ์ ์ญ๋ณ์ GV_TITLE
์ ์ธ
2) GUI Title '0100' ์์ฑํ์ฌ ๋ด์ฉ์ & OOO ์
๋ ฅ (&์ GV_TITLE
๊ฐ์ด ๋ค์ด๊ฐ๋ค)
3) PBO ๋ชจ๋์์ SET TITLEBAR '0100' WITH GV_TITLE
4) PERFORM TOGGLE_MODE
๋ก์ง์์ ์ํ์ ๋ฐ๋ผ GV_TITLE
์ ๋ฌธ๊ตฌ ์
๋ ฅ
'SAP > ABAP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ABAP] SMW0 ์ด์ฉํด์ ํ ํ๋ ๋ค์ด๋ก๋ (0) | 2021.01.08 |
---|---|
[ABAP] ๊ธ์ก ๋ณํ - WRITE TO CURRENCY (0) | 2020.12.17 |