Проблема наблюдалась в тр.
AS02/
AS03 на вкладке
Налоги кнопка "
Другие интервалы", выводится таблица "
Данные зависимые от времени". И вот в этой таблице скроллинг не работал.
Это экран
2200, группа функций
GLO_FIAA_SCREENS (именно этот экран именно в этой группе функций, потому что есть похожий экран
3000 в группе функций
AIST, но там всё работает нормально).
Всё это было из-за вот такого кода в INCLUDE
LGLO_FIAA_SCREENSO01Code:
MODULE time_init OUTPUT.
PERFORM time_init USING go_timedpndt_manager
CHANGING gt_time_itab.
REFRESH CONTROL 'TIME' FROM SCREEN con_oview_dynnr.
ENDMODULE. "TIME_INIT OUTPUT
а точнее из-за строки
Code:
REFRESH CONTROL 'TIME' FROM SCREEN con_oview_dynnr.
Неясно, что за логика тут закладывалась, но после этой команды номер текущей строки сбрасывался в 1, из-за чего не работало пролистывание.
То ли SAP думал, что 11 строк хватит и пролистывание не нужно, то ли просто разработчики это упустили и на проверке строк было меньше, так что никто не заметил проблему, но это код SAP-а.
По логике, вроде как подпрограмма
time_init могла вернуть изменившееся значение. Поэтому переписал на такой вариант. Если меняется, то выводим с начальной строки.
Code:
MODULE time_init OUTPUT.
DATA lt_time_itab_save like gt_time_itab[].
lt_time_itab_save[] = gt_time_itab[].
PERFORM time_init USING go_timedpndt_manager
CHANGING gt_time_itab.
IF lt_time_itab_save[] <> gt_time_itab[].
REFRESH CONTROL 'TIME' FROM SCREEN con_oview_dynnr.
ENDIF.
ENDMODULE. "TIME_INIT OUTPUT