메뉴 건너뛰기

SAP 한국 커뮤니티



달력을 한번 만들어 봤는데요 ^^;; 밑에 보시다시피 너무 노가다 성인데요..


특히 각 달의 1일의 위치를 잡아 주는 부분이 많이 노가다 성이 되던데...


그부분을 좀더 간소화할 방법이 있나요...?


 


REPORT  zljs_test8 LINE-SIZE 92.

PARAMETERS: g_yea(4),
            g_mon(2TYPE n.
DATA: g_day(2TYPE n,
      g_2mon TYPE i.                 "윤달 구분 값.
DATA: g_ymf TYPE scal-date.          "function에 넣을 값.
DATA: g_result TYPE scal-indicator.  "function에서 받을 값.
DATA: day TYPE i.    "지정 달의 일수를 받는 부분
DATA: g_space(10).   "1일 날짜 앞에 빈칸 만들기용

data: 1_day(10VALUE '일요일', 2_day(10VALUE '월요일', 3_day(10VALUE '화요일',
      4_day(10VALUE '수요일', 5_day(10VALUE '목요일', 6_day(10VALUE '금요일',
      7_day(10VALUE '토요일'.

write: sy-uline,
      / sy-vline, 1_day, sy-vline, 2_day, sy-vline, 3_day, sy-vline, 4_day,
        sy-vline, 5_day, sy-vline, 6_day, sy-vline, 7_day, sy-vline,
      / sy-uline.

IF g_mon = 1 or g_mon = 3 or g_mon = 5 or g_mon = 7 or g_mon = 8 or g_mon = 10 or g_mon = 12.
  day = 31.
ELSEIF g_mon = 4 or g_mon = 6 or g_mon = 9 or g_mon = 11.
  day = 30.
ELSEIF g_mon = 2.                                           "2월 윤달 구분
  g_2mon = g_yea MOD 4.
  IF g_2mon = 0.
    day = 29.
  ELSE.
    day = 28.
  ENDIF.
ENDIF.

DO day TIMES.
  g_day = sy-index.
  CONCATENATE g_yea g_mon INTO g_ymf.
  CONCATENATE g_ymf g_day INTO g_ymf.    "펑션에 넣어줄 형태로 만들어주기.

  CALL FUNCTION 'DATE_COMPUTE_DAY'
    EXPORTING
      date = g_ymf
    IMPORTING
      day  = g_result.
  IF g_result = 6.
    WRITE:  (10)g_day , sy-vline,
           / sy-uline, sy-vline.
  ELSEIF g_result <> 6.
    IF g_day = 1.                   "매월 1일 위치 잡는 부분...
      CASE g_result.
        WHEN '1'.
          WRITE : sy-vline, g_space, sy-vline, (10)g_day, sy-vline.
        WHEN '2'.
          WRITE : sy-vline, g_space, sy-vline, g_space, sy-vline,
                 (10)g_day, sy-vline.
        WHEN '3'.
          WRITE : sy-vline, g_space, sy-vline, g_space, sy-vline,
                  g_space, sy-vline, (10)g_day, sy-vline.
        WHEN '4'.
          WRITE : sy-vline, g_space, sy-vline, g_space, sy-vline,
                  g_space, sy-vline, g_space, sy-vline, (10)g_day,
                  sy-vline.
        WHEN '5'.
          WRITE : sy-vline, g_space, sy-vline, g_space, sy-vline,
                  g_space, sy-vline, g_space, sy-vline, g_space,
                  sy-vline, (10)g_day, sy-vline.
        WHEN '6'.
          WRITE : sy-vline, g_space, sy-vline, g_space, sy-vline,
                  g_space, sy-vline, g_space, sy-vline, g_space,
                  sy-vline, g_space, sy-vline, (10)g_day, sy-vline.
        WHEN '7'.
          WRITE : sy-vline, (10)g_day, sy-vline.
      ENDCASE.
    ELSE.
      WRITE: (10)g_day, sy-vline.
    ENDIF.
  ENDIF.
ENDDO.
WRITE: / sy-uline.

TOP-OF-PAGE.
  FORMAT COLOR 3.
  WRITE: g_yea, '년', g_mon, '월'.        "TOP OF PAGE 지정.

번호 제목 글쓴이 날짜 조회 수
6367 [질문] 스텐다드 화면 별 기능 수정 방법 [3] hibernate 2022.06.24 744
6366 스탠다드와 CBO 테이블이 나뉘는 이유가 궁금합니다 [2] 아밥린이 2022.06.21 2694
6365 PERFORM 구문 자주 사용 여부 [4] dev 2022.06.14 515
6364 ABAP Trial 서버에서 SE16N 기능 여부 [2] dev 2022.06.13 504
6363 call browser [2] sapecc6 2022.06.11 776
6362 테이블 데이터 중 근사치 값 선택하기 [5] 시원한바람 2022.06.10 451
6361 SO_DOCUMENT_SEND_API1 메일 첨부파일 1개 이상 가능 여부 [3] file alarm 2022.06.09 970
6360 SO_DOCUMENT_SEND_API1 함수 사용하여 메일링 기능 사용 중 문의사항이에요! [3] file alarm 2022.06.09 582
6359 solix ITAB -> Xstring 변환중 렝스길이.. [4] 먹다망고야 2022.06.07 595
6358 달력에 공휴일 지정하려면 어떻게 해야하나요? [1] yoon123 2022.06.03 778
6357 SAPGUI 엔터 키 사용 문의 입니다. [4] 십년만에 2022.06.02 547
6356 se11의 Width of Output List 에 대해 [2] file amelia 2022.05.18 434
6355 데이터 추출 [3] 블랙 2022.04.27 645
6354 pdf file 업로드 및 출력 [2] sapecc6 2022.04.23 738
6353 Desktop Office Integration in the webgui 문의.. [2] file Zekokim 2022.04.20 645
6352 abap -> asws s3 접근 코딩... [1] sapecc6 2022.04.19 399
6351 디버깅 시 데이터 나오는데 실행시키면 안나오는 이유 [1] cpfl 2022.04.16 513
6350 ALV 변경된 LAYOUT에 저장되어 있는 필드 찾는법 [1] jini 2022.04.09 928
6349 ALV GRID 에서 값 수정 후 DUMP 에러로 GETWA_NOT_ASSIGNED 가 뜹니다. [1] file 메론쥬스 2022.04.08 885
6348 webgui에서 영역 메뉴 바로 호출하는 방법 Zekokim 2022.04.06 511