ABAP ALV 内表数据变化,checkbox界面自动刷新
*@--------------------------------------------------------------------*
*@ Form sub_user_command
*@--------------------------------------------------------------------*
* -->R_UCOMM 事务功能码
* -->RS_SELFIELD ALV相关的数据
*---------------------------------------------------------------------*
FORM sub_user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&IC1'. "双击事件的功能码
WHEN 'CLEAR'.
PERFORM sub_ucomm_clear. "清空操作
ENDCASE.
* 刷新ALV报表
* CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
* IMPORTING
* e_grid = g_grid.
* CALL METHOD g_grid->check_changed_data.
* CALL METHOD g_grid->refresh_table_display.
rs_selfield-refresh = 'X'.
ENDFORM. "sub_user_command
1、这是ALV的用户命令回调函数 sub_user_command。
2、程序中注释掉的部分是当ALV的内表数据发生变化时,我们用该方法将变化的内容刷新显示。
3、如果ALV是可编辑的,比如checkbox就是可编辑的字段;编辑相应的单元格后,只要有 rs_selfield-refresh = 'X'. 标红的这一句参数设置,就可以实现内表内容的刷新。
以上是找到的selfield-refresh字段的使用说明,以下是刘欣在代码中的使用,
用户点“全选”按钮,内表的checkbox字段全部打上X,用selfield-refresh自动刷新ALV界面全部都被打上勾: