[율밥퍼] SAP ABAP - ALV HANDLE_USER_COMMAND(Feat. SENDER)
이건 이렇게 따로 적어야하나 말아야하나..
고민을 많이했다..
USER_COMMAND 파트의.. 로직이라..
진짜 별게 없어서 따로 적을ㄲ ㅏ
T00LBAR설명이랑 합칠ㄲ ㅏ
고민을 많이했G..
근데 별건 아니지만 TIP을 하나 쓰기 위해
그냥 따로 글을 적기로 결결결심.
일단!!!
USER COMMAND가 무엇이냐하면!
프로그램에서 메뉴바의 기능을 선택하거나 버튼을 눌렀을 때 발생하는 이벤트다.

일단 기본적으로
IMPLEMENTATION단의 METHOD 정의 부분에서 기본적으루
쓰이는 파라미터는 하나당.

PERFORM문 안에는

보통 이렇게 쓰임.
버튼을 누르면 E_UCOMM(=PV_UCOMM)값이
찍히는데
그 UCOMM값이 어떤 것이냐에 따라 내가 로직을 이어나가면 되는것!
SY-UCOMM이란?
MENU에서 선택된 버튼의 FUNCTION CODE를 할당함.
(기본 GUI STATUS등등 모든 버튼의 Function Code 값임 )

어떤값이 들어가있는지 확인 할 수 있다.
여기서는 E_UCOMM에 찍힌다
저 PV_UCOMM(E_UCOMM)값은 ALV TOOLBAR 에서 설정한 Function 값임.
라인 INSERT를 해도 되고 라인 DELETE를 해도 된당.
끝.
ㅋㅋㅋㅋㅋㅋㅋ....
진짜 뭐 별거 없다 여기는..
그래도 팁을 하나 주자면
기본 파라미터중에 SENDER라는 파라미터가 있당.
이건 ALV를 SPLIT으로 여러개 쪼개 GRID를 여러개 그리게 되는데
어떤 GRID에서 눌린것인지 명확히 해아할 때 쓰면 좋다.
USER_COMMAND에서도 쓰이지만 다른 곳에서도 쓰인다.
만약 본인이 가지고 있는 템플릿에 SENDER가 안쓰여져 있다면 당황하지마라.
DEFINITION이랑 IMPLRMRNTATION에 내가 선언해주면 된당.


PERFORM문 안은

PO_SENDER에 버튼을 누른 GRID값이 찍히고
그 GRID에따라 먹히는 버튼 값을 설정해준거당.
이 로직으로보면 일단 3개의 분할화면이 있고
GRID1일때만 새로고침이 가능하게,
GRID2일때만 라인 INSERT,
GRID3일때만 DELETE 하도록 설정해 놓은거당.
여러가지 분할화면에서 버튼에 대한 액션을 다르게 주어야 할때
아주 유용하당
