FORM set_month USING ps_month LIKE s_period CHANGING pv_month_low pv_month_high.
DATA: lv_month_diff TYPE i.
DATA: lv_month_high TYPE vtbbewe-dbervon.
DATA: lv_month_low TYPE vtbbewe-dberbis.
pv_month_low = ps_month-low.
IF ps_month-high IS INITIAL.
CALL FUNCTION 'ZFM15_ADD_YEAR'
EXPORTING
i_month_low = pv_month_low
IMPORTING
o_result = pv_month_high.
EXIT.
ENDIF.
lv_month_high = ps_month-high && '01'.
lv_month_low = pv_month_low && '01'.
CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
EXPORTING
i_date_from = lv_month_low
i_date_to = lv_month_high
IMPORTING
e_months = lv_month_diff.
IF lv_month_diff > 11.
CALL FUNCTION 'ZFM15_ADD_YEAR'
EXPORTING
i_month_low = pv_month_low
IMPORTING
o_result = pv_month_high.
ELSE.
PV_MONTH_HIGH = PS_MONTH-HIGH.
ENDIF.
ENDFORM.
함수!!!!!!!!!!!!!!!!!!!!!1
FUNCTION ZFM15_ADD_YEAR.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(I_MONTH_LOW) TYPE SPMON
*" EXPORTING
*" REFERENCE(O_RESULT) TYPE SPMON
*"----------------------------------------------------------------------
DATA: LV_MONTH_HIGH TYPE N LENGTH 6.
LV_MONTH_HIGH = I_MONTH_LOW + 12.
IF LV_MONTH_HIGH+4(2) > 12.
IF LV_MONTH_HIGH+4(2) EQ '13'.
LV_MONTH_HIGH+4(2) = '12'.
ELSE.
LV_MONTH_HIGH(4) = LV_MONTH_HIGH(4) + 1.
LV_MONTH_HIGH+4(2) = LV_MONTH_HIGH+4(2) - 13.
ENDIF.
ENDIF.
O_RESULT = LV_MONTH_HIGH.
ENDFUNCTION.
'SAP > ABAP 코드' 카테고리의 다른 글
(ABAP 코드) 동적으로 생성한 테이블 필드 채웅 (0) | 2022.01.21 |
---|---|
(ABAP 코드) 월별 동적 인터널테이블 구성 (0) | 2022.01.21 |
(ABAP 코드) 날짜 가공하는 Class (0) | 2021.10.29 |
(ABAP 코드) 금액 총 합계 (DATA_CHANGED_FINISHED) (0) | 2021.10.28 |
(ABAP 코드) 셀 이동 후, 커서 위치 다시 불러오기 (0) | 2021.10.28 |