본문 바로가기
ERP-SAP/ABAP

<ABAP> Selection Screen 만들 시 조건에 따라 출력 필드 다르게 하기

by 행복한워니의 기록 2010. 12. 2.
728x90
반응형

우선 두개의 비교 화면을 보자.




일반계좌일때는 세부조건이 나오는데 전도금 계좌일 때는....아래와 같이..



안나오게 만들고 싶을때.... 앞서 작성한 스크린 조작하고 똑같다고 생각하면 된다.

아래는 TOP 부분의 소스이다.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-007.    "계좌유형 소스
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS PA_R1 RADIOBUTTON GROUP RG1 MODIF ID RG0              "일반계좌 
                             USER-COMMAND HIDE DEFAULT 'X'.   <- 이거 안주면 라디오 버튼 다르게 눌러도 안바뀜!
SELECTION-SCREEN COMMENT 5(15TEXT-001 FOR FIELD PA_R1.         그 이유는 스크린에서 이벤트가 없어서! 엔터쳐야 바뀜
PARAMETERS PA_R2 RADIOBUTTON GROUP RG1.                          "전도금 계좌 
SELECTION-SCREEN COMMENT 25(15TEXT-002 FOR FIELD PA_R2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B2.

SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-008.   "세부조건 소스 
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS PA_R3 RADIOBUTTON GROUP RG2 MODIF ID RA1.            "전체내역 
SELECTION-SCREEN COMMENT 5(5TEXT-003 FOR FIELD PA_R3 MODIF ID RA1.
PARAMETERS PA_R4 RADIOBUTTON GROUP RG2 MODIF ID RA1.            "입금내역
SELECTION-SCREEN COMMENT 15(5TEXT-004 FOR FIELD PA_R4 MODIF ID RA1.
PARAMETERS PA_R5 RADIOBUTTON GROUP RG2 MODIF ID RA1.            "출금내역
SELECTION-SCREEN COMMENT 25(5TEXT-005 FOR FIELD PA_R5 MODIF ID RA1
PARAMETERS PA_R6 RADIOBUTTON GROUP RG2 MODIF ID RA1.            "집금내역 
SELECTION-SCREEN COMMENT 35(5TEXT-006 FOR FIELD PA_R6 MODIF ID RA1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B3.


으로 만들어준 상태이다. 
볼것은 RADIO BUTTON GROUP이다. 위는 RG1  아래는 RG02

RG1의 상태에 따라서 RG02를 보였다 안보였다 하는게 문제이다.

*********************************************************************
REPORT  ZTRR024 MESSAGE-ID ZMTR.


INCLUDE ZTRR0024_TOP.                   " 변수 선언
INCLUDE ZTRR0024_ALV.                   " ALV 세팅
INCLUDE ZTRR0024_GET_USER_BUKRS.        " USER 값 세팅

AT SELECTION-SCREEN OUTPUT.      <- 이 부분에 넣어야 한다. 만들어서 넣자. 
  "계좌별 세부사항 표시
  LOOP AT SCREEN.                <- 스크린을 돌면서  
    IF SCREEN-GROUP1 'RA1'.    <-만약 스크린 MODIF ID가 RA1이면 
      CASE 'X'.                  <- X일때, 뭐가?(는 아래에..)
        WHEN PA_R1.              <- PA_RA1 라디오버튼이 체크일때...
          SCREEN-ACTIVE '1'.   <- 스크린 활성화 
        WHEN OTHERS.             <- 나머지는 비활성화
          SCREEN-ACTIVE '0'.
      ENDCASE.
    ENDIF.
    MODIFY SCREEN.               <- 이거 꼭 해주기...
  ENDLOOP.

" 계좌번호 탐색도움말
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_ACNT-LOW.
  PERFORM SEARCH_HELP.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_ACNT-HIGH.
  PERFORM SEARCH_HELP.

*************************************************************************************

이렇게 된다 이거지...
생각보다 간단하다. 근데 저 아래 보이는 탐색 도움말도 궁금하다면..
다음 포스팅에서 설명해주겠다. 





728x90
반응형