SAPфорум.RU
https://sapboard.ru/forum/

2 alv на экране с разными тулбарами.
https://sapboard.ru/forum/viewtopic.php?f=13&t=98878
Страница 1 из 1

Автор:  falazure123 [ Ср, июл 22 2020, 12:58 ]
Заголовок сообщения:  2 alv на экране с разными тулбарами.

Добрый день.

Собственно есть задача вывести на экран 2 алв. В верхней алв выводятся заголовки документов. По двойному клику на строке в верхней алв - обновляется нижняя алв, в которой отображаются позиции выбранного в верхней алв документа.
Также необходимо добавить кнопки в тулбары. В верхней алв это один набор кнопок. В нижней алв - другой.

Насколько я понимаю, на экране рисую два контейнера(cl_gui_custom_container). Создаю в программе 2 объекта (cl_gui_alv_grid). В pbo экрана всё это дело вызываю.
Может есть какой-то ещё способ проще для такого?

Видимо там же в pbo надо добавить кнопки в toolbar'ы для каждой алв.
Как потом обрабатывать нажатия кнопок в каждой из алв? Создаётся один класс обработчик на обе алв? Писал обработку событий для одной алв. В чём будет различие для двух разных алв?

Автор:  LAT [ Ср, июл 22 2020, 17:55 ]
Заголовок сообщения:  Re: 2 alv на экране с разными тулбарами.

falazure123 написал(а):
Насколько я понимаю, на экране рисую два контейнера(cl_gui_custom_container). Создаю в программе 2 объекта (cl_gui_alv_grid). В pbo экрана всё это дело вызываю. Может есть какой-то ещё способ проще для такого?
Есть ещё вариант 1 контейнер+сплиттер+2 грида.
falazure123 написал(а):
Видимо там же в pbo надо добавить кнопки в toolbar'ы для каждой алв.
Если речь о панели инструментов грида, то кнопки добавляются в обработчике события toolbar.
falazure123 написал(а):
Как потом обрабатывать нажатия кнопок в каждой из алв? Создаётся один класс обработчик на обе алв?
Как удобно. Можно сделать и 2 разных класса-обработчика.
falazure123 написал(а):
Писал обработку событий для одной алв. В чём будет различие для двух разных алв?
Если будете использовать 1 обработчик, скорее всего (рано или поздно), понадобиться анализировать, от какого грида пришло событие. Для этого нужно задействовать параметр sender, плюс сделать задел для различения гридов (хранить где-то ссылки на них, или найти и заполнить какой-нибудь их атрибут, или отнаследоваться от cl_gui_alv_grid и завести свой атрибут, или...). С двумя обработчиками такой проблемы не будет.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/