Текущее время: Вс, авг 03 2025, 21:04

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Зависимые кнопки в Toolbar ALV-grida
СообщениеДобавлено: Сб, ноя 03 2007, 03:45 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 01 2005, 11:45
Сообщения: 98
Коллеги, кто сталкивался со следующей задачей?.
Есть ALV(создается с помощью класс). Необходимо добавить в Toolbar 4 кнопки, такие чтобы при нажатии одной из них она фиксировалась в нажатом положении, а все остальные( включая нажатую в предыдущй раз ) становились в отжатом положении. Т.е. чтобы все 4 кнопки были зависимые.
1) Можно ди это решить укзав соответствующий тип кнопки)(butn_type) и определив каким-нибудь образом группу зависимых кнопок?
2) Или надо вести глобальную переменную, которая хранит последнюю нажатую кнопку и в зависимости от перемнной устанавливать соответствующее опцию нажатия('X') или отжатия(' ' ) кнопки в методе для собфтия ToolBar?

_________________
Даже если Вас съели, у вас все равно остается два выхода.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, ноя 03 2007, 10:47 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Никаких групп, конечно, нету, можно только вертикальными линиями отчеркнуть. Но и глобальную переменную заводить не обязательно: нажатая кнопка определяется по коду функции и делается неактивной, а все остальные, соответственно, — активными.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Зависимые кнопки в Toolbar ALV-grida
СообщениеДобавлено: Сб, ноя 03 2007, 15:08 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Герман написал(а):
Коллеги, кто сталкивался со следующей задачей?.
Есть ALV(создается с помощью класс). Необходимо добавить в Toolbar 4 кнопки, такие чтобы при нажатии одной из них она фиксировалась в нажатом положении, а все остальные( включая нажатую в предыдущй раз ) становились в отжатом положении. Т.е. чтобы все 4 кнопки были зависимые.
1) Можно ди это решить укзав соответствующий тип кнопки)(butn_type) и определив каким-нибудь образом группу зависимых кнопок?
2) Или надо вести глобальную переменную, которая хранит последнюю нажатую кнопку и в зависимости от перемнной устанавливать соответствующее опцию нажатия('X') или отжатия(' ' ) кнопки в методе для собфтия ToolBar?

Чисто теоритически (проверить сейчас не могу, а раньше такого не требовалось) - у CL_GUI_TOOLBAR есть метод add_button_group, а в описании возможных типов кнопок указываются
Sap написал(а):
# Pushbutton groups (similar to radio button groups)
# Toggle buttons (like checkboxes)

Источник информации

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Зависимые кнопки в Toolbar ALV-grida
СообщениеДобавлено: Сб, ноя 03 2007, 16:04 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 01 2005, 11:45
Сообщения: 98
1. В данном контексте под "группой кнопок" я понимаю не группу отделенную разделителями от других кнопок, а группу зависимых кнопок - одну нажал, дугие автоматически отжались.
Сейчас я реализовал это следующим образом

DATA save_com like sy-uucom. " Глобальная переменная

form user_comand using e_comand like sy-uucom.
save_com = e_comand. " запомнить команду(в частности команду кнопки)
......
endform.

FORM handle_toolbar_grid2 USING i_object TYPE REF TO cl_alv_event_toolbar_set.
DATA: ls_toolbar TYPE stb_button.

* кнопка ПЕРЕКЛЮЧЕНИЯ НА ДРАГМАТЕРИАЛЫ
CLEAR ls_toolbar.
MOVE const_cmd_cdrm TO ls_toolbar-function.
MOVE 4 TO ls_toolbar-butn_type.
MOVE ' ' TO ls_toolbar-disabled.
MOVE 'Драгматериалы' TO ls_toolbar-text.
IF save_com = const_cmd_cdrm.
ls_toolbar-CHECKED = 'X'. " кнопка нажата
ELSE.
CLEAR ls_toolbar-CHECKED. " кнопка отжата
ENDIF.
APPEND ls_toolbar TO i_object->mt_toolbar.

* кнопка ПЕРЕКЛЮЧЕНИЯ НА ОКАТО
CLEAR ls_toolbar.
MOVE const_cmd_cok TO ls_toolbar-function.
MOVE 4 TO ls_toolbar-butn_type.
MOVE ' ' TO ls_toolbar-disabled.
MOVE 'Данные по ОКАТО' TO ls_toolbar-text.
IF save_com = const_cmd_cok.
ls_toolbar-CHECKED = 'X'. " кнопка нажата
ELSE.
CLEAR ls_toolbar-CHECKED. " кнопка отжата
ENDIF.
APPEND ls_toolbar TO i_object->mt_toolbar.

* кнопка ПЕРЕКЛЮЧЕНИЯ НА НАЛОГ НА ИМУЩЕСТВО
CLEAR ls_toolbar.
MOVE const_cmd_cni TO ls_toolbar-function.
MOVE 4 TO ls_toolbar-butn_type.
MOVE ' ' TO ls_toolbar-disabled.
MOVE 'Налог на имущ.' TO ls_toolbar-text.
IF save_com = const_cmd_cni.
ls_toolbar-CHECKED = 'X'. " кнопка нажата
ELSE.
CLEAR ls_toolbar-CHECKED. " кнопка отжата
ENDIF.
APPEND ls_toolbar TO i_object->mt_toolbar.


ENDFORM. "handle_toolbar

_________________
Даже если Вас съели, у вас все равно остается два выхода.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Зависимые кнопки в Toolbar ALV-grida
СообщениеДобавлено: Сб, ноя 03 2007, 18:36 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
sy-uname написал(а):
у CL_GUI_TOOLBAR есть метод add_button_group,
Этот метод добавляет на тулбар ряд кнопок (любых).

А этот тип кнопок
sy-uname написал(а):
# Pushbutton groups (similar to radio button groups)
определяется именно так
Герман написал(а):
MOVE 4 TO ls_toolbar-butn_type.


Сорри, был неправ в своей категоричности.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Зависимые кнопки в Toolbar ALV-grida
СообщениеДобавлено: Вс, ноя 04 2007, 01:37 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 01 2005, 11:45
Сообщения: 98
Если Toolbar относящийся к ALV-grid тоже является объектом типа CL_GUI_TOOLBAR, то как к нему получить доступ? Что-то я не нашел. Или это ToolBar всего Screen-а?

_________________
Даже если Вас съели, у вас все равно остается два выхода.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Зависимые кнопки в Toolbar ALV-grida
СообщениеДобавлено: Вс, ноя 04 2007, 09:29 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Герман написал(а):
Если Toolbar относящийся к ALV-grid тоже является объектом типа CL_GUI_TOOLBAR

Не используется. Таблица с кнопками присваивается напрямую в атрибут ToolBarButtonsTable2 OCX-компонента SAPGUI.GridViewCtrl.1.
И это понятно: инкапсуляция тулбара в ALV происходит в OCX на фронтенде, а на в классах на сервере приложений.

Но поскольку в стандартном ALV-тулбаре нет зависимых кнопок, то всё работает и так. Т.е. наши кнопки попадают в группу по-умолчанию, а метод add_button_group необходим только тогда, когда нужно сделать несколько групп кнопок.

Таким образом, если в Вашем примере удалить строки
Code:
IF save_com = const_cmd_cok.
  ls_toolbar-CHECKED = 'X'. " кнопка нажата
ELSE.
  CLEAR ls_toolbar-CHECKED. " кнопка отжата
ENDIF.
то всё должно работать, если только нажатия кнопок зарегистрированы как события ALV, а не как события приложения, а также если ALV grid не пересоздаётся после обработки каждой команды.


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

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


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

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


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

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