FunctionModel调用ALV时,自定义工具条,响应用户操作:
首先创建一个status
CALL
FUNCTION
'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
i_callback_program
= sy
-repid
"当前程序——这个是必需的,如果没有这个,就不能响应事件了
i_callback_pf_status_set
=
'ZFORM_SET_PF_STATUS'
"自定义的alv工具条
i_callback_user_command
=
'ALV_USER_COMMAND'
"自定义按键处理
这里
ZFORM_SET_PF_STATUS 、
ALV_USER_COMMAND
都是form
FORM zform_set_pf_status
USING rt_extab
TYPE slis_t_extab
.
SET
PF-STATUS
'ZSTATUS_CREATE'
. "最开始创建的status
ENDFORM
.
"zform_set_PF_STATUS
*2)注册(设置)ALV的事件响应过程。
"定义ALV事件响应子例程
*&---------------------------------------------------------------------*
*& Form alv_user_command
*&---------------------------------------------------------------------*
* text 响应双击,获取信息
*----------------------------------------------------------------------*
FORM alv_user_command
USING r_ucomm
LIKE sy
-ucomm
rs_selfield
TYPE slis_selfield
.
"如果想响应双击等,获取选中的数据
"READ
TABLE ALV内表
INDEX rs_selfield
-tabindex
INTO l_wa
.
CASE r_ucomm
.
"用户操作
"创建
WHEN
'CREATE'
.
WHEN
'BACK'
.
LEAVE
TO
SCREEN
0
.
WHEN
'LEAVE'
.
LEAVE
PROGRAM
.
ENDCASE
.
ENDFORM
.
"ALV_USER_COMMAND
这样就完成了自定义工具条的操作
如果想利用标准的 可以到Function group: slvc_fullscreen中去找
欢迎关注订阅号:SAP学习记录 (SAPlearning )