Method "GET_SELECTED_ROW"๋ ALV๋ฅผ ์ ์ดํจ์ ์์ด ๋ง์ด ์ฌ์ฉ๋๋ Method ์ค ํ๋๋ก, ALV Report์์ ALV Standard ์ ํ ๋ฐ์ค๋ฅผ ์ ํ ํ ์ ํ๋ ๋ผ์ธ์ ์์น ์ ๋ณด(์ธํฐ๋ ํ ์ด๋ธ Index)๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
๊ฐ๋ณ๊ฒ ์ฌ์ฉ๋๋ Method์ง๋ง, ์ ํํ ๋ชจ๋ฅด๊ณ ์ผ๋ค๊ฐ๋ ์๋ฌ๊ฐ ๋ ์๋ ์์ผ๋ ํ๋ฒ ์์๋ณด๋๋ก ํ์.
์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ํธ์ถํ์ฌ ์ฌ์ฉํ๋ค.
Method "GET_SELECTED_ROW"์ Importing Parameter ๋ฐํ ๊ฐ์ ๋ณด๋ฉด "LT_ROW_NO"๋ Field "ROW_ID"์, "LT_INDEX_ROWS"๋ Field "INDEX"์ ์ ํ๋ ๋ผ์ธ์ ์ ๋ณด( ์ธํฐ๋ ํ ์ด๋ธ Index )๊ฐ ๋ค์ด๊ฐ ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๊ทธ๋ฐ ๋ค์ "LT_ROW_NO" ๋๋ "LT_INDEX_ROWS"์ ๋ด๊ธด ์ ๋ณด๋ก "LOOP" ๋๋ "READ TABLE"๊ตฌ๋ฌธ์ ์ด์ฉํ์ฌ ALV Output ์ธํฐ๋ ํ ์ด๋ธ์ ์ ํ ๋ผ์ธ์ ์ฐพ์ ํ์ ์ฒ๋ฆฌํ๋ฉด ๋๋ค.
์ด๋ฒ์๋ ์ผ๋ฐ ALV Output Data๊ฐ ์๋ ALV์ Standard ๊ธฐ๋ฅ์ธ Total๊ณผ Subtotal ๊ธฐ๋ฅ์ ํน์ ํ๋์ ํ์ฑํ์ํจ ํ ์ถ๊ฐ๋ Total๋ผ์ธ๊ณผ Subtotal ๋ผ์ธ์ ์ ํํด๋ณด์.
1๋ฒ์งธ ๋ผ์ธ - ALV ๊ธฐ์กด Output ๋ฐ์ดํฐ
2๋ฒ์งธ ๋ผ์ธ - ํ๋ ID(LH)์ Plane Type(A319)์ Occupied ์ค๊ฐ ํฉ๊ณ
3๋ฒ์งธ ๋ผ์ธ - ํ๋ ID(LH)์ Plane Type(A330-300)์ Occupied ์ค๊ฐ ํฉ๊ณ
4๋ฒ์งธ ๋ผ์ธ - ํ๋ ID(LH)์ Occupied ์ค๊ฐ ํฉ๊ณ
5๋ฒ์งธ ๋ผ์ธ - Occupied ์ดํฉ๊ณ
Method "GET_SELECTED_ROW" Importing Parameter ๊ฒฐ๊ณผ ๊ฐ์ ๋ณด๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ๊ธฐ์กด ALV Output Data( ์ฒซ ๋ฒ์งธ ๋ผ์ธ )์ ALV ํฉ๊ณ ๊ธฐ๋ฅ์ ์ํด ์๊ธด Data( 2 ~ 5๋ฒ์งธ ๋ผ์ธ )์ ๋ฐํ ๊ฐ์ด ๋ค๋ฅธ ๊ฒ์ ํ์ธํ ์ ์๋ค.
Method "GET_SELECTED_ROW"์ Parameter Field ๋ฐํ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ด ์ ๋ฆฌํด ๋ณผ ์ ์๋ค.
๋ชจ๋ ํ๋ก๊ทธ๋จ์ด ๊ฐ๋ฐ์์ ์๋๋๋ก ์ฌ์ฉ๋๋ค๋ฉด, ์๋ฌ ์๋ ์๋ฒฝํ ํ๋ก๊ทธ๋จ์ด ๋๊ฒ ์ง๋ง, ํญ์ ์ฌ์ฉ์ ์ ์ฅ์์๋
๊ฐ๋ฐ์์ ์๋์ ๋ค๋ฅธ ๋ฐฉํฅ์ผ๋ก ์ฌ์ฉ๋ ์ ์๋ค๋ ์ ์ ์ธ์งํ๊ณ ์์ด์ผ ํ๋ค.
๋ง์ฝ ALV์ Total(Sub Total) ํฉ๊ณ ๊ธฐ๋ฅ์ผ๋ก ์ธํด ์ถ๊ฐ๋ก ์๊ธด ํฉ๊ณ ๋ผ์ธ์ ์ค์ ๋๋ ์ด๋ ํ(?) ์๋๋ก ์ ํ์ ํ๊ณ ๋ค์ ํ๋ก์ธ์ค๋ฅผ ์งํํ์๋ค๋ฉด ์ด๋ป๊ฒ ๋์์๊น?
๋ค์๊ณผ ๊ฐ์ด ์์ค์ฝ๋๋ฅผ ์์ฑํ์๋ค๋ฉด ์๋ง ๋ฌธ์ ๊ฐ ์๊ฒผ์ ๊ฒ์ด๋ค.
Case #1 ์ Method "GET_SELECTED_ROW"์ Parameter "et_index_rows" ์ฌ์ฉ ์ํฉ๊ณ ๋ผ์ธ์ ์ ํํ ๊ฒฝ์ฐ๋ก,
Field "INDEX"์๋ ์ธํฐ๋ ํ ์ด๋ธ "GT_TIAB"์ Index๊ฐ ์๋ ALV ํฉ๊ณ ๋ผ์ธ๋ค ์ค ์์์ Index๋ฅผ ๋ฐํํ๋ฏ๋ก ์๋ชป๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์์ค๊ฒ ๋๋ค.
Case #2๋ Method "GET_SELECTED_ROW"์ Parameter "et_row_no" ์ฌ์ฉ ์ ํฉ๊ณ ๋ผ์ธ ์ ํํ ๊ฒฝ์ฐ๋ก,
Field "ROW_ID"์๋ '๋ง์ด๋์ค(-)' ๋๋ '0'์ผ๋ก ๋ฐํํ๊ธฐ ๋๋ฌธ์ "READ TABLE" ๊ตฌ๋ฌธ ๋ค์ "SY-SUBRC = 0"์ ์ฒดํฌํ์ง ์์๋ค๋ฉด, ์ค์ ์ธํฐ๋ ํ ์ด๋ธ "GT_ITAB"์๋ ์กด์ฌํ์ง ์์ Index ์ด๋ฏ๋ก ๋คํ๊ฐ ๋ฐ์ํ๋ฉฐ ํด๋น ํ๋ก๊ทธ๋จ์ ์ข ๋ฃ๋๋ค. ( ํด๋น ์ฌ๋ก๋ "READ TABLE" ๊ตฌ๋ฌธ์์๋ 100% 'SY-SUBRC = 0'์ผ ๊ฑฐ๋ผ๊ณ ํ์ ํ๊ณ ์๋ตํ ๋ฏํ๋ค.)
2๊ฐ์ง ์ฌ๋ก๋ ์ค์ ๊ณ ๊ฐ์ฌ ์ด์์ ํ๋ค ๋ณด๋ฉด ์ด๋ฏธ ๊ฐ๋ฐ๋์ด ์๋ ํ๋ก๊ทธ๋จ์์ ์ข ์ข ๋ณผ ์ ์๋๋ฐ, ์ด๋ป๊ฒ ๋ณด๋ฉด ํด๋น ๊ตฌ๋ฌธ๋ค์ ํฉ๊ณ ๋ผ์ธ์ ์ ํํ์ง ์๋ ํ ์ ํ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค. ๊ทธ๋๋ ์ด๋ฐ ์์ธ ์ํฉ์ ์ค๋ฅ๋ฅผ ์กฐ๊ธ์ด๋ผ๋ ์ค์ด๋ ๊ฒ์ด ์ฐ๋ฆฌ์ ์ ์ด๊ธฐ์ ํ๋ก๊ทธ๋๋ฐ ์ ์กฐ์ฌํ ํ์๋ ์์ง ์์๊น ์ถ๋ค.
๊ฒฐ๋ก
: ALV ๋ผ์ธ ์ ํ ์ Method "GET_SELECTED_ROW"์ ๋ฐํ๋ ์ ๋ณด๋ Output Data์ (Sub) Total Data๊ฐ ๋ค๋ฅด๋ค.
: Method "GET_SELECTED_ROW" ์ฌ์ฉ ์ ALV ํฉ๊ณ ๋ผ์ธ ์ ๋ณด๋ฅผ ์ ์ดํ๋ ๊ฒ์ด ์๋๋ฉด, Parameter "et_row_id"์ Field "ROW_ID"๋ฅผ ์ฌ์ฉํ์. ( SY-SUBRC = '0' ์ ๋ฐ๋์ ์ฒดํฌ )
'ABAP Implimentation (๐ ๏ธ์ค๋ฌด) > ALV' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
|ALV| Column Optimize ( After ALV Refresh ) (1) | 2023.11.01 |
---|---|
|ALV| Event DATA_CHANGED์ DATA_CHANGED_FINISHED ์ฐจ์ด (3) | 2022.08.09 |
|ALV| EDIT ๋ชจ๋ (0) | 2022.07.25 |
|ALV| Toolbar Button ์ ์ด (Feat. TOOLBAR Event) (0) | 2022.07.19 |
|ALV| ๊ฐ๋ณ Cell ์ ์ด ( feat. STYLE ํ๋ ) (1) | 2022.07.14 |