메뉴 건너뛰기

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.
  

번호 제목 글쓴이 날짜 조회 수
6287 <b>[완료]</b>프로그램 사용 통계를 볼수 있는 프로그램이 있습니까? [6] activeman 2008.03.19 4303
6286 GOS_ATTACHMENT_LIST_POPUP 펑션 질문좀요..^^ 숟가락맨 2011.04.04 4287
6285 <b>[완료]</b>소수점 2째 자리에서 반올림하는 함수나 평션있나요? [2] 아밥어렵네요 2008.08.01 4283
6284 <img src=3.gif>BOM 다중 레벨 사용처 리스트 Function [5] 소마1010 2010.05.10 4278
6283 <b>[완료]</b>USER-COMMAND 부분 좀 알려주세요. [3] file 행복한외계인 2008.01.10 4274
» [요청]지난 달이나 몇달 전 또는 몇달 후의 날짜를 계산하는 방법이나 시스템변수가 없을까요? [5] 대지꿀꾸링 2008.03.13 4267
6281 <b>[완료]</b>엑셀 메크로와 sap 연동에 대하여 [1] SARA 2007.05.01 4265
6280 [요청]DB LINK ( 외부 디비 Oracle 임) 관련 문의 [4] 죠죠 2008.10.07 4263
6279 스마트폼에서 글자 가운데 정렬과 글자크기조정 [1] mean 2007.07.20 4260
6278 <img src=2.gif>아밥에는....형변환이 가능한가요? c --> p 혹은 c--->p 이런거 없나요? [5] marco 2010.07.12 4259
6277 <img src=2.gif border=0>QUAN 타입 소수점 없애기 질문입니다. [2] 아밥돌이 2009.05.18 4246
6276 <img src=2.gif>Short dump 질문입니다(FUNCTION AC_SYSTEM_FLUSH) [1] 덩콘 2010.05.06 4244
6275 <b>[완료]</b>alv 호출시 set_table_for_first_display , 필드심볼을 사용하면 refresh가 안됩니다. [5] SARA 2007.12.18 4244
6274 [질문] SELECTION-SCREEN에서 라디오버튼 이벤트 발생시 문의 [4] file GG 2007.08.22 4242
6273 <img src=3.gif>Include문에서 싱크체크할때 아래 오류가 나는 이유와 해결방법은 무엇일까요?^^ [3] file 노아 2011.03.31 4237
6272 1. 필드심볼에 대한답변( field-symbol ) file sapjoy 2007.02.27 4233
6271 SAP LUW 와 DATABASE LUW 에 관해 알고 싶습니다.. [3] bd 2007.03.23 4210
6270 [요청]ALV 부분합계에서... GETWA_NOT_ASSIGNED Dump 발생 [1] 하얀곰 2008.08.13 4207
6269 [요청]max(최대값)조건을 주려고 합니다. [3] 풍뎅이 2008.01.02 4205
6268 간단하 에러에 관한 질문 입니다. [3] bd 2007.08.21 4185