CL_GUI_LIST_TREE
LIST_TREE는 노드의 데이터를 헤더/리스트 2개의 컬럼으로 트리를 표현합니다.
노드의 컬럼을 표현한다는 부분에서는 Column tree와 비슷하여 전반적인 사용 방법은 Column tree와 유사하지만 List tree의 경우 각각의 노드별로 Hierarchy 설정할 아이템(컬럼)을 지정할 수 있어 리스트로 데이터를 표현하기에 좀더 유연합니다.
> Column tree는 Tree Object에 Hierarchy 컬럼을 지정하여 모든 노드는 동일한 컬럼으로만 계층구조 표현
> List tree는 각 노드별로 Hierarchy 컬럼을 지정하여 개별 노드별로 계층구조의 표현을 다르게 가능
Hierarchy 이외의 컬럼은 List 컬럼에 단일 컬럼으로 합쳐져서 표현됨
#1. 노드 데이터
자주 사용하는 필드에 대한 설명
1) 노드
필드명 | 설명 | 값 |
NODE_KEY | 노드의 키값으로 중복 금지 | |
RELATKEY | 상위 노드의 키값 | |
HIDDEN | 숨김 여부 | 'X' : 숨김, ' ' : 표시 |
DISABLED | 트리 이벤트 비활성화 여부 | 'X' : 이벤트 비활성화, ' ' : 활성화 |
ISFOLDER | 폴더 여부 | 'X' : 폴더, ' ' : Leaf |
N_IMAGE | 기본 이미지(아이콘) | ICONNAME 형식 |
EXP_IMAGE | 폴더가 펼쳐졌을때 이미지(아이콘) | ICONNAME 형식 |
STYLE | 노드의 텍스트 스타일 | CL_TREE_CONTROL_BASE=>STYLE_DEFAULT "Normal CL_TREE_CONTROL_BASE=>STYLE_INACTIVE "Grey CL_TREE_CONTROL_BASE=>STYLE_INTENSIFD_CRITICAL "Red CL_TREE_CONTROL_BASE=>STYLE_INTENSIFIED "Blue CL_TREE_CONTROL_BASE=>STYLE_EMPHASIZED "Yellow background CL_TREE_CONTROL_BASE=>STYLE_EMPHASIZED_NEGATIVE "Red background CL_TREE_CONTROL_BASE=>STYLE_EMPHASIZED_POSITIVE "Green background CL_TREE_CONTROL_BASE=>STYLE_EMPHASIZED_A "Blue background CL_TREE_CONTROL_BASE=>STYLE_EMPHASIZED_B "Grey background CL_TREE_CONTROL_BASE=>STYLE_EMPHASIZED_C "Orange background |
LAST_HITEM | HIERARCHY 필드 | 어느 컬럼까지 HIERARCHY 로 표현할 것인지 필드명 입력 |
2) 아이템(노드의 컬럼)
필드명 | 설명 | 값 |
NODE_KEY | 노드의 키값 | |
ITEM_NAME | 컬럼명 | LIST TREE에서는 숫자로만 사용 |
CLASS | 컬럼 유형 | CL_GUI_COLUMN_TREE=>ITEM_CLASS_TEXT CL_GUI_COLUMN_TREE=>ITEM_CLASS_CHECKBOX CL_GUI_COLUMN_TREE=>ITEM_CLASS_BUTTON CL_GUI_COLUMN_TREE=>ITEM_CLASS_LINK |
T_IMAGE | 아이콘 | ICONNAME 형식 |
STYLE | 컬럼의 텍스트 스타일 | CL_TREE_CONTROL_BASE=>STYLE_DEFAULT "Normal CL_TREE_CONTROL_BASE=>STYLE_INACTIVE "Grey CL_TREE_CONTROL_BASE=>STYLE_INTENSIFD_CRITICAL "Red CL_TREE_CONTROL_BASE=>STYLE_INTENSIFIED "Blue CL_TREE_CONTROL_BASE=>STYLE_EMPHASIZED "Yellow background CL_TREE_CONTROL_BASE=>STYLE_EMPHASIZED_NEGATIVE "Red background CL_TREE_CONTROL_BASE=>STYLE_EMPHASIZED_POSITIVE "Green background CL_TREE_CONTROL_BASE=>STYLE_EMPHASIZED_A "Blue background CL_TREE_CONTROL_BASE=>STYLE_EMPHASIZED_B "Grey background CL_TREE_CONTROL_BASE=>STYLE_EMPHASIZED_C "Orange background |
LENGTH | 표시 길이 | LIST TREE에서만 사용 |
TEXT | 텍스트 |
#2. 이벤트
-. Double Click, Drag 등 여러 이벤트가 지원되며 NODE_DOUBLE_CLICK은 거의 필수로 사용한다
-. 트리의 Set_registered_events 메소드를 통해 이벤트를 등록해야 이벤드 핸들러 호출이 가능하며,
이벤트 등록(set_registered_events)시 APPL_EVENT = 'X' 지정하면 GUI_STATUS 이벤트처럼 PBO/PAI가 호출된다
#3. 소스코드 예시
관리회계의 각종 그룹(코스트센터 등)을 트리로 보여주는 리포트
P_CLASS로 표시할 그룹 선택
> 0101 : 코스트센터 그룹
> 0102 : 원가요소 그룹
> 0106 : 손익센터 그룹

'ABAP > 개발Tip' 카테고리의 다른 글
[개발Tip] SY-REPID 와 SY-CPROG 차이 (0) | 2023.10.30 |
---|---|
[개발Tip] Simple, Column, List Tree 비교 (0) | 2023.10.16 |
[개발Tip] CL_GUI_COLUMN_TREE 사용 방법 (0) | 2023.10.16 |
[개발Tip] CL_GUI_SIMPLE_TREE 사용 방법 (0) | 2023.10.16 |
[개발Tip] Event 호출로 백그라운드 작업 실행(Event Batch) (0) | 2023.09.14 |
댓글