먼저 파라미터와 셀렉트 옵션은 실행가능 프로그램에서만 사용이 가능하다. 모듈풀에선 사용이 불가능하다.
파라미터와 셀렉트 옵션을 만들어보고 여러 조건도 줘보자.
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값도 포함하지 않게 된다. 클리어는 해주는게 좋다.
'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 |
댓글