Я надеюсь, что правильно понял название, потому что я серьезно не могу придумать краткое описание для этого сценария. Постараюсь кратко:
У меня есть редактируемый ALV, который отображает некоторые данные, и всякий раз, когда пользователь вводит данные и изменяет активную ячейку (например, щелкает другую ячейку, нажимает клавишу со стрелкой и т. д.), должно запускаться событие data_changed сетки ALV.
Теперь к моему вопросу: когда я использую следующий код
* ENTER key is pressed
CALL METHOD go_grid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
* data is changed and cursor is moved from the cell
CALL METHOD go_grid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified.
Событие срабатывает, как и должно быть. Однако, когда я использую:
go_grid->register_edit_event( i_event_id = cl_gui_alv_grid=>mc_evt_enter ).
go_grid->register_edit_event( i_event_id = cl_gui_alv_grid=>mc_evt_enter ).
Никакое событие не запускается, когда я делаю те же действия. Но разве эти два способа в основном не одинаковы или они функционируют по-разному? В документации также указано, что CALL METHOD
устарело и больше не должно использоваться.