메뉴 건너뛰기

SAP 한국 커뮤니티

 


SY-datum 이 현재 날짜를 불러오는 것인데,


 


제가 하고자 하는 것은,


예를 들어, 오늘이 3월 12일이면


 


2007년 12월 01일과  2008년 2월 29일까지의 데이터를 찾기위해


20071201 20080229


20080301 20080330


20080401 20080430


20080501 20080531


20080601 20080630


 


SELECTION-SCREEN 에서 별도의 날짜 조건 입력없이


현재날짜를 기준으로 과거 2개월 데이터 그리고 앞으로 한달치의 수량을 측정하기위해


위와 같은 날짜 변수를 구해야 하는데, 월(month)을 구하는 시스템변수나 쉬운 방법이 없을까요?


저 위의 날짜들은 SELECT 문에 where 조건에 넣을 날짜들입니다. 


 


========================================================


밑에 로직은 제가 짠건데, 현재가 3월 12일이라면 3개월전인 20071201 ~ 20080601


이걸 구하는 로직입니다.


위의 조건날짜를 다 찾으려면 너무 복잡할 것 같아서


그러는데, 고수님들 조언좀 부탁드려요!!


 


참고로 현재달을 찾는 시스템변수가 있어서 -1나 -2 를 했을때,


(예를 들어 0803 이라는 현재달까지 계산되는 시스템변수에서 -2를 했을때 0801 이런식으로


되면 얼마나 좋을까요? 이렇게 하려면 INT 로해서 형변환후 해야되나?@.@


아밥은 형변환 하는 것도 잘 모르겠네여@.@)


이전달을 나타낼 수 있게 하면 좋을텐데,


그게 안되는 거 같아요!!


경험 많으신 님들...Tip 좀 부탁드릴께요~


 


 

DATA : month TYPE i,  "월을 저장하기 위한 변수.
           year TYPE i"윤달을 계산하기 위해 년도를 저장하는 변수
           remain TYPE i"윤달을 계산하기 위해 나머지 값을 저장하는 변수
           date_low TYPE sy-datum,  "현날짜로부터 3개월 과거를 계산
           date_high LIKE sy-datum, "현날짜로부터 3개월 미래를 계산
           date LIKE sy-datum.  "현날짜

* 해당년도를 4로 나누었을 때, 나머지가 0이면 윤달이므로 2월이 29일까지 존재.
  year = sy-datum+0(4).
  remain = year MOD 4.

  CONCATENATE sy-datum+0(6'01' INTO date.
  date_low = date - 70.  "3개월전이므로 어림잡아 70을 넣음.
  CONCATENATE date_low+0(6'01' INTO date_low.

  date_high = date + 100. "3개월 이후므로 어림잡아 100을 넣음.
  month = date_high+4(2).
  IF month = 1 OR month = 3 OR month = 5 OR month = 7
    OR month = 8 OR month = 10 OR month = 12.
    CONCATENATE date_high+0(6'31' INTO date_high.
  ELSEIF month = 4 OR month = 6 OR month = 9 OR month = 11.
    CONCATENATE date_high+0(6'30' INTO date_high.
* 윤달계산
  ELSEIF month = 2.
    IF remain = 0.
      CONCATENATE date_high+0(6'29' INTO date_high.
    ELSE.
      CONCATENATE date_high+0(6'28' INTO date_high.
    ENDIF.
  ENDIF.
  

번호 제목 글쓴이 날짜 조회 수
6327 <img src=3.gif>문자열 자릿수 계산 질문입니다!! [5] ASDF 2010.11.10 4665
6326 [요청]like table of, like, type table of, type 의 차이점 [3] copine 2008.06.20 4653
6325 [요청]EU_SCRP_WN32 : timeout during allocate / CPIC-CALL: 'ThSAPCMRCV' 노름마치 2007.12.14 4639
6324 <b>[완료]</b>alv 호출시 set_table_for_first_display , 필드심볼을 사용하면 refresh가 안됩니다. [5] SARA 2007.12.18 4635
6323 [re] [요청]TYPE p DECIMALS 2. 에 관하여 질문드립니다 [1] 아밥퍼 2008.11.05 4631
6322 <img src=2.gif>인터널 테이블 중에서 가장 큰 값 작은값 구해오는 방법 [4] 아밥고지를 찾아서 2010.06.25 4624
6321 [질문] SELECTION-SCREEN에서 라디오버튼 이벤트 발생시 문의 [4] file GG 2007.08.22 4616
6320 <img src=2.gif>인터널 테이블의 조건절 삭제 관련 질문입니다. [2] 왕초~삽질맨 2011.02.09 4603
6319 <b>[완료]</b>[re] gui_upload로 엑셀 upload 질문입니다. [3] 띵호아빠 2008.08.24 4596
6318 <img src=2.gif>엑셀 업로드시 [17] sapjoy 2007.03.20 4595
6317 <img src=2.gif>CONCATNATE를 이용한 공백 추가 질문입니다. [5] rudtnfkrn 2010.10.07 4594
6316 <b>[완료]</b>TABLE CONTROL 에 관한 질문(행추가, 행삭제) 드립니다. [4] file 튀밥 2008.11.26 4591
6315 <img src=2.gif border=0>F4IF_INT_TABLE_VALUE_REQUEST 질문입니다. [2] 뫄* 2009.07.16 4585
6314 스마트폼에서 글자 가운데 정렬과 글자크기조정 [1] mean 2007.07.21 4577
6313 [요청]ALV에서 LISTBOX값 변경할때마다 메소드타는법질문이에요~^^ [5] 피크민 2009.03.27 4566
6312 <img src=3.gif>LVC_S_LAYO에 있는 CWIDTH_OPT기능관련해서 일부 필드만 열넓이 최적화를 하지 않을 수 있을까요? [4] 열공합시다 2011.01.14 4564
6311 <img src=2.gif>ABAP 문법에서 (.) 소수점 계산을 어찌하나요 @@? [4] 도라에멍 2010.09.27 4559
6310 <img src=2.gif>Short dump 질문입니다(FUNCTION AC_SYSTEM_FLUSH) [1] 덩콘 2010.05.06 4542
6309 <b>[완료]</b>SELECT DISTINCT 에서 DISTINCT 설명 해주세요 [2] 因緣 2008.10.29 4531
6308 <b>[완료]</b>소수점 2째 자리에서 반올림하는 함수나 평션있나요? [2] 아밥어렵네요 2008.08.01 4519