[ABAP] APPLICTION TOOLBAR 커스텀(STATUS)

J._NA 개발일지·2024년 7월 16일
0

상황 : 라디오 버튼에 따라 조회화면, 업로드 화면이 보여진다.
조회 화면에는 REFH버튼을, 업로드 화면에는 SAVE 버튼을 나누어
보여지고 싶다.

MODULE SET_STATUS_0100 OUTPUT.

  DATA : LT_FCODE TYPE TABLE OF SY-UCOMM,
         LV_TTEXT TYPE CUA_TIT_TX.

  CLEAR : LV_TTEXT, LT_FCODE.

  IF TEXT-H01 IS INITIAL ##TEXT_POOL .
    PERFORM READ_PROG_DESC USING    SY-CPROG
                           CHANGING LV_TTEXT.
  ELSE.
    LV_TTEXT = TEXT-H01 ##TEXT_POOL.
  ENDIF.

  IF P_SEARCH = 'X'.
    APPEND 'SAVE' TO LT_FCODE.
  ELSEIF P_UPLOAD = 'X'.
    APPEND 'REFH' TO LT_FCODE.
  ENDIF.

  SET PF-STATUS 'S0100' EXCLUDING LT_FCODE[].
  SET TITLEBAR  'T0100' WITH LV_TTEXT.

ENDMODULE.
  • 이 화면은 PBO 화면이다. (화면이 로드될 때 실행되는 이벤트)

  • 'LT_FCODE'는 기능 코드(Function Code)를 저장할 내부 테이블
    화면에서 제외할 버튼을 지정하는데 사용

  • 'LV_TTEXT'는 제목 텍스트를 저장할 변수

  • CLEAR 초기화를 하는 이유는 이전 데이터가 남아 있지 않도록 하기 위함

  • 'TEXT-H01'이 비어 있는지 확인 이후 READ_PROG_DESC 폼을 호출하여 SY-CPROG 프로그램의 설명을 읽고, 이를 LV_TTEXT에 저장

  • ##TEXT_POOL 주석은 프로그램에서 메시지 클래스를 사용한다는 의미

  • IF P_SEARCH = 'X'.
    APPEND 'SAVE' TO LT_FCODE.
    P_SEARCH가 'X'인 경우, 조회 화면임을 나타냄, 이 경우 LT_FCODE 테이블에 'SAVE' 기능 코드를 추가
  • ELSEIF P_UPLOAD = 'X'.
    APPEND 'REFH' TO LT_FCODE.
    P_UPLOAD이 'X'인 경우, 업로드 화면임
    이 경우 LT_FCODE 테이블에 'REFH' 기능 코드를 추가
    이는 업로드 화면에서 REFH 버튼을 제외한다는 의미
  • SET PF-STATUS 'S0100' EXCLUDING LT_FCODE[]
    'S0100'이라는 상태(Status)를 화면에 설정
    LT_FCODE 테이블에 있는 기능 코드는 제외
profile
아밥 & 프론트엔드 개발자

0개의 댓글