Текущее время: Ср, дек 06 2023, 07:16

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


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


ВНИМАНИЕ!

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



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

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


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

Зарегистрирован:
Чт, дек 21 2006, 16:38
Сообщения: 296
Проблема наблюдалась в тр. 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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