[SAP] ALV (3) ์ฌ์ฉ์๋ณ ๋ ์ด์์ ์ ์ฅ / Layout Variant ์ค์ (IS_VARIANT, I_SAVE)
SAP์ ALV๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํด์ฃผ์ง๋ง, ์ฌ์ฉ์๋ง๋ค ๋ณด๊ณ ์ถ์ ๋ทฐ๊ฐ ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ด๋ค ์ฌ์ฉ์๋ ์ปฌ๋ผ ์์๋ฅผ ๋ฐ๊พธ๊ณ ์ถ๊ณ , ์ด๋ค ์ฌ์ฉ์๋ ํน์ ์ปฌ๋ผ๋ง ๋ณด๊ณ ์ถ์ดํ๊ธฐ๋ ํฉ๋๋ค.
์ด๋ด ๋ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฐ๋ก Layout Variant์ ๋๋ค.
Layout Variant๋ ์ฌ์ฉ์๊ฐ ์ง์ ๊ตฌ์ฑํ ๋ทฐ๋ฅผ ์ ์ฅํ๊ณ , ๋ค์์๋ ๊ทธ๋๋ก ๋ถ๋ฌ์์ ์ฌ์ฉํ ์ ์๋๋ก ํด์ฃผ๋ ๊ธฐ๋ฅ์ผ๋ก, SAP ALV์์ ์ค๋ฌด์์ ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ ์ต์ ์ค ํ๋์ ๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ SET_TABLE_FOR_FIRST_DISPLAY ๋ฉ์๋์ ๋ ๊ฐ์ง ํต์ฌ ํ๋ผ๋ฏธํฐ์ธ IS_VARIANT์ I_SAVE ๋ฅผ ํ์ฉํ์ฌ ์ฌ์ฉ์๊ฐ ๋ทฐ๋ฅผ ์ ์ฅํ๊ณ ๋ถ๋ฌ์ค๋ ๊ธฐ๋ฅ์ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค.
โ Layout Variant๋?
ALV์์ ์ฌ์ฉ์๊ฐ ์ค์ ํ ์ปฌ๋ผ ์์, ์ ๋ ฌ, ํํฐ, ์จ๊น ์ปฌ๋ผ ๋ฑ์ ์ ์ฅํด๋๊ณ , ํ์ํ ๋๋ง๋ค ๋ถ๋ฌ์ฌ ์ ์๋๋ก ํด์ฃผ๋ ๊ธฐ๋ฅ์ ๋๋ค. ์ค์ SAP์ ํ์ค ํธ๋์ญ์ ์์๋ ๋๋ถ๋ถ ์ด ๊ธฐ๋ฅ์ด ์ ์ฉ๋์ด ์์ผ๋ฉฐ, ALV๋ฅผ ์ค๋ฌด์ ์ ์ฉํ ๋ ๊ผญ ํฌํจํ๋ ํธ์ ๋๋ค.
โถ ํด๋์ค CL_GUI_ALV_GRID์ ๋ฉ์๋ SET_TABLE_FOR_FIRST_DISPLAY ํ๋ผ๋ฏธํฐ ํ์ธํ๊ธฐ
SET_TABLE_FOR_FIRST_DISPLAY ๋ฉ์๋์ ๋ ๊ฐ์ง ํต์ฌ ํ๋ผ๋ฏธํฐ์ธ IS_VARIANT์ I_SAVE๋ฅผ ํ์ธํ๊ธฐ ์ํด์ ํด๋น ํ๋ผ๋ฏธํฐ๋ค์ด ์ด๋ค ํ์ ์ธ์ง, ์ด๋ป๊ฒ ์ ๋ฌ๋์ด์ผ ํ๋์ง ํ์ธํฉ๋๋ค.
1๏ธโฃ SE24 → CL_GUI_ALV_GRID → ๋ฉ์๋ → SET_TABLE_FOR_FIRST_DISPLAY
2๏ธโฃ Signature ํญ์์ IS_VARIANT, I_SAVE ํ์ธ
3๏ธโฃ IS_VARIANT์ I_SAVE ํ์ ํ์ธํ๊ธฐ
IS_VARIANT TYPE DISVARIANT " ๊ตฌ์กฐ์ฒด
I_SAVE TYPE CHAR01 " ๋ฌธ์ 1์๋ฆฌ
์ด์ฒ๋ผ ์ง์ ํ์ ์ ํ์ธํ๋ฉด ์ ์ธ ์ ํท๊ฐ๋ฆด ์ผ์ด ์์ต๋๋ค.
โถ TOP ( IS_VARIANT, I_SAVE ๋ณ์ ์ ์ธ)
DATA gs_variant TYPE disvariant.
DATA gv_save TYPE char01.
TOP์ Variant ์ค์ ์ ์ํ ๊ตฌ์กฐ์ฒด์ ์ ์ฅ ์ต์ ์ ์ ์ธํฉ๋๋ค.
โถ TOP : ํ๋ฉด์ ์ฌ์ฉ์ ๋ ์ด์์ ์ด๋ฆ์ ์ ๋ ฅ๋ฐ๊ธฐ
์ฌ์ฉ์๊ฐ ๋ถ๋ฌ์ฌ Variant ์ด๋ฆ์ ์ง์ ์ ๋ ฅํ ์ ์๋๋ก Selection Screen์ ์๋์ ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
PARAMETERS pa_lay TYPE disvariant-variant.
โถ ์ฌ์ฉ์ Layout ์ ๋ณด๋ฅผ ALV์ ์ ๋ฌ
SET_TABLE_FOR_FIRST_DISPLAY ํธ์ถ ์ ์ ์๋์ฒ๋ผ Layout ์ ๋ณด๋ฅผ ์ฑ์์ ๋๊ฒจ์ค๋๋ค.
MODULE init_control OUTPUT.
GS_VARIANT-report = SY-CPROG. " ํ์ฌ ํ๋ก๊ทธ๋จ ์ด๋ฆ (ํ์) "
GS_VARIANT-variant = PA_LAY. " ํ๋ฉด์์ ์
๋ ฅ๋ฐ์ ์ฌ์ฉ์๊ฐ ์ ํํ ๋ทฐ ์ด๋ฆ
GV_SAVE = 'A'. "์ผ๋จ A๋ก ๊ณ ์
ENDMODULE.
โ๏ธ SAVE ์ ์ฅ ์ต์ ์๋ฏธ ์ ๋ฆฌ
๊ฐ | ์๋ฏธ |
U | ๋ง๋ ์ฌ๋(๋ณธ์ธ)๋ง ์ฌ์ฉ ๊ฐ๋ฅ |
X | ๋ง๋ ์ฌ๋ ์ธ ๋ชจ๋ ์ฌ์ฉ์ ์ฌ์ฉ ๊ฐ๋ฅ |
A | ๋ง๋ ์์ ์ U ๋๋ X๋ฅผ ์ ํ ๊ฐ๋ฅํ๊ฒ ํจ (โ ๊ฐ์ฅ ์ ์ฐํจ) |
โถ XXXXXO01(PBO) : ALV ํธ์ถ ์ ์ ์ฉ
MODULE init_control OUTPUT.
IF GO_CON IS INITIAL.
CREATE OBJECT go_con
EXPORTING
container_name = 'MY_CON'.
CREATE OBJECT go_alv
EXPORTING
i_parent = go_con.
" display_control ๋ชจ๋ "
GS_LAYOUT-CWIDTH_OPT ='X'.
CALL METHOD go_alv->set_table_for_first_display
EXPORTING
i_structure_name = 'SDYN_CONN'
is_variant = GS_VARIANT " is_variant ์ถ๊ฐ "
i_save = GV_SAVE " i_save ์ถ๊ฐ "
is_layout = GS_LAYOUT
CHANGING
it_outtab = gt_conn.
ENDIF.
ENDMODULE.
โถ ๋ทฐ ์ ์ฅ ๋ฐ ๋ถ๋ฌ์ค๊ธฐ ํ๋ฉด
โ๏ธ๋ด๊ฐ ์ํ๋ ํํ๋ก Layout ๋ณ๊ฒฝ
โ๏ธ ALV ์ฐ์ธก ์๋จ 'Layout ์ ์ฅ' ์์ด์ฝ ํด๋ฆญ
โ๏ธ ์ด๋ฆ ์ ๋ ฅ ํ ์ ์ฅ
โ๏ธ์ ์ฅ๋ Layout์ ๋ค์ ํธ์ถ ์ ๋ถ๋ฌ์ฌ ์ ์์