Текущее время: Сб, апр 27 2024, 21:42

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Не скроллится TABVIEW (экранная таблица)
СообщениеДобавлено: Ср, ноя 15 2023, 06:11 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 16:38
Сообщения: 301
Обнаружилось, что не работает скроллинг в tabview (экранная таблица). При этом, так как случай уникальный (такого количества записей в таблице никогда не было), то даже непонятно, когда это было сломано.
При нажатии на скроллинг курсор перемещается на первое поле экрана, и скроллинга не происходит.
Может, у кого-то есть предположения, куда смотреть в данном случае?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не скроллируется TABVIEW (Экранная таблица)  Тема решена
СообщениеДобавлено: Пт, ноя 17 2023, 11:27 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 16:38
Сообщения: 301
Проблема наблюдалась в тр. AS02/AS03 на вкладке Налоги кнопка "Другие интервалы", выводится таблица "Данные зависимые от времени". И вот в этой таблице скроллинг не работал.
Это экран 2200, группа функций GLO_FIAA_SCREENS (именно этот экран именно в этой группе функций, потому что есть похожий экран 3000 в группе функций AIST, но там всё работает нормально).
Всё это было из-за вот такого кода в INCLUDE LGLO_FIAA_SCREENSO01
Code:
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


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB