[英]data_change using cl_gui_alv_grid - not reacting to Enter key
[英]How to trigger the ALV DATA_CHANGE event manually?
我有一個實例CL_GUI_ALV_GRID
通過變量引用mo_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
事件,還是我應該完全不同地做事?
我不知道這是否能解決您的問題,但為了更新 PAI 中的 ALV 內部表,您可以使用以下方法:
DATA lv_entries_are_consisted TYPE abap_bool.
mo_grid->check_changed_data(
IMPORTING
e_valid = lv_entries_are_consisted
).
嗯,這是可能的。
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 的實例。 請注意,第一次調用 ALV 網格時,您需要將布局結構 (LVC_S_LAYO) 的字段 VAL_DATA 設置為“X”以使其工作。
在此之后,類將自動為您更改內部表並調用 DATA_CHANGE 事件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.