считать все записи модулем HR_READ_INFOTYPE во внутреннюю таблицу и работать с ней
Code:
DATA lp2001 type SORTED TABLE OF p2001 WITH NON-UNIQUE KEY pernr begda endda subty seqnr.
data ls2001 like LINE OF lp2001.
data: BEGIN OF t_dates OCCURS 0,
begda type begda,
END OF t_dates.
CLEAR lp2001[].
CALL FUNCTION 'HR_READ_INFOTYPE'
EXPORTING
pernr = pernr-pernr
infty = '2001'
tables
infty_tab = lp2001
EXCEPTIONS
INFTY_NOT_FOUND = 1
OTHERS = 2
.
IF sy-subrc <> 0 or lp2001[] is INITIAL.
MESSAGE 'Нет 2001 ИТ' TYPE 'I'.
exit.
ENDIF.
LOOP AT t_dates.
LOOP AT lp2001 INTO ls2001 WHERE begda <= t_dates-begda AND endda >= t_dates-endda.
exit.
ENDLOOP.
CHECK sy-subrc = 0.
WRITE: / 'Есть отстуствие ',ls2001-subty ,' на дату ', t_dates-begda.
ENDLOOP.
ну или по хардкору:
Code:
data: BEGIN OF t_dates OCCURS 0,
begda type begda,
END OF t_dates.
LOOP AT t_dates.
SELECT SINGLE mandt INTO sy-mandt FROM pa2001 WHERE pernr = pernr-pernr AND begda <= t_dates-begda AND endda >= t_dates-endda.
CHECK sy-subrc = 0.
WRITE: / 'Есть отстуствие на дату ', t_dates-begda.
ENDLOOP.