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

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


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

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


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

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