1.ALV表格单击事件 会涉及到两个重要概念 这里引用到sap论坛的一篇文章中的一个字段slis_selfield 与 slis_t_event 大部分内容翻译自该文章
当我们使用alv显示内表,传统的那几个事件不会被触发,如果要在使用alv时候触发这事件 我们需要定义内表 type slis_t_event 且 itab应该通过 ‘REUSE_ALV_LIST_DISPLAY ’函数模块传递。
TOP OF PAGE,
AT LINE-SELECTION,
AT USER-COMMAND
使用事件如下
w_events-name = 'TOP_OF_PAGE'. w_events-form = 'TOP_OF_PAGE'. append w_events to i_events. clear w_events. w_events-name = 'USER_COMMAND' . w_events-form = 'USER_COMMAND' . append w_events to i_events. clear w_events. w_events-name = 'PF_STATUS_SET' . w_events-form = 'PF_STATUS_SET' . append w_events to i_events. clear w_events.
2.当我们处理 ‘USER_COMMAND’ 事件 slis_selfield 表将可见 ,该表内包好的信息当我们双击 或者是 单击hotpos 时会赋值
*&---------------------------------------------------------------------* *& Form user_command *&---------------------------------------------------------------------* form user_command using ucomm like sy-ucomm selfield type slis_selfield. case ucomm . when '&IC1'. “This is for double click on ALV output. skip 10. position 10. write 'Double click was executed'. endcase. endform. "user_command
3.slis_selfield 表结构 SLIS_SELFIELD: 大部分信息是光标说在的行所包含的信息.
types: begin of slis_selfield, tabname type slis_tabname, tabindex like sy-tabix, sumindex like sy-tabix, endsum(1) type c, sel_tab_field type slis_sel_tab_field, value type slis_entry, before_action(1) type c, after_action(1) type c, refresh(1) type c, col_stable(1) type c, row_stable(1) type c, * colwidth_optimize(1) type c, exit(1) type c, fieldname type slis_fieldname, grouplevel type i, collect_from type i, collect_to type i, end of slis_selfield.
SLIS_T_EVENT: This is to set the events (for display the header data).