ABAP SALV-选择模式、触发事件

本文通过模拟用户需求,介绍了如何在ABAP开发中使用SALV进行数据展示,包括页眉页脚设置、选择模式调整、事件触发机制以及源码分享。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

01 功能说明

上篇:ABAP SALV-页眉、页脚

本系列将通过模拟用户与开发者之间的对话场景,来逐步演示SALV的使用。在本篇中,我们将延续前文内容,解决用户最新提出的需求,并同时介绍 SALV部分事件的触发时机 ,为后续新增功能的实现提供必要的知识储备。让我们一起来探索吧。

赶紧动手试一试,以便更好地掌握这些新的知识点。

02 功能效果

第12天 用户说:选择模式

现在每次只能复制单行数据,我想选择多行进行复制。

IF p_day12 EQ 'X'.
  DATA lo_selections TYPE REF TO cl_salv_selections.

  lo_selections = go_salv->get_selections( ).
  lo_selections->set_selection_mode( if_salv_c_selection_mode=>cell ).
  ...
ENDIF.

在这里插入图片描述

第13天 用户说:触发事件

用户今天啥也没说,你来研究下SALV的触发事件吧!

IF p_day13 EQ 'X'.
  DATA lo_events_table TYPE REF TO cl_salv_events_table.
  lo_events_table = go_salv->get_event( ).

  DATA lo_evt_handler TYPE REF TO lcl_evt_handler.
  CREATE OBJECT lo_evt_handler.
  SET HANDLER lo_evt_handler->on_link_click FOR lo_events_table.
  SET HANDLER lo_evt_handler->on_double_click FOR lo_events_table.
  SET HANDLER lo_evt_handler->on_added_function FOR lo_events_table.
  SET HANDLER lo_evt_handler->before_salv_function FOR lo_events_table.
  SET HANDLER lo_evt_handler->after_salv_function FOR lo_events_table.
  ...
ENDIF.

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

03 源码分享

CLASS lcl_evt_handler DEFINITION.
  PUBLIC SECTION.
    METHODS on_link_click         "单击(热点)
                  FOR EVENT link_click OF cl_salv_events_table
      IMPORTING row column.

    METHODS on_double_click       "双击
                  FOR EVENT double_click OF cl_salv_events_table
      IMPORTING row column.

    METHODS on_added_function     "新增按钮点击
                  FOR EVENT added_function OF cl_salv_events_table
      IMPORTING e_salv_function.

    METHODS before_salv_function  "标准按钮点击前
                  FOR EVENT before_salv_function OF cl_salv_events_table
      IMPORTING e_salv_function.

    METHODS after_salv_function   "标准按钮点击后
                  FOR EVENT after_salv_function OF cl_salv_events_table
      IMPORTING e_salv_function.
ENDCLASS.

CLASS lcl_evt_handler IMPLEMENTATION.
  METHOD on_link_click.
    MESSAGE i001(00) WITH 'on_link_click:' row ' - ' column.
  ENDMETHOD
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值