메뉴 건너뛰기

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 지정.

번호 제목 글쓴이 날짜 조회 수
6326 스마트폼에 특수문자(®) 출력 문의 [1] file kimsap 2022.02.06 850
6325 질문 드립니다. [2] gigiyo 2022.01.26 358
6324 STANDARD_FULLSCREEN 버튼 제어 [3] file 유반장 2022.01.26 504
6323 메일 발송 복수 IP 설정 가능한지 궁금합니다. 안셀몽 2022.01.25 138
6322 BATCH JOB 실행을 위한 권한 [2] 이승승승 2022.01.24 595
6321 BADI ME_PROCESS_PO_CUST endless loop관련 file 제니킴킴. 2022.01.20 212
6320 Field symbol 과 텍스트 출력 [1] 서어억 2022.01.19 407
6319 Abap 언어는 대문자를 사용하나요? [3] twil0910 2022.01.18 477
6318 클래스로 만드는 장점이 어떤건가요? [3] 쌥맨 2022.01.14 2798
6317 구매처 BP 생성후 확정 여부 [1] licmd 2022.01.13 448
6316 개발화면인데 문의 좀 드립니다. [2] file 후덜덜 2022.01.12 373
6315 배치 parrell 수행 종료 건 관련 도움 부탁드립니다. [1] file 내꿈은여행가 2022.01.11 276
6314 예제 Z13_01 오류 확인부탁드립니다. [1] file 리얼오버 2022.01.08 216
6313 z07_05 예제인것가튼데요 오류나옵니다 ㅜㅜ [1] 리얼오버 2022.01.07 173
6312 z07_04문제  실행해 보았는데fail뜹니다. 리얼오버 2022.01.07 92
6311 sap 에서 f4키를 누르면서 찾기 하려는데 튕김,꺼짐 현상 있는데요 [3] file 리얼오버 2022.01.07 712
6310 Z05_35 예제질문드려도 될까요? 실행해보니 책은 CARRID, CARRNAME 2개다 조회되는데요 [4] 리얼오버 2022.01.07 175
6309 Z04_14 질문드려도 될까요? GV_PROG에 %_T000008은 어떻게 나오는걸까요? [3] file 리얼오버 2022.01.07 137
6308 이지아밥2.0 예제 z04_05 질문드립니다. [2] file 리얼오버 2022.01.07 204
6307 Function Group: EINR 관련 문의 드립니다. [4] 쌥맨 2022.01.07 120