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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Событие в ячейке ALV грида
СообщениеДобавлено: Пт, авг 18 2006, 13:16 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 24 2005, 15:55
Сообщения: 296
Пол: Мужской
Доброе время суток.
Имеется грид с изменяемыми ячейками. Есть ли какое то событие на изменение содержимого ячейки. К примеру, у меня ячейка - чекбокс. Поставил галочку и чтобы тут же отловилось это событие?


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

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
data_changed

бывает нужно дополнительно зарегистрировать событие mc_evt_enter
или галочку кое-где поставить.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: re
СообщениеДобавлено: Пт, авг 18 2006, 16:51 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 24 2005, 15:55
Сообщения: 296
Пол: Мужской
trop написал(а):
data_changed

бывает нужно дополнительно зарегистрировать событие mc_evt_enter
или галочку кое-где поставить.


А как мне узнать до координат ( строка / столбец ) какая именно ячейка изменилась?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 18 2006, 17:26 
Специалист
Специалист

Зарегистрирован:
Чт, июн 23 2005, 18:05
Сообщения: 119
CLASS lcl_events_handle IMPLEMENTATION.
METHOD data_changed.
DATA: ls_good TYPE lvc_s_modi.
LOOP AT er_data_changed->mt_good_cells INTO ls_good.
* ЗДЕСЬ ls_good-ROW_ID - НОМЕР СТРОКИ.
CASE ls_good-fieldname.
WHEN '....'.
ENDCASE.
ENDLOOP.
ENDMETHOD. "handle_data_changed


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, авг 19 2006, 08:54 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 24 2005, 15:55
Сообщения: 296
Пол: Мужской
kizif написал(а):
CLASS lcl_events_handle IMPLEMENTATION.
METHOD data_changed.
DATA: ls_good TYPE lvc_s_modi.
LOOP AT er_data_changed->mt_good_cells INTO ls_good.
* ЗДЕСЬ ls_good-ROW_ID - НОМЕР СТРОКИ.
CASE ls_good-fieldname.
WHEN '....'.
ENDCASE.
ENDLOOP.
ENDMETHOD. "handle_data_changed


А для ФМ Reuse Alv Grid Display?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: re
СообщениеДобавлено: Сб, авг 19 2006, 19:42 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
ну посмотреть параметры надо
там есть табл для событий, добавляешь туда data_changed
с названием своей callback формы,
параметры для формы посмотри в появившемся дампе

еще в grid_settings или layout надо галочку поставить чтобы событие для ячейки срабатывало,
какое-то хитрое поле с трудночитаемым названием,
но оно там одно такое


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: re
СообщениеДобавлено: Пн, авг 21 2006, 09:52 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 24 2005, 15:55
Сообщения: 296
Пол: Мужской
trop написал(а):
ну посмотреть параметры надо
там есть табл для событий, добавляешь туда data_changed
с названием своей callback формы,
параметры для формы посмотри в появившемся дампе

еще в grid_settings или layout надо галочку поставить чтобы событие для ячейки срабатывало,
какое-то хитрое поле с трудночитаемым названием,
но оно там одно такое


Про таблицу с событиями знаю.
А вот поле, хитрое поле не могу найти. :-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, авг 21 2006, 11:15 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Code:
is_grid_settings-edt_cll_cb = 'X'.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, авг 21 2006, 17:18 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 24 2005, 15:55
Сообщения: 296
Пол: Мужской
OlegDm написал(а):
Code:
is_grid_settings-edt_cll_cb = 'X'.


Получилось отловить событие.

Не получилось только отловить ячейку в которой произошло изменение.

Вот фрагмент:

FORM data_changed using rr_data_changed type REF TO cl_alv_changed_data_protocol.


BREAK-POINT.

ENDFORM. "data_changed

Может подскажете, а как получить строку и столбец для ячейки которая была изменена?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, авг 21 2006, 17:29 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 24 2005, 15:55
Сообщения: 296
Пол: Мужской
Решение, вроде нашел, если что то поправьте меня.



