Текущее время: Пт, июл 04 2025, 11:46

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Кнопки в ALV
СообщениеДобавлено: Ср, окт 04 2006, 13:13 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, авг 10 2006, 08:44
Сообщения: 320
Откуда: Odessa
Здравствуйте.

У меня такой вопрос.
В ALV я ввожу данные там есть такая кнопка как "Добавить строку".
Вот мне по ее нажатию нужно добавить строку с номером позиции последовательно. Добавление строки наверное через делается через it_fieldcatalog.
А как виловить нажатие данной кнопки и обработать его?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопки в ALV
СообщениеДобавлено: Ср, окт 04 2006, 14:11 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 01 2005, 13:23
Сообщения: 303
Откуда: Питер
Пол: Мужской
Primat написал(а):
Здравствуйте.

У меня такой вопрос.
В ALV я ввожу данные там есть такая кнопка как "Добавить строку".
Вот мне по ее нажатию нужно добавить строку с номером позиции последовательно. Добавление строки наверное через делается через it_fieldcatalog.
А как виловить нажатие данной кнопки и обработать его?

А ALV в контейнере через классы, или просто reuse_alv_grid_display? А вообще думаю стоит поиском вопсользоваться тут много раз уже обсуждалось как оймать событие нажатия на кнопку.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 04 2006, 14:12 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Если Вы используете стандартные кнопки управления строками (создать, добавить, удалить, копировать), то можете управлять этим процессом с помощью события DATA_CHANGED, как это сделано в программе BCALV_GRID_EDIT


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 04 2006, 14:35 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, авг 10 2006, 08:44
Сообщения: 320
Откуда: Odessa
Пользуюсь классами.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 04 2006, 15:04 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, июн 16 2005, 10:29
Сообщения: 336
Откуда: Минск->Москва
Пол: Мужской
пробуйте EVENT after_user_command


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 04 2006, 15:14 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 01 2005, 13:23
Сообщения: 303
Откуда: Питер
Пол: Мужской
Primat написал(а):
Пользуюсь классами.

Я делаю так:
Определение:
Code:
     handle_toolbar
        for event toolbar of cl_gui_alv_grid
            importing e_object e_interactive,

и
Code:
...
CLASS lcl_event_receiver DEFINITION.
  PUBLIC SECTION.
    METHODS:

    USER_COMMAND for event USER_COMMAND of cl_gui_alv_grid
            importing e_ucomm,
...

Внедрение:
Code:
method HANDLE_TOOLBAR.


    DATA:  ls_toolbar  TYPE stb_button.

        DO .
          DELETE e_object->mt_toolbar INDEX 3.
        ENDDO.

*     Подменяем кнопку вставки записи:

        MOVE '&ADD'      TO ls_toolbar-function.
        MOVE ICON_INSERT_ROW   TO ls_toolbar-icon.
        MOVE 'Вставить строку' TO ls_toolbar-quickinfo.
      insert ls_toolbar into e_object->mt_toolbar index 3.

Code:
method USER_COMMAND.
  Perform User_command using e_ucomm.
endmethod.


В подпрограмме :
Code:
  case e_ucomm.

    when '&ADD'.
    perorm ADD_LINES.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 04 2006, 15:49 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, авг 10 2006, 08:44
Сообщения: 320
Откуда: Odessa
Preatos написал:
Я делаю так:
.................................

А есть подобный стандартный пример по этому делу. Я первый раз работаю с классами. Некоторые кода без примеров мне тяжело понять :oops: .


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 04 2006, 16:12 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Ср, окт 04 2006, 16:07
Сообщения: 38
А если работаеш с АЛВ с помощью CALL METHOD то как отловить нажатие кнопки.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 04 2006, 16:21 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Ср, мар 16 2005, 09:37
Сообщения: 42
Откуда: Москва
osmus написал(а):
А если работаеш с АЛВ с помощью CALL METHOD то как отловить нажатие кнопки.

Для своих кнопок - через событие user_command
Для стандартных - before_user_command, after_user_command


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 04 2006, 16:31 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Насколько я понял, человеку нужно заполнять вновь добавляемые строки какими-то своими значениям. Думаю, что всё-таки лучше это делать в обработчике DATA_CHANGED.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 04 2006, 16:36 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 01 2005, 13:23
Сообщения: 303
Откуда: Питер
Пол: Мужской
Primat написал(а):
Preatos написал:
Я делаю так:
.................................

А есть подобный стандартный пример по этому делу. Я первый раз работаю с классами. Некоторые кода без примеров мне тяжело понять :oops: .

Не знаю на счёт стандартного примера. Но на самом деле я всё написал :). Если вставить 2 верхних куска в дефинишн, а именно:
Code:
CLASS lcl_event_receiver DEFINITION.
  PUBLIC SECTION.
    METHODS:
...
endclass.


а вторые 2 куска в:

Code:
CLASS lcl_event_receiver IMPLEMENTATION.

...
endclass.



перед вызовом АЛВ.
Code:
set handler event_receiver1->handle_toolbar  for grid1.
set handler event_receiver1->User_command  for grid1.


а потом вызов алв через set_table_for_first_display.

ну а дальше всё просто. Создадите подпрограмму USER_COMMAND.
и в ней будете делать свою обработку. Подробнее уже только слать программу :) вы попробуйте сделать то что я написал. Всё должно получиться.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 04 2006, 16:39 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 01 2005, 13:23
Сообщения: 303
Откуда: Питер
Пол: Мужской
EGF написал(а):
Насколько я понял, человеку нужно заполнять вновь добавляемые строки какими-то своими значениям. Думаю, что всё-таки лучше это делать в обработчике DATA_CHANGED.

Не ну по идее если мы делаем кнопку свою со своим ок-кодом а потом ловим его в юзер комманде, то мы можем всё что угодно сделать. Как вариант он будет просто заполнять поля нужные и аппендить строку во внутреннюю таблицу которая выводится в грид, а потом делать рефреш.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 04 2006, 16:44 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Ср, мар 16 2005, 09:37
Сообщения: 42
Откуда: Москва
Primat написал(а):
А есть подобный стандартный пример по этому делу. Я первый раз работаю с классами. Некоторые кода без примеров мне тяжело понять :oops: .
См. пример BCALV_GRID_08
EGF написал(а):
Насколько я понял, человеку нужно заполнять вновь добавляемые строки какими-то своими значениям. Думаю, что всё-таки лучше это делать в обработчике DATA_CHANGED.
Только его лучше не ждать, а инициировать в обработчике события after_user_command через RAISE EVENT


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 04 2006, 16:45 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, июн 16 2005, 10:29
Сообщения: 336
Откуда: Минск->Москва
Пол: Мужской
EGF прав, если делать через классы, там есть стандартные кнопки добавить/удалить, они оталвливаются в DATA_CHANGED.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 04 2006, 17:11 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Ср, мар 16 2005, 09:37
Сообщения: 42
Откуда: Москва
Он написал:
EGF прав, если делать через классы, там есть стандартные кнопки добавить/удалить, они оталвливаются в DATA_CHANGED.
Вполне логично, сам не проверял. Но наткнулся в примере BCALV_EDIT_04 на такое замечание
Code:
2.Use field AUTO_VALUE of the fieldcatalog to preset values when new lines are added.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.

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


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

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


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

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