Текущее время: Пн, июл 21 2025, 19:57

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: ALV Grid и Enter
СообщениеДобавлено: Пн, сен 05 2005, 18:06 
Гость
Есть ALV таблица типа

Наименование:Кол-во:Цена:Сумма

Желание:
Ввели наименование, ввели количество ввели цену, нажали enter рассчиталась стоимость.

Что есть:
Ввели наименование, ввели количество ввели цену, нажали enter и...
в результате пока не нажмешь кнопочку на экране, ничегошеньки не отрабатывается ни PAI ни PBO.

Вопрос:
В чем собака порылась, чую что где-то рядом, а вот где? :(


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 05 2005, 20:53 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, янв 21 2005, 12:40
Сообщения: 371
Пол: Мужской
При инициализации грида нужно:
* Зарегистрировать ENTER для вызова события DATA_CHANGED
CALL METHOD G_GRID_BAS->REGISTER_EDIT_EVENT
EXPORTING
I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_ENTER.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 06 2005, 08:20 
Гость
Класс :D , получилось :D , огромный респект.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, янв 07 2006, 13:58 
Гость
PP написал:
При инициализации грида нужно:
* Зарегистрировать ENTER для вызова события DATA_CHANGED
CALL METHOD G_GRID_BAS->REGISTER_EDIT_EVENT
EXPORTING
I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_ENTER.


А почему при срабатывании обработчика события я не вижу изменений во внутренней таблице, я же ввел зачение в гриде? и нажал на ентер. Если в обработчике поставить alvg->check_changed_data, то программа вообще зацикливается.
Code:
CLASS lcl_event_receiver DEFINITION.
  PUBLIC SECTION.
    METHODS: handle_change
      FOR EVENT DATA_CHANGED OF cl_gui_alv_grid.
ENDCLASS.

CLASS lcl_event_receiver IMPLEMENTATION.
  METHOD handle_change.
* по идее тут я и должен делать пересчет, но изменений я не вижу
  ENDMETHOD.
ENDCLASS.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, янв 07 2006, 14:08 
Гость
Во первых строках:
С Новым Годом и с Рождеством.

У меня в принципе все отрабатывает.

Только я объявление сделал с параметром

Code:
  public section.
    methods:
    handle_data_changed
        for event data_changed of cl_gui_alv_grid
            importing er_data_changed.


И далее
Code:
  method handle_data_changed.
     perform handle_data_changed using er_data_changed.
  endmethod.


Все клево ловит.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, янв 07 2006, 14:34 
Гость
bmonk написал:
Code:
  public section.
    methods:
    handle_data_changed
        for event data_changed of cl_gui_alv_grid
            importing er_data_changed.


И далее
Code:
  method handle_data_changed.
     perform handle_data_changed using er_data_changed.
  endmethod.


Все клево ловит.


Это не помогло. Изменяю 1 раз жму ентер ничего не вижу, изменяю 2 раз жму ентер вижу почему то значение которое было введено перед 1 нажатием ентера. Странно... Такое чувство, что data_changed вызывается до изменения. Что с этим делать не пойму?


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, янв 07 2006, 14:46 
Гость
Кусок подпрограмки обрабатывающей изменение

Code:
*&---------------------------------------------------------------------*
*&      Form  handle_data_changed
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_ER_DATA_CHANGED  text
*----------------------------------------------------------------------*
form handle_data_changed using ir_data_changed
           type ref to cl_alv_changed_data_protocol.
  sort ir_data_changed->mt_mod_cells by row_id.
  loop at ir_data_changed->mt_mod_cells into ls_mod_cell.
    call method ir_data_changed->get_cell_value
       exporting i_row_id = ls_mod_cell-row_id
          i_fieldname = 'FICTR' "Смотрю изменение этого поля
       importing e_value = lv_value.
  endloop.
call method g_grid->refresh_table_display.
endform.                    " handle_data_changed


Поставь брек-поинт на этой подпрограммке и вгляни содержимое таблицы ir_data_changed.
Я подозреваю что у тебя просто нет рефреша экрана call method g_grid->refresh_table_display.

Попробуй, если не получится, то завтра подумаем еще.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, янв 10 2006, 18:10 
Начинающий
Начинающий

Зарегистрирован:
Вт, июл 19 2005, 11:17
Сообщения: 10
Вместо "call method g_grid->refresh_table_display."
напиши напр.
CALL METHOD ir_data_changed->modify_cell
EXPORTING i_row_id = ls_mod_cell-row_id
i_fieldname = 'SEATSMAX' "поле кот меняешь
i_value = ps_saplane-seatsmax. "значение
и все должно измениться и отобразиться.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 16 2006, 21:22 
Гость
А вот у меня событие handle_data_changed_finished.
И если юзер нажимает на создание нового ряда после изменений, то обработчик не срабатывает :-( соотв. табличка передается не полностью.

Что делать?


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения: Re: ALV Grid и Enter
СообщениеДобавлено: Вт, фев 10 2009, 09:39 
Специалист
Специалист

Зарегистрирован:
Ср, фев 14 2007, 17:14
Сообщения: 231
А как добавить ентер при использование REUSE_ALV_GRID_DISPLAY ?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ALV Grid и Enter  Тема решена
СообщениеДобавлено: Вт, мар 03 2009, 14:47 
Начинающий
Начинающий

Зарегистрирован:
Пн, дек 08 2008, 09:35
Сообщения: 17
Присоединяюсь к вопросу насчет того, как отловить нажатие Enter (например, при изменении редактируемой ячейки) при использовании "REUSE_ALV_GRID_DISPLAY".


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ALV Grid и Enter
СообщениеДобавлено: Вт, мар 03 2009, 14:55 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 10:34
Сообщения: 716
Откуда: Moscow
Пол: Мужской
Whisper написал(а):
Присоединяюсь к вопросу насчет того, как отловить нажатие Enter (например, при изменении редактируемой ячейки) при использовании "REUSE_ALV_GRID_DISPLAY".


в этом ФМ тоже создается объект класс CL_GUI_ALV_GRID , поэтому просто надо достать его с помощью ФМ
Code:
  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid = o_grid.

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

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


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

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


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

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