FORM data_changed using rr_data_changed type REF TO cl_alv_changed_data_protocol.

data: ls_cell type lvc_s_modi.

loop at rr_data_changed->mt_mod_cells into ls_cell.
ENDLOOP.

ENDFORM. "data_changed


В структуре ls_cell - хранятся координаты и значение ячейки

Только событие почему то наступает до изменения, а есть событие после изменения?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, авг 21 2006, 17:52 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, мар 17 2005, 17:24
Сообщения: 170
Откуда: страна советов
Пол: Мужской
как это ДО изменения? :shock:
до изменения в клетках экрана?

_________________
"there's always something waiting at the end of the road.
if you are not willing to see it, you probably shouldn't be there in the first place."
- clive owen, "the follow" (bmw film)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, авг 22 2006, 08:19 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 24 2005, 15:55
Сообщения: 296
Пол: Мужской
rainman написал:
как это ДО изменения? :shock:
до изменения в клетках экрана?


Тогда интересно знать, а что же это за событие data_changed_finished ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: re
СообщениеДобавлено: Вт, авг 22 2006, 08:32 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
это полный финиш -
когда уже остается только принять то, что там навводили

в data_changed получаете результат проверки ввода,
можно свои проверки вставить, или убрать ошибки

примеры в пакете SLIS


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Событие в ячейке ALV грида
СообщениеДобавлено: Чт, ноя 21 2013, 18:01 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, июн 19 2012, 08:33
Сообщения: 182
Пол: Мужской
Вот сделал я проверки, а как теперь сделать так чтоб изменения отобразились в алв?

Code:
FORM data_changed using rr_data_changed type REF TO cl_alv_changed_data_protocol
                       .

data: ls_cell type lvc_s_modi.

loop at rr_data_changed->mt_mod_cells into ls_cell.
  READ TABLE gt_mat_alv INDEX ls_cell-row_id ASSIGNING <tab>.
    <tab>-out_labst = ls_cell-value.
    IF <tab>-out_labst > <tab>-LABST.
      <tab>-out_labst = <tab>-labst.
      <tab>-out_lgort = '2000'.
    ENDIF.
ENDLOOP.

ENDFORM. "data_changed

_________________
crusty написал(а):
Логистика - понятие растяжимое


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Событие в ячейке ALV грида
СообщениеДобавлено: Пт, ноя 22 2013, 10:36 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, июн 19 2012, 08:33
Сообщения: 182
Пол: Мужской
Orgazm написал:
Вот сделал я проверки, а как теперь сделать так чтоб изменения отобразились в алв?

Code:
FORM data_changed using rr_data_changed type REF TO cl_alv_changed_data_protocol
                       .

data: ls_cell type lvc_s_modi.

loop at rr_data_changed->mt_mod_cells into ls_cell.
  READ TABLE gt_mat_alv INDEX ls_cell-row_id ASSIGNING <tab>.
    <tab>-out_labst = ls_cell-value.
    IF <tab>-out_labst > <tab>-LABST.
      <tab>-out_labst = <tab>-labst.
      <tab>-out_lgort = '2000'.
    ENDIF.
ENDLOOP.

ENDFORM. "data_changed


Вопрос решен, нужно использовать метод rr_data_changed->modify_cell.
Code:
CALL METHOD RR_DATA_CHANGED->MODIFY_CELL
  EXPORTING
    I_ROW_ID    = ls_cell-row_id
    I_TABIX     = ls_cell-tabix
    I_FIELDNAME = ls_cell-fieldname
    I_VALUE     = <tab>-out_labst.
    .

CALL METHOD RR_DATA_CHANGED->MODIFY_CELL
  EXPORTING
    I_ROW_ID    = ls_cell-row_id
    I_TABIX     = ls_cell-tabix
    I_FIELDNAME = 'OUT_LGORT'
    I_VALUE     = <tab>-out_lgort.


Таким образом можно поменять значения даже других ячеек грида.

_________________
crusty написал(а):
Логистика - понятие растяжимое


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

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


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

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


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

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