상황에 맞게 100번 screen의 버튼을 활성화 하거나 비활성화 하고자 한다.
일반적으로 변경/수정 가능한 버튼을 숨길 때 많이 사용한다.
먼저 STATUS에서 전체 버튼을 만들어 준다.
-> 숨길 버튼 포함하여 컨트롤해줄 버튼까지 만들어 준다.
그럼 이렇게 총 3개의 버튼이 생기고, 가위 표시를 누르면
나머지 두개의 버튼이 숨겨진다.
TOP 부분 데이터 선언
DATA: g_tbar TYPE TABLE OF sy-ucomm,
g_check TYPE C.
해당 부분을 활성화 하기 위해서는 먼저 DATA 선언을 해준다.
버튼을 눌렀을때 툴바를 컨트롤 해줄 것이기 때문에 SY-UCOMM으로 선언해준다.
주의해야 할 점은 테이블 타입으로 선언해주어야 한다는 것이다.
가위 버튼이 눌려졌을 때 컨트롤을 할 것이므로 PAI 에서 G_CHECK에 'X'를 체크해준다.
REFRESH g_tbar.
IF g_check = 'X'.
APPEND 'CHAN' TO g_tbar. "
APPEND 'SAVE' TO g_tbar. "
ENDIF.
SET PF-STATUS 'STATUS_0100' EXCLUDING g_tbar .
SET TITLEBAR 'TITLE_0100' .
IF g_check = 'X'.
APPEND 'CHAN' TO g_tbar. "
APPEND 'SAVE' TO g_tbar. "
ENDIF.
SET PF-STATUS 'STATUS_0100' EXCLUDING g_tbar .
SET TITLEBAR 'TITLE_0100' .
PBO에서 G_CHECK 값으로 로직을 짜주면 된다.
'X' 일때 CHAN과 SAVE를 g_TBAR에 넣어서 EXCLUDING해준다.
반대로 버튼을 눌렀을 때 버튼을 활성화 하고 싶다면 G_CHECK에 디폴트로 'X'값을 넣어주고 가위 버튼일 눌릴때 ' ' 를 넣어주거나, g_check가 initial일때 어펜드 하는 식으로 로직을 변경해주면 된다.
IF G_CHECK IS INITIAL.
G_CHECK = 'X'.
ELSE.
CLEAR G_CHECK.
ENDIF.
G_CHECK = 'X'.
ELSE.
CLEAR G_CHECK.
ENDIF.
여기서 또 주의할점은 g_check와 g_tbar을 제때 clear해주어야 지속적으로 반영이 된다.
Tags:
SAP ABAP