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界面全部都被打上勾:


此博客介绍了ABAP中处理ALV(ABAP List Viewer)用户命令的子程序`sub_user_command`。当用户触发特定事务功能码如'&IC1'或'CLEAR'时,程序会执行相应的操作,如清空数据。注释部分展示了如何在ALV内表数据变化后刷新界面,特别是对于可编辑的checkbox字段,通过设置`rs_selfield-refresh='X'`可以即时更新界面状态,确保用户看到的数据是最新的。
3091

被折叠的 条评论
为什么被折叠?



