hilena написала:
У кого-нибудь считается правильно /890 в таком случае?
Судя по всему причина в особенностях заполнения таблицы ab.
Например у нас в системе в случае регистрации БЛ 20.11.2012-03.12.2012 в декабре имеем следующие записи в ab:
01 0600 20.11.2012 30.11.2012, сплит apznr 01, 0 дней, т.к. запись относится к прошлому периоду
02 0600 01.12.2012 03.12.2012, сплит apznr 01, 3 дня
в form ABS_DAYS_RESULTS
Цикл по ab
проверка на наличии /890 с тем же сплитом apznr в rt.
Если такой записи в rt нет тогда подсчитываем дни иначе не считаем.
Это условие и дает на данном примере ошибку, т.к. на первой записи ab добавляется нулевая запись в RT удовлетворяющая условиям (т.к. у обоих записей apznr 01 ).
Осталось выяснить такое заполнение AB это стандартное поведение системы или особенности местного Z*.
Дополнение: скорее всего это стандартное заполнение AB, т.е. если я прав, то ошибку должны повторить многие установившие ноту.
Code:
*&---------------------------------------------------------------------*
*& Form ABS_DAYS_RESULTS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_APER text
* <--P_RESULTS[] text
*----------------------------------------------------------------------*
form ABS_DAYS_RESULTS using iv_molga
iv_datum
changing cs_results TYPE LINE OF HRPAY99_TAB_OF_RESULTS.
DATA: lt_t7ru554c TYPE TABLE OF t7ru554c.
FIELD-SYMBOLS: <ls_ab> type PC20I,
<ls_rt> type PC207,
<ls_t7ru554c> TYPE t7ru554c.
perform re7ru554c tables lt_t7ru554c using iv_molga '01' iv_datum .
loop at cs_results-inter-ab ASSIGNING <ls_ab>.
LOOP AT lt_t7ru554c ASSIGNING <ls_t7ru554c> WHERE awart = <ls_ab>-awart.
READ TABLE cs_results-inter-rt ASSIGNING <ls_rt> with key lgart = <ls_t7ru554c>-lgart apznr = <ls_ab>-apznr.
if sy-subrc <> 0.
append initial line to cs_results-inter-rt assigning <ls_rt>.
<ls_rt>-abart = <ls_ab>-abart.
<ls_rt>-lgart = <ls_t7ru554c>-lgart.
<ls_rt>-apznr = <ls_ab>-apznr.
<ls_rt>-abznr = <ls_ab>-abznr.
<ls_rt>-anzhl = <ls_ab>-kaltg.
endif.
ENDLOOP.
endloop.
endform. " ABS_DAYS_RESULTS