簡體   English   中英

如何手動觸發 ALV DATA_CHANGE 事件?

[英]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_CHANGEDREFRESH_TABLE_DISPLAY甚至CL_GUI_CFW=>FLUSHCL_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM