zoukankan      html  css  js  c++  java
  • WebDynpro ALV中标准按钮的事件问题

    写这篇博文的时候,问题应该没有得到圆满的解决,只是用一种变通的方式解决的,不知道园子里的同学有没有更好的解决方式。

    问题描述:当ALV处于编辑状态的时候,在ALV的顶部有标准按钮出现,如insert row 、delete row等。在用户点击delete row的时候,希望后台给出一个提示,确认用户需要删除该记录。现在的问题是,用标准的ALV事件无法扑捉到delete row按钮的触发时机,标准的ALV事件只能扑捉到自定义按钮的事件。

    解决思路:屏蔽掉标准按钮delete row ,添加一个自定义按钮,在自定义按钮中扑捉事件。

    实现方法:

    1、屏蔽掉标准按钮

    DATA lo_interfacecontroller TYPE REF TO iwci_salv_wd_table .
      lo_interfacecontroller =   wd_this->wd_cpifc_alv_comp( ).
    DATA lv_value TYPE REF TO cl_salv_wd_config_table.
      lv_value = lo_interfacecontroller->get_model(
    ).

    DATA: lf_functions TYPE salv_wd_t_function_std_ref,
              lf_function TYPE REF TO cl_salv_wd_function_std,
              wa_function LIKE LINE OF lf_functions.
    *删除标准的删除按钮
        lf_functions = lv_value->if_salv_wd_function_settings~get_functions_std( ).
    LOOP AT lf_functions INTO wa_function.
    IF wa_function-id = 'SALV_WD_INPUT_DELETE'.
            lf_function = lv_value->if_salv_wd_function_settings~get_function_std( 'SALV_WD_INPUT_DELETE' ).
            lf_function->set_visible( cl_wd_uielement=>e_visible-none ).
    ENDIF.
    ENDLOOP.

    2、添加自定义按钮

        lv_function = lv_value->if_salv_wd_function_settings~GET_FUNCTION( id = 'DELETE' ).
    IF lv_function IS INITIAL .
    * create button object
    CREATE OBJECT lr_button_delete.
    * set text for button
        lr_button_delete->set_text( 'Delete Row' ).
    * set function id
        lv_function = lv_value->if_salv_wd_function_settings~create_function( id = 'DELETE' ).
    * add button to toolbar
        lv_function->set_editor( lr_button_delete ).
    * set visible: 01-hide;02-display
        lv_function->set_visible( '02' ).

    3、触发自定义按钮事件

    a、添加ALV标准事件

    image

    其中ALV_COMP为我定义的ALV实例名。

    b、添加代码

    该方法的参数形如:

    image

    IF r_param->id = 'DELETE'.

    ……添加自己的代码

    endif.

    总结:该方法不算很好,写出来是想看看园子里面有没有更好解决方案。

  • 相关阅读:
    多表查询+多对多 三表连查+子查询
    几个重要的关键字where+group by +having +order by + limit
    拷贝表 *** 与******
    一对一关系的补充
    几种基本的约束和外键(一对一 多对多 多对一)级联关系
    创建表的完整语法 数字类型(整型 浮点型) 字符型 时间和日期类型 集合和枚举类型
    随记Litter note
    视图 触发器 事务(重要) 存储过程 内置函数 流程控制 索引
    luogu P2774 方格取数问题
    luogu P4014 分配问题
  • 原文地址:https://www.cnblogs.com/sodmecai/p/2455390.html
Copyright © 2011-2022 走看看