sap abap alv事件
程序员文章站
2022-05-18 07:55:43
...
alv 事件的创建使用
在实际开发中经常要用到 事件 event,在各个alv中的具体使用如下
REUSE_ALV_GRID_DISPLAY_LVC
显示代码
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid " 当前程序
i_callback_pf_status_set = 'F_PF_STATUS'
i_callback_user_command = 'F_USER_COMMAND'
is_layout_lvc = lx_layout
it_fieldcat_lvc = gt_fieldcatalog
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS_LVC =
* IT_SORT_LVC =
* it_filter_lvc = gt_filt
* IT_HYPERLINK =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
i_save = 'A'
it_events = gt_events
TABLES
t_outtab = lt_download.
创建事件
data: gt_events TYPE slis_t_event,"事件
gs_events LIKE LINE OF gt_events.
gs_events-name = 'CALLER_EXIT'.
gs_events-form = 'CALLER_EXIT'.
APPEND gs_events TO gt_events.
实现事件 (form 名称与前面的 gs_events-form 一致)
FORM caller_exit USING e_grid TYPE slis_data_caller_exit.
DATA lv_ucomm TYPE sy-ucomm.
* lv_ucomm = 'SAVE'.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = o_grid.
CALL METHOD o_grid->register_edit_event "注册GRID事件 修改单元格后事件
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter"事件回车触发
EXCEPTIONS
error = 1
OTHERS = 2.
CREATE OBJECT gt_event_receiver.
SET HANDLER gt_event_receiver->handle_modify FOR o_grid.
* SET HANDLER gt_event_receiver->handle_modify FOR o_grid.
ENDFORM.
实现注册类
CLASS lcl_event_receiver DEFINITION. "定义类 捕捉各种事件
PUBLIC SECTION.
METHODS handle_modify "数据改变
FOR EVENT data_changed OF cl_gui_alv_grid
IMPORTING er_data_changed.
ENDCLASS. "LCL_EVENT_RECEIVER DEFINITION
CLASS lcl_event_receiver IMPLEMENTATION. "实现类 处理事件
* 界面修改事件
METHOD handle_modify .
PERFORM frm_data_changed USING er_data_changed.
ENDMETHOD. "HANDLE_MODIFY
ENDCLASS.
但是在现实中客户是没有那么按规则的行事的。他们根本不按回车键,一般都点击保存,或者ctrl + s 所以你还要写监听code 当按保存时的实现方式。i_callback_user_command = 'F_USER_COMMAND'
这个就是可以获取用户的动作 实现的form 如下代码
FORM f_user_command USING p_ucomm TYPE sy-ucomm
p_rs_selfield TYPEs lis_selfield.
case p_ucomm.
when 'SAVE' ” 当保存时的动作
“ 会触发数据更改 ,所以我就直接用代码 实现回车要做的事情
CALL METHOD o_grid->check_changed_data.
when '&IC1'” 一般双击操作 call transaction 用来跳转
others.
ENDFORM.
oo alv 和salv 都是差不多。等下次有空补齐文档
上一篇: SAP的ABAP程序中权限检查
下一篇: 计算两个日期之间的有效工作日
推荐阅读
-
【SAP】ABAP——动态模板
-
【SAP】ABAP——ALV设置某一个单元格的颜色
-
介绍一种在ABAP内核态进行内表高效拷贝的方法 SAPABAPSAP云平台SAP Cloud Platform
-
使用ABAP(ADBC)和Java(JDBC)连接SAP HANA数据库 ABAPSAPJDBCADBCHANA
-
Java和ABAP里的外部类和内部类 ABAPJava外部类内部类SAP Cloud Platform
-
SAP ABAP SQL的execution plan和cache SQLABAPSAP成都研究院SAP Cloud PlatformSAP云平台
-
【第一篇】SAP ABAP7.5x新语法之预定义数据结构
-
使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数 SAPSAP云平台EclipseABAPCloud Connector
-
在SAP WebClient UI里混用ABAP Webdynpro,会带来哪些问题? ABAPWebIDEWebClient UICRMSAP云平台
-
如何将csv包含的数据导入SAP Cloud Platform HANA MDC里 hanaHANA Express EditionSAPSAP云平台ABAP