메뉴 건너뛰기

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.
  

번호 제목 글쓴이 날짜 조회 수
1353 [요청]ALV관련 질문입니다.(필드 길이 최적화) UKS 2008.03.18 2661
1352 <b>[완료]</b>submit 하였을때 발생하는 back job 관련 질문 드림니다. [3] bd 2008.03.18 1365
1351 <b>[완료]</b>selection-screen의 라디오 버튼에 대해 질문이요~ [3] ABAP짱! 2008.03.18 2589
1350 <b>[완료]</b>월별로 인원수를 카운팅 하려고 합니다. [3] 2008.03.18 1408
1349 [요청]덤프 문의 internal table관련문의 [1] 제슨오 2008.03.18 1955
1348 [요청]cbo테이블에서 옵션사항을 줄때 생기는 에러에대해 문의드립니다. [1] 풍뎅이 2008.03.18 1507
1347 [요청]type line of와 like line of 의 차이에 대해 질문입니다. [3] 앙리 2008.03.17 1737
1346 <b>[완료]</b>아밥 덤프 관련 data types, data objects, field symbols 질문입니다. [2] SAMBATIME 2008.03.17 1314
1345 [요청][테이블 컨트롤] 라인별로 첨부화일 ... 나더몰라 2008.03.15 1370
1344 [요청]레포트 프로그램 출력화면 질문입니다. [1] 아밥~펑! 2008.03.14 1881
1343 [요청]ALV 헤더이름이 한줄로 되어있는데, 2줄이나 3줄로 만들어서 넣을수는 없나요? [6] 대지꿀꾸링 2008.03.14 2187
1342 [요청]인터널테이블 끼리 move-corresponding 안될까요~~ [5] genius 2008.03.14 10476
1341 [요청]혹시 사용자컨테이너의 위치를 동적으로 설정해 줄 수 있나요???? 왕초보 2008.03.14 1722
1340 [요청]SEARCH HELP 구현하는 방법을 자세히 알고 싶습니다. [4] 초보생 2008.03.14 2310
1339 <b>[완료]</b>펑션 만들때 IMPORT에 관한 질문입니다.. [3] 아밥입문자 2008.03.14 1615
1338 [요청]화면의 기존의 스크린페인터에서 이 [1] 풍뎅이 2008.03.13 1677
1337 [요청]매개변수 ID LIST나 이를 조회할 수 있는 테이블이나 장표 알고 싶습니다. [1] 꽁꽁 2008.03.13 2001
» [요청]지난 달이나 몇달 전 또는 몇달 후의 날짜를 계산하는 방법이나 시스템변수가 없을까요? [5] 대지꿀꾸링 2008.03.13 4477
1335 <b>[완료]</b>select문장에서 where조건에 관해.. [6] 로미오 2008.03.13 2115
1334 <b>[완료]</b>db 테이블 삭제후 재생성시 오류.. [4] file 쭈삣 2008.03.12 3046