본문 바로가기
ABAP

Parameter, Select-options, Initialization

by clode 2023. 1. 24.
728x90
반응형

먼저 파라미터와 셀렉트 옵션은 실행가능 프로그램에서만 사용이 가능하다. 모듈풀에선 사용이 불가능하다.

파라미터와 셀렉트 옵션을 만들어보고 여러 조건도 줘보자.

 

PARAMETER 조건

실행화면

TABLES : sbook.

셀렉트 옵션 for 에 사용하려는 필드는 tables로 선언이 되어있어야한다.

SELECTION-SCREEN BEGIN OF BLOCK B1 
			WITH FRAME TITLE TEXT-001.

가독성 위해 블록을 만들어준다. 블록의 이름은 단일조건. B1 블록엔 파라미터 해줄거니깐!

PARAMETERS: pa_carr TYPE sflight-carrid 
				OBLIGATORY DEFAULT 'AA', 

OBLIGATORY는 이 파라미터 값을 필수값을, DEFAULT는 초기값을 설정한다.

pa_name AS CHECKBOX DEFAULT 'X', 
pa_curr AS CHECKBOX DEFAULT ' ',

체크박스는 각각 설정한다. 하나씩 체크하니까

pa_lim_1 RADIOBUTTON GROUP lim DEFAULT 'X', 
pa_lim_2 RADIOBUTTON GROUP lim,
pa_lim_3 RADIOBUTTON GROUP lim,

라디오버튼은 이름이 같은 한 그룹으로 묶는다. 그래서 초기값은 하나의 그룹으로 묶인 변수들 중 하나만 설정이 가능하다.

pa_seqnr TYPE zs1d11t_01 MATCHCODE OBJECT zs1d11h_01. 
SELECTION-SCREEN END OF BLOCK B1.

전 게시물에서 만든 서치헬프를 로직으로 띄워줄수도 있다. 탐색 도움말 설정. 파라미터 블록은 .


한 라인에 여러 PARAMETER 표시

실행화면

SELECTION-SCREEN BEGIN OF LINE. 
    SELECTION-SCREEN COMMENT 1(20) TEXT-S03.

    SELECTION-SCREEN COMMENT 25(8) TEXT-S04.
    PARAMETERS PA_COL AS CHECKBOX.
    SELECTION-SCREEN COMMENT 37(8) TEXT-S05.
    PARAMETERS PA_ICO AS CHECKBOX.
    SELECTION-SCREEN END OF LINE.

SELECT-OPTIONS 조건

SELECTION-SCREEN BEGIN OF BLOCK B2 
			 WITH FRAME TITLE TEXT-002.

블록 B2는 셀렉트 옵션이니까 텍스트는 복수조건.

SELECT-OPTIONS: s_carr FOR sbook-carrid NO INTERVALS,
		s_conn FOR sbook-carrid NO-EXTENSION.
        
SELECTION-SCREEN END OF BLOCK B2.
CONSTANTS gc_mark VALUE 'X'. "값 유효성 체크

NO INTERVALS는 high값을 없애주는 기능, 확장기능 막기
NO-EXTENSION은 low, high 값만 필요할때 사용, 복수값 사용 막기


추가 SELECTION-SCREEN 호출

실행화면

PARAMETERS PA_ADD AS CHECKBOX USER-COMMAND ADD. 

유저가 클릭했을때 이벤트 타겠다

SELECTION-SCREEN BEGIN OF SCREEN 1100.
  PARAMETERS: PA_CUS AS CHECKBOX,
              PA_AGY AS CHECKBOX.
SELECTION-SCREEN END OF SCREEN 1100.

1100번의 추가 스크린을 만들어준다. 1100번 스크린에는 PA_CUS와 PA_AGY가 있다.

AT SELECTION-SCREEN ON PA_ADD.
  IF PA_ADD EQ 'X'.
    CALL SELECTION-SCREEN 1100
    STARTING AT 5 5  "화면에서 시작하는 위치
    ENDING AT 50 10. "화면에서 끝나는 위치
     IF SY-SUBRC <> 0.
        LEAVE TO SCREEN 1000.
     ENDIF.
  ENDIF.

사용자가 pa_add 값에 체크를 하면, 화면 1100을 불러온다. 근데 전체가 아니라 팝업창처럼 불러온다. STARTING AT과 ENDING AT은 화면 크기를 나타낸다.


INITIALIZATION

SELECTION SCREEN 초기값 설정

INITIALIZATION. 

MOVE gc_mark TO pa_curr. 

파라미터 초기값

MOVE: 'I' TO s_carr-sign, "INCLUDE, 아래값 포함
          'BT' TO s_carr-option,
          'AA' TO s_carr-low, "AA부터
          'LH' TO s_carr-high. "LH까지
APPEND s_carr.
CLEAR s_carr.

MOVE: 'E' TO s_carr-sign, "EXCLUDE, 아래값 포함 X
          'EQ' TO s_carr-option,
          'DL' TO s_carr-low.
APPEND s_carr.
CLEAR s_carr. 

SELECT-OPTIONS 초기값
CLEAR 해주지 않으면 high값 LH가 남아있는 상태기 때문에 CLEAR를 하지 않게 되면 LH값도 포함하지 않게 된다. 클리어는 해주는게 좋다.

728x90
반응형

'ABAP' 카테고리의 다른 글

조회조건 날짜 계산하여 기본값 넣기 (RP_CALC_DATE_IN_INTERVAL)  (0) 2023.01.24
Subscreen  (2) 2023.01.24
간단한 SQL 실습 2  (0) 2023.01.24
간단한 SQL 실습  (0) 2023.01.24
Lock object  (0) 2023.01.24

댓글