zoukankan      html  css  js  c++  java
  • 2020.05.07 【ABAP随笔】- ABAP-SM30删除前检查

    之前发表过一篇关于SM30增强的文章

    【ABAP随笔】SM30常见增强操作-自动带描述

    ,今天算是一点补充:使用EVENT来实现删除前的检查

    方法1-增加事件-EVENT

    TCODE: SE54 输入视图名称,然后点击环境->事件

    blob.png

    添加序号为03的条目,写入包含检查代码的例程名称

    blob.png

    保存后,点击编辑器,编写代码

    说明:对于下面的代码主要有几点说明:

    1. EXTRACT-MARK字段为X表示选中了该行

    2. 文中代码为当CONTEXT =  '标准订单'时,MARK = SPACE,同时报出警告不允许删除

    3. 注意在执行SM30功能前需要激活程序,保存SE54的配置,然后退出,在运行SM30(PS:我在测试的时候一直都是保存,激活程序,没有退出SE54配置界面,测试SM30一直不行,导致我一度怀疑维护事件03不能实现删除前检查的功能)

    FORM frm_before_delete.
      FIELD-SYMBOLS <field> TYPE any.
      FIELD-SYMBOLS <value> TYPE any.
      DATA ls_zvjxzhu TYPE zvjxzhu_01.
      DATA lv_message TYPE c.
      LOOP AT extract.
        ASSIGN COMPONENT 'MARK' OF STRUCTURE extract TO <field>.
        IF <field> IS ASSIGNED AND <field> IS NOT INITIAL.
          ASSIGN COMPONENT 'CONTEXT' OF STRUCTURE extract TO <value>.
          IF sy-subrc EQ AND <value> '标准订单'.
            lv_message 'X'.
            clear <field>.
            MODIFY extract.
          ENDIF.
        ENDIF.
      ENDLOOP.
      IF lv_message 'X'.
        MESSAGE '标准订单不允许删除' TYPE 'I' DISPLAY LIKE 'S'.
      ENDIF.
    ENDFORM.

    方法2-直接在函数组屏幕过程中修改代码

    对于这个方法2点说明:

    1. VIM_MARKED表示是否选择该行

    2. FUNCTION为当前功能按钮,删除为'DELE'

    blob.png

    blob.png

    MODULE delete_before_check INPUT.
      DATA ls_zvjxzhu TYPE zvjxzhu_01.
      IF vim_marked NE space AND function 'DELE'.
        IF zvjxzhu_01-context '标准订单'.
          CLEAR vim_marked.
        ENDIF.
      ENDIF.
    ENDMODULE.

    第一种方法的效果如下图:

    blob.png

    【ABAP随笔】SM30常见增强操作-自动带描述

  • 相关阅读:
    chromedriver与chrome各版本及下载地址
    chromedriver和firefox driver的安装过程
    ubuntu python及python IDLE 的安装
    Ubuntu14.04安装及配置mysql5.7.19
    容器集群管理平台的比较
    Android调试神器stetho使用详解和改造
    Vue CLI 3搭建vue+vuex 最全分析
    不会PPT配色没关系,有这些配色网站,也能让你的PPT配色美到极致
    15个超赞的配色网站,建议收藏
    10个超好用的配色网站
  • 原文地址:https://www.cnblogs.com/jxzhu/p/12839943.html
Copyright © 2011-2022 走看看