안녕하세요 열심히 일하시느라 수고가 많으시겠지만 작은 도움하나만 부탁드릴께요
제가 프로그램을 하나 짜고 있는데 초기 입력조건에 날짜가 들어갑니다.
보통 sy-datum 으로 선언을 하면 서치헬프로 달력이 뜨고 클릭하면 2009.02.01
이렇게 들어가는데 제가 해야할껀 2009.02 까지 입니다.
달까지만 필요한거거든요
그래서 지금은 파라미터 속성에서 달까지만 보여주도록 나타내었고
프로그램상에서는 오프셋을 사용해서 변수하나에다가 월의 값을 받았습니다.
이렇게 구현하는게 맞는건지 잘모르겠습니다.
물론 프로그램에 정답은 없는거겠지만
제생각엔 고수분들께선 더 쉽게 구현하실꺼라 생각하거든요
아에 처음에 선언을 4자리나 6자리로 해서 날짜를 받을수는 없는건지
작은거지만 몰라서 해메고 있습니다.
고생하시구요 도움부탁드릴께요 꾸벅
그러면 굳이 일까지 나오는 달력을 띄울 필요는 없구요..월까지만 나오면 P.Entry 띄우시면 되겠네요
pa_month는 Char(6)으로 선언하시고요..
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_month.
PERFORM f4_months CHANGING pa_month.
*&---------------------------------------------------------------------*
*& Form F4_MONTHS
*&---------------------------------------------------------------------*
* F4 - Yearmonth
*----------------------------------------------------------------------*
FORM F4_MONTHS CHANGING P_month.
DATA : LV_MONTH LIKE ISELLIST-MONTH.
MOVE SY-DATLO TO LV_MONTH.
CALL FUNCTION 'POPUP_TO_SELECT_MONTH'
EXPORTING
ACTUAL_MONTH = LV_MONTH
IMPORTING
SELECTED_MONTH = LV_MONTH
EXCEPTIONS
FACTORY_CALENDAR_NOT_FOUND = 1
HOLIDAY_CALENDAR_NOT_FOUND = 2
MONTH_NOT_FOUND = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF LV_MONTH NE '000000'.
MOVE LV_MONTH TO P_month.
ENDIF.
ENDFORM.