짠
이번엔
ALV EVENT HANDLE TOOLBAR
사용방법을 소개하겠습니다
밥린이 점심먹고 왔더니 졸립니다
잠깰겸
월급좀도둑이 되어보겠슴

ALV TOOLBAR는

툴바 버튼을 커스터마이징할때 쓰이는 이벤트다ㅎㅎ
일단 INCLUDE에
로컬 클래스 IMPLEMENTATION을 선언했다면!
툴바 퍼폼으로 들어가준당.

이제 이 안에 로직을 적어주면 되는데.
여기서
E_OBJECT의 타입은
TYPE REF TO CL_ALV_TOOLBAR_SET.으로 적어주면 된다.
예시)

일단 내가 PERFORM문 안에 예시로 적은 로직들을 보여주자면

스트럭쳐 구성에 맞게 적은 후
CL_ALV_EVENT_TOOLBAR_SET을 참조하는 PO_OBJECT의
MT_TOOLBAR(테이블임)에 라인을 추가해주는 것이당.
MT_TOOLBAR의 스트럭쳐 구조를 보자면!

일단 간단한 설명을 보면 어떻게 적용해야하는지 보이겠지만,
간단하게 주요설정 값들을 설명하자면!
- FUNCTION
음.. 버튼을 눌렀을 때
UCOMM에 먹일 값? 이름을 지어주는 것이라고 생각하면
될거같당.
내 예시에서 보면 GC_UCOMM-REFRESH라고 되어있는데
나는 하드 코딩을 최소화하기 위해
글로벌로 미리 상수를 선언해 뒀다
저 안에는 'REFRESH'라는 값이 들어있음
그래서
FUNCTION = 'REFRESH'
라고 입력되어있다고 보면 된당
내가 버튼을 누르면 UCOMM에 'REFRESH' 값이 찍히고
그것에 맞는 로직을 작성하면 된다.
2. ICON
말그대로 아이콘이당
내가 사용하고 싶은 아이콘 이름을 넣어주면 된당.
->아이콘 검색방법

마음에 드는거 골라 쓰세욤
3. BUTN_TYPE
이건 버튼타입이다.
ALV 버튼 타입은
도메인 TB_BTYPE 에서 확인가능.

3번 분리자를 쓰기도하고 라디오버튼..체크박스.. 등등..
필요에 따라 버튼타입 구분해주면 됨.
4. TEXT
이것도 말그대로 TEXT다.
아이콘이랑 같이 쓰면 아이콘이랑 텍스트랑 같이 나온당.
아이콘없이 텍스트만 쓰면 버튼에 텍스트만 나옴 ㅎㅎ
- 대충 자주쓰는거 설명 끝 -
일단 뉴신텍스가 낯선 밥린이들을 위해 풀어서 적어드리자면,
DATA : LS_TOOLBAR TYPE STB_BUTTON.
CLEAR LS_TOOLBAR.
LS_TOOLBAR-FUNCTION = 'REFRESH'.
LS_TOOLBAR-ICON = ICON_REFRESH.
LS_TOOLBAR-BUTN_TYPE = 0.
INSERT LS_TOOLBAR INTO PO_OBJECT->MT_TOOLBAR INDEX 1.
CLEAR LS_TOOLBAR.
LS_TOOLBAR-BUTN_TYPE = 3.
APPEND LS_TOOLBAR TO PO_OBJECT->MT_TOOLBAR.
이런식으로 원하는 라인에 INSERT 해도 되고
맨끝에다가 그냥 APPEND 해도 된당.
버튼 순서는 내가 넣은대로 나온당
복붙하기 좋게
뉴신텍스.VER도 올리겠삼.
INSERT VALUE #( BUTN_TYPE = 3 )
INTO PO_OBJECT->MT_TOOLBAR
INDEX LINES( PO_OBJECT->MT_TOOLBAR ) + 1.
INSERT VALUE #( FUNCTION = GC_UCOMM-INSERT
ICON = ICON_INSERT_ROW
BUTN_TYPE = 0
TEXT = TEXT-B02 )
INTO PO_OBJECT->MT_TOOLBAR
INDEX LINES( PO_OBJECT->MT_TOOLBAR ) + 1.
PERFORM문 안에 이렇게 넣어주면 끝 -

'밥린이의 아밥TIP' 카테고리의 다른 글
[율밥퍼] SAP ABAP - ALV HANDLE_DATA_CHANGED (0) | 2023.09.08 |
---|---|
[율밥퍼] SAP ABAP - ALV HANDLE_USER_COMMAND(Feat. SENDER) (0) | 2023.09.07 |
[율밥퍼] SAP ABAP - Search Help F4 (1) | 2023.09.05 |
[율밥퍼] ABAP 필드심볼 - FIELDSYMBOL 3 (Feat. 역참조) (0) | 2023.09.03 |
[율밥퍼] ABAP 필드심볼 - FIELD-SYMBOL2 (심화 Ver.) (3) | 2023.09.02 |