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

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


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

Сейчас этот форум просматривают: Mixail167


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

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