2013-06-18 1 views
2

У меня есть экземпляр CL_GUI_ALV_GRID, на который ссылается переменная mo_alv_grid.Как запустить событие DATA_CHANGE CL_GUI_ALV_GRID, или почему он не запускается автоматически?

У меня есть кнопочный столбец в этой сетке, который после некоторой логики обновляет таблицу mt_alv_grid (поддержка mo_alv_grid).

Я должен быть в состоянии вызвать событие DATA_CHANGED на этом этапе.

Я пробовал много методов из CL_GUI_ALV_GRID, как CHECK_DATA_CHANGED и REFRESH_TABLE_DISPLAY и даже CL_GUI_CFW=>FLUSH и CL_GUI_CFW=>SET_NEW_OK_CODE('ENTER')., но ничего из этого не работает.

Есть ли способ вызвать событие DATA_CHANGED, или я должен делать вещи совершенно по-другому?

+0

Просто уточнить - у вас есть кнопка в сетке ALV, запускающую код ABAP, которая изменяет данные во внутренней таблице бэкэнда и хочет дисплей, который будет обновляться? – vwegert

+0

все это, но дисплей обновлен, и мне нужно автоматически запускать событие DATA_CHANGED (даже не ударяя 'ENTER' после этого) –

+0

DATA_CHANGED не должен вызываться, если данные обновляются программно, только когда изменяется USER данные. – vwegert

ответ

1

ну, возможно.

1) не меняют значения во внутренней таблице по программе 2) создать протокол изменения типа LVC_T_MODI с новыми значениями для линий, необходимых

затем вызвать

CALL METHOD lo_grid->change_data_from_inside 
    EXPORTING 
    it_style_cells = lt_cells. 

где lo_grid является экземпляром из таблицы cl_gui_alv_grid и lt_cells типа LVC_T_MODI. обратите внимание, что вам нужно будет установить поле VAL_DATA структуры макета (LVC_S_LAYO) на «X» при первом вызове сетки ALV для выполнения этой работы.

после этого, класс будет автоматически изменять внутреннюю таблицу для вас и вызвать Data_Change событие

2

Я не знаю, если это решит вашу проблему, но для того, чтобы обновить внутреннюю таблицу ALV в PAI, вы можете использовать следующий метод:

DATA lv_entries_are_consisted TYPE abap_bool. 
mo_grid->check_changed_data(
    IMPORTING 
    e_valid = lv_entries_are_consisted 
). 

 Смежные вопросы

  • Нет связанных вопросов^_^