728x90
반응형
시작일과 종료일을 입력하면 시작일과 종료일의 date를 계산하고 계산한 date 수만큼 반복문을 돈다.
반복문을 돌면서 입력된 값이 working day이면 lv_day변수에 1씩 +해주며 working day를 구한다.
DATA: lv_beg TYPE sy-datum,
lv_work TYPE sy-datum,
lv_do(4) TYPE p,
lv_day(4) TYPE i.
CALL FUNCTION 'HRVE_GET_TIME_BETWEEN_DATES'
EXPORTING
beg_date = gs_disp-begda
end_date = gs_disp-endda
IMPORTING
days = lv_do. "type p
CLEAR: lv_day, lv_work.
lv_beg = gs_disp-begda.
DO lv_do TIMES.
CALL FUNCTION 'DATE_CONVERT_TO_FACTORYDATE'
EXPORTING
correct_option = '+'
date = lv_beg
factory_calendar_id = 'KR'
IMPORTING
date = lv_work.
IF lv_beg EQ lv_work.
lv_day = lv_day + 1.
ENDIF.
lv_beg = lv_beg + 1.
ENDDO.
CALL METHOD er_data_changed->modify_cell
EXPORTING
i_row_id = ls_mod_cells-row_id
i_fieldname = 'ZDAY'
i_value = lv_day.
HRVE_GET_TIME_BETWEEN_DATES
시작일과 종료일을 입력하면 day를 반환한다.
이때 반환되는 변수의 타입은 p여야 한다.
DATE_CONVERT_TO_FACTORYDATE
가장 가까운 working day를 출력한다.
옵션을 +로 주면 입력날짜 이후의 가까운 working day를 출력하고
-로 주면 이전의 working day를 출력한다.
728x90
반응형
'ABAP' 카테고리의 다른 글
알고 있으면 유용한 Syntax (0) | 2023.02.21 |
---|---|
ALV Drop down list (0) | 2023.02.21 |
ALV Top-of-Page (0) | 2023.02.21 |
ALV 특정 Cell EDIT (0) | 2023.02.21 |
ALV Data changed Event (0) | 2023.02.20 |
댓글