Selection-screen (날짜 계산하는 function)
실행화면
2년전부터 오늘까지의 데이터를 가져온다.
보기에만 일자가 들어간게 아니라 실제 날짜 선택에 들어갔을 때 값으로도 들어가 있게 한다.
날짜 조건에 맞는 데이터만 가져온다.
프로그램 로직
변수 선언
TABLES: sflight.
DATA: gr_salv_tab TYPE REF TO cl_salv_table.
DATA : BEGIN OF wa.
INCLUDE TYPE spfli.
DATA : scarr TYPE scarr-carrname,
fldate TYPE sflight-fldate,
currency TYPE sflight-currency,
END OF wa,
gt_itab LIKE TABLE OF wa.
DATA: ca_date TYPE p0001-begda. "SE37에서 TYPE 확인
화면구성
SELECTION-SCREEN BEGIN OF BLOCK b1.
PARAMETERS: pa_carr TYPE sflight-carrid OBLIGATORY DEFAULT 'AA'. "필수값
SELECT-OPTIONS: s_connid FOR sflight-connid,
s_fldate FOR sflight-fldate.
PARAMETERS: pa_coun TYPE spfli-countryfr.
SELECTION-SCREEN END OF BLOCK b1.
초기값 설정
INITIALIZATION.
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
date = sy-datum
days = 0 "일
months = 0 "월
signum = '-'
years = 3 "년
IMPORTING
calc_date = ca_date.
"SELECT-OPTION 초기값
MOVE: 'I' TO s_fldate-sign, "INCLUDE, 아래값 포함
ca_date TO s_fldate-low, "AA부터
sy-datum TO s_fldate-high. "LH까지
APPEND s_fldate.
CLEAR s_fldate.
RP_CALC_DATE_IN_INTERVAL
기준 일자에 대해 일, 월, 년 이전 또는 이후 날짜를 계산하는 function이다.
Event
AT SELECTION-SCREEN.
IF pa_coun IS INITIAL. "아무것도 입력하지 않았을때
SELECT * FROM sflight AS a
INNER JOIN spfli AS b
ON a~carrid = b~carrid
AND a~connid = b~connid
INNER JOIN scarr AS c
ON a~carrid = c~carrid
INTO CORRESPONDING FIELDS OF TABLE gt_itab
WHERE a~carrid = pa_carr
AND a~connid IN s_connid
AND a~fldate IN s_fldate.
ELSEIF pa_coun IS NOT INITIAL. "입력했을때
SELECT * FROM sflight AS a
INNER JOIN spfli AS b
ON a~carrid = b~carrid
AND a~connid = b~connid
INNER JOIN scarr AS c
ON a~carrid = c~carrid
INTO CORRESPONDING FIELDS OF TABLE gt_itab
WHERE a~carrid = pa_carr
AND a~connid IN s_connid
AND a~fldate IN s_fldate
AND b~countryfr = pa_coun.
ENDIF.
"오름차순 정렬
SORT gt_itab BY carrid DESCENDING.
SORT gt_itab BY connid DESCENDING.
SORT gt_itab BY fldate DESCENDING.
"int를 list로 출력해주는 구문
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = gr_salv_tab
CHANGING
t_table = gt_itab.
gr_salv_tab->display( ).
Author And Source
이 문제에 관하여(Selection-screen (날짜 계산하는 function)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lyjoo7413/Selection-screen-날짜-계산하는-function저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)