본문 바로가기
ERP-SAP/ABAP

<ABAP> SALV toolbar Button hide. 버튼 숨기기(버튼 숨기기가 안될때) 방법

by 행복한워니의 기록 2024. 9. 9.
728x90
반응형

사실 salv는 잘 안써왔긴한데
최근에 간단한건 salv로 처리한다.
근데 간단하게 시작했다가 버튼달고 컨트롤하고 하며 기능이 점점 늘어가....고 있다 ㅎㅎㅎ

salv툴바는 카피해서 쓰고있다.

SALV_STANDARD 라고 이걸
GUI STATUS에 복사해서 쓰는데
이건 SALV_DEMO_TABLE_EVENT 프로그램
같은데서 복사해와도 된다..

아무튼....
이런 상태에서 버튼 2개를 추가했다.

이렇게 2개 버튼을 만들어 넣었는데

문제는 특정 유저 혹은 부서 혹은 선택한 라디오버튼에서만 저게 보여야 하고

아니면 숨겨야 한다.

즉, 권한을 가진 부서 + 승인선택 에서만 저게 보여야 한다는 뜻....

그럼 구글에 여러가지 버튼을 읽어오는 salv로직이 있다.



난 아래와 같은 로직으로 버튼을 숨겼다.



뭐 이것도 덤프가 난게
처음에 lr_functions -> get funtions()를 했으니
여기서 처리하려고 하였고
아래와 같은 로직을 하려했으나

(sort를 숨기는 예시)
lr_functions = gr_table->get_functions( ).
  lr_functions->SET_SORT_ASC( ).

어? 다른게 디버깅에서 안보이네???

해서


(아래는 정보성으로 더 붙여줌 ㅎㅎ)

***아래 코드는 표준 도구 모음을 설정하는 데 사용됩니다.

* §3.1 ALV 일반 함수
데이터 활성화: lr_functions 유형 참조 cl_salv_functions_list,
l_text 유형 문자열,
l_icon 유형 문자열.
상수 gc_true 유형 char1 값 'X'.
lr_functions = go_salv->get_functions( ).

lr_functions->set_all(gc_true).

***아래 코드는 표준 도구 모음 아이콘을 숨기는 데 사용됩니다.

try.
lr_functions->remove_function( name = '&GRAPH' ).
" ALV: General Error Class (Checked During Syntax Check)
catch cx_salv_not_found.
"ALV: General Error Class (Checked During Syntax Check)

catch cx_salv_wrong_call

endtry.

==정보 끝



자 다시 본문으로..
1. 디버깅시에 버튼 id들이 안보이는건....
se38 레포트로 가서

프로그램 : balvbufdel
을 한번 돌려 버퍼를 날려야 한다.

그 이후에 디버깅 해보니 버튼리스트를 제대로 가져오게 되었고

2. 위 사진처럼 cl_salv_functions를
새롭게 선언해서 루프돌며  펑션 네임을 확인 후 안보이게 처리하였다.

내가 덤프냈던건
lr_functions->remove_function( name = 'APRV' )

해서 덤프를 냈었다.. 없다고...

그러니 참고....

아 그리고... 저 loop 돌면서 visible 처리한후에
modify 할 필요 없다....
바로 셋 되니까....


728x90
반응형