Текущее время: Вт, июл 22 2025, 09:58

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: отследить нажатие клавиши в ALV_GRID
СообщениеДобавлено: Пт, дек 10 2004, 14:17 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, окт 22 2004, 07:46
Сообщения: 112
Здравстуйте.
Можно ли при редактировании ячейки в ALV_GRID отследить нажатие клавиши. Меня интересует нажатие клавиши "Enter", т.е. отредактировали и нажали "Enter", подтвердили ввод. После этого хотелось бы предпринять некие действия.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 10 2004, 15:01 
Гость
думаю можно... сразу после создания ALV Grid зарегистрировать событие MC_EVT_ENTER. примерно так...

Code:
    CALL METHOD line_items_grid->register_edit_event
         EXPORTING
              i_event_id   = cl_gui_alv_grid=>mc_evt_enter.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: отследить нажатие клавиши в ALV_GRID
СообщениеДобавлено: Пт, дек 10 2004, 15:13 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 14:35
Сообщения: 1519
Откуда: В ВЕЧНОМ БАНЕ
Кипятильник написал(а):
Здравстуйте.
Можно ли при редактировании ячейки в ALV_GRID отследить нажатие клавиши. Меня интересует нажатие клавиши "Enter", т.е. отредактировали и нажали "Enter", подтвердили ввод. После этого хотелось бы предпринять некие действия.

Нельзя, не отслеживаются нажатия кнопок для ALV


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, дек 11 2004, 19:24 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Совершенно точно можно. Причём именно так, как пишет DiVo. Тогда по нажатию Enter отработают события data_changed и data_changed_finished.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, дек 11 2004, 21:08 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 14:35
Сообщения: 1519
Откуда: В ВЕЧНОМ БАНЕ
EGF написал(а):
Совершенно точно можно. Причём именно так, как пишет DiVo. Тогда по нажатию Enter отработают события data_changed и data_changed_finished.

Enter можно, я просто не обратил внимение, что требуется только ввод отлавливать :oops: а имел в виду что вообще перехватывать нажатия кнопок в ALV кроме специализированных типа F1, F4, ввод нельзя...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, дек 14 2004, 03:01 
Гость
Спасибо, мне именно только Enter отловить надо. Пользователь обычно редактирует а потом "Ввод" жмет.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 31 2005, 10:10 
Гость
DiVo написал(а):
думаю можно... сразу после создания ALV Grid зарегистрировать событие MC_EVT_ENTER. примерно так...

Code:
    CALL METHOD line_items_grid->register_edit_event
         EXPORTING
              i_event_id   = cl_gui_alv_grid=>mc_evt_enter.


У меня при этом возникает проблема: прога вываливается в дамп:
Field symbol has not been assigned

Никогда не имел опыта общения с этими полями :( помогите...


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 31 2005, 16:53 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
shark написал(а):
DiVo написал(а):
думаю можно... сразу после создания ALV Grid зарегистрировать событие MC_EVT_ENTER. примерно так...

Code:
    CALL METHOD line_items_grid->register_edit_event
         EXPORTING
              i_event_id   = cl_gui_alv_grid=>mc_evt_enter.


У меня при этом возникает проблема: прога вываливается в дамп:
Field symbol has not been assigned

Никогда не имел опыта общения с этими полями :( помогите...

Попробуйте вызывать register_edit_event после вызова метода set_table_for_first_display.
"Field symbol has not been assigned" - это про то, что к моменту вызова метода register_edit_event в объекте грида должна быть присвоена ссылка на таблицу данных. Эта ссылка и присваивается в методе set_table_for_first_display. :wink:

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 31 2005, 19:28 
Гость
Удав написал(а):
Попробуйте вызывать register_edit_event после вызова метода set_table_for_first_display.
"Field symbol has not been assigned" - это про то, что к моменту вызова метода register_edit_event в объекте грида должна быть присвоена ссылка на таблицу данных. Эта ссылка и присваивается в методе set_table_for_first_display. :wink:


Удав, я тоже грешил на это:).... Вот код:
Code:
  call method gr_alvgrid->set_table_for_first_display
  exporting
  it_toolbar_excluding = pt_exclude
  changing
  it_outtab = gt_list[]
  it_fieldcatalog = gt_fieldcat.
  call method gr_alvgrid->refresh_table_display.
  data: gr_event_handler type ref to lcl_event_receiver.
  CALL METHOD gr_alvgrid->set_ready_for_input.
  create object gr_event_handler.
  call method gr_alvgrid->REGISTER_EDIT_EVENT
   exporting i_event_id = cl_gui_alv_grid=>mc_evt_enter.
  set handler gr_event_handler->handle_data_changed for gr_alvgrid.

Сталобыть проблема сидит глубже. Field symbol - это как я понимаю своего рода указатель, в который поступят данные. В рез-те "чего то" ссылка эта не создается. А вот чего - не могу никак понять.. (


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 01 2005, 08:38 
Гость
Возможно несоответствие fieldcatalog и таблицы, отображаемой в гриде.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 01 2005, 15:56 
Гость
Нет с этим все впорядке.... Может проблема с созданием объекта? Ведь косяк в спаовском тексте появляется


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 02 2005, 06:28 
Гость
А вообще, без регистрации события редактирования, грид выводился нормально? Или он и до этого падал в дамп?
Просто в коде стоит вызов set_table_for_first_display и в нем
gt_list передается как таблица, а gt_fieldcat - непонятно, зависит от того, как она была объявлена (с заголовком или нет).


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

Зарегистрирован:
Вт, авг 17 2004, 08:55
Сообщения: 331
Откуда: Украина, г.Мариуполь
Пол: Мужской
Согласен - можно попробовать передать gt_fieldcat[] - сталкивался с такой проблемой при вызове reuse_alv*


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 03 2005, 17:00 
Гость
RoadRunner написал:
Согласен - можно попробовать передать gt_fieldcat[] - сталкивался с такой проблемой при вызове reuse_alv*


К сожалению, не помогло

Ошибка также возникает если (к примеру) убрать вызов этого метода:
Code:
*call method gr_alvgrid->REGISTER_EDIT_EVENT
*  exporting i_event_id = cl_gui_alv_grid=>mc_evt_enter.

при двойном нажатии на строку таблички


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

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Можно взглянуть на определение метода handle_data_changed?


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

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


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

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


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

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