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

Часовой пояс: 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 часа


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

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


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

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