一、类CL_GUI_ALV_GRID中关于数据变化有两个事件
DATA_CHANGED 与 DATA_CHANGED_FINISHED
DATA_CHANGED 在可编辑字段的数据发生变化时触发(焦点和回车),通常用来做数据的校验
DATA_CHANGED_FINISHED 在当数据修改完成后触发
如果数据没有被修改,当失去焦点或回车时,它不会走DATA_CHANGED ,而是直接触发DATA_CHANGED_FINISHED事件,
二、通常有些需求,经过user command事件或者点击保存按钮等操作时,需要检查数据的完整性或者写PROTOCOL
就要强制触发DATA_CHANGED ,方法
CALL METHOD GS_ALV->IF_CACHED_PROP~SET_PROP
EXPORTING
PROPNAME = 'GridModified'
PROPVALUE = '1'
EXCEPTIONS
PROP_NOT_FOUND = 1
INVALID_NAME = 2
ERROR_SET_PROPERTY = 3
OTHERS = 4
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
CALL METHOD GS_ALV->CHECK_CHANGED_DATA
* IMPORTING
* E_VALID =
* CHANGING
* C_REFRESH = 'X'
.