Текущее время: Вс, июл 20 2025, 23:20

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


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

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


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

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