Текущее время: Вт, июл 29 2025, 15:31

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


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

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


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

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