ABAP - OOALV DEMO 杂乱无用的笔记

这篇具有很好参考价值的文章主要介绍了ABAP - OOALV DEMO 杂乱无用的笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CLASS lcl_cls DEFINITION.
  PUBLIC SECTION.
    METHODS handle_toolbar FOR EVENT toolbar
                  OF cl_gui_alv_grid
      IMPORTING e_object.

    METHODS handle_user_command FOR EVENT user_command
                  OF cl_gui_alv_grid
      IMPORTING e_ucomm.

    METHODS handle_data_changed FOR EVENT data_changed
          OF cl_gui_alv_grid
      IMPORTING
          er_data_changed.
ENDCLASS.

CLASS lcl_cls IMPLEMENTATION.
  METHOD handle_toolbar.
    "向MT_TOOLBAR中增加行,增加按钮
    DATA ls_button TYPE stb_button.

    ls_button-butn_type = '3'.
    APPEND ls_button TO e_object->mt_toolbar.

    CLEAR:ls_button.
    ls_button-function = 'SELALL'.
    ls_button-text     = '全选'.
    ls_button-icon     = icon_checkbox.
    APPEND ls_button TO e_object->mt_toolbar.

    CLEAR:ls_button.
    ls_button-function = 'CANALL'.
    ls_button-text     = '取消全选'.
    ls_button-icon     = icon_dummy.
    APPEND ls_button TO e_object->mt_toolbar.

    IF p_rd1 = 'X'.
      CLEAR:ls_button.
      ls_button-function = 'ENSTOCK'.
      ls_button-text     = '确认为淘汰品'.
      ls_button-icon     = icon_status_ok.
      APPEND ls_button TO e_object->mt_toolbar.
    ELSEIF p_rd3 = 'X'.
      CLEAR:ls_button.
      ls_button-function = 'DATASE'.
      ls_button-text     = '数据保存'.
      ls_button-icon     = icon_allow.
      APPEND ls_button TO e_object->mt_toolbar.

      CLEAR:ls_button.
      ls_button-function = 'POSTEM'.
      ls_button-text     = '邮件推送'.
      ls_button-icon     = icon_envelope_closed.
      APPEND ls_button TO e_object->mt_toolbar.
    ELSEIF p_rd4 = 'X'.

    ENDIF.
  ENDMETHOD.

  METHOD handle_user_command.
    CASE e_ucomm.
      WHEN 'SELALL'.   "全选按钮
        LOOP AT <ft_alv> ASSIGNING <fs_alv>.
          ASSIGN COMPONENT 'SEL' OF STRUCTURE <fs_alv> TO <fs_field>.
          IF sy-subrc = 0.
            <fs_field> = abap_true.
          ENDIF.
        ENDLOOP.

      WHEN 'CANALL'.   "取消全选按钮
        LOOP AT <ft_alv> ASSIGNING <fs_alv>.
          ASSIGN COMPONENT 'SEL' OF STRUCTURE <fs_alv> TO <fs_field>.
          IF sy-subrc = 0.
            <fs_field> = abap_false.
          ENDIF.
        ENDLOOP.

      WHEN 'ENSTOCK'.  "更新到配置表按钮
        SORT gt_ttp BY matnr.
*       DELETE ADJACENT DUPLICATES FROM gt_ttp COMPARING matnr.
        LOOP AT gt_ttp ASSIGNING FIELD-SYMBOL(<fs_data03>).
          gs_wl-matnr = <fs_data03>-matnr.
          gs_wl-w_date = sy-datum.
          gs_wl-w_time = sy-uzeit.
          gs_wl-w_user = sy-uname.
          APPEND gs_wl TO gt_wl.
          CLEAR gs_wl.
        ENDLOOP.
        MODIFY ztlbmm_cszx_wl FROM TABLE gt_wl.
        IF sy-subrc = 0.
          MESSAGE '确认淘汰品成功' TYPE 'S'.
        ELSE.
          MESSAGE '确认淘汰品失败' TYPE 'S' DISPLAY LIKE 'E'.
        ENDIF.

      WHEN 'DATASE'.  "数据保存按钮
        PERFORM frm_data_save.

      WHEN 'POSTEM'.  "邮件推送功能
        PERFORM frm_butn_email.
    ENDCASE.
    PERFORM frm_refresh_alv.
  ENDMETHOD.


  METHOD handle_data_changed.
    LOOP AT er_data_changed->mt_mod_cells INTO DATA(ls_cell).
      "1.读到修改的行
      READ TABLE <ft_alv> ASSIGNING FIELD-SYMBOL(<fs_data05>) INDEX ls_cell-row_id.
      IF sy-subrc = 0 .

        "2.根据字段修改对应的值
        CASE ls_cell-fieldname.
          WHEN 'SEL'.
            ASSIGN COMPONENT 'SEL' OF STRUCTURE <fs_data05> TO <fs_field>.
            IF sy-subrc = 0.
              <fs_field> = ls_cell-value.
            ENDIF.

          WHEN 'ZMENGE'.
            ASSIGN COMPONENT 'ZMENGE' OF STRUCTURE <fs_data05> TO <fs_field>.
            IF sy-subrc = 0.
              <fs_field> = ls_cell-value.
            ENDIF.

        ENDCASE.
      ENDIF.
      CLEAR: ls_cell.
    ENDLOOP.
    PERFORM frm_refresh_alv.
  ENDMETHOD.
ENDCLASS.

 FORM frm_set_handler.
  CREATE OBJECT event_handler.
  SET HANDLER event_handler->handle_toolbar       FOR gs_alv.
  SET HANDLER event_handler->handle_user_command  FOR gs_alv.
  SET HANDLER event_handler->handle_data_changed  FOR gs_alv.

** 将焦点设置到ALV上
  CALL METHOD cl_gui_control=>set_focus
    EXPORTING
      control = gs_alv.
** data_changed事件触发时点
  CALL METHOD gs_alv->register_edit_event
    EXPORTING
**      i_event_id = cl_gui_alv_grid=>mc_evt_enter  "回车时触发
      i_event_id = cl_gui_alv_grid=>mc_evt_modified "单元格修改时触发
    EXCEPTIONS
      error      = 1
      OTHERS     = 2.
ENDFORM.文章来源地址https://www.toymoban.com/news/detail-810417.html

到了这里,关于ABAP - OOALV DEMO 杂乱无用的笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 还原Source Insight的状态栏,让杂乱的状态栏恢复原状

    1. 关闭Source Insight 2.删除onfig_all.xml文件中的Toolbars和/Toolbars之间的内容 3. 重启Source Insight,问题解决。 C:UsersAdministratorDocumentsSource Insight 4.0Settings目录下,找到config_all.xml文件, 搜索文件中的Toolbars,删除Toolbars和/Toolbars之间的内容,如下图中的7635和至7731行的内容。

    2024年04月26日
    浏览(25)
  • 【Django 笔记】第一个demo

     python - Django creating new project - access is denied - Stack Overflow 问题解决 ;  选择其他路径创建,不要再 \\\'D:\\\\software\\\\python3\\\\anconda3\\\\Lib\\\\site-packages\\\\django\\\\bin下执行命令    查看 manange 提供的命令 官方命令文档 : django-admin and manage.py | Django documentation | Django  E:datapythondjaongo_prjg

    2024年02月07日
    浏览(26)
  • IDEA 自动去除无用的 import 和 去除无用的 import 的快捷键 1. IDEA 去除无用的 import 的快捷键

    目录 1. IDEA 去除无用的 import 的快捷键 2. IDEA 自动去除无用的 import    

    2024年02月09日
    浏览(38)
  • Java笔记(14) UDP通讯程序Demo

    实现一个简单的UDP通信程序,仅作为笔记使用 网络编程中有三要素:IP、端口号和通信协议,分别用来确定对方在互联网上的地址、指定接受数据的软件和确定数据在网络中传输的规则。 IP地址分为IPv4地址和IPv6地址,这里不做讨论。 IPv4地址中分为公网地址(万维网使用)和私

    2023年04月08日
    浏览(26)
  • 行为识别SlowFast笔记--环境配置和Demo展示

    目录 前言: 1--环境配置 2--测试Demo 2-1--测试命令 2-2--测试结果 3--相关报错解决         本地环境如下: Ubuntu 20.04 Cuda 11.3 NVIDIA GeForce RTX 3060         具体请参考官方提供的文档:slowfast官方安装文档,以下为博主在本地安装的过程: ① 配置 python 环境 ② 配置 pytorch 环境 ③

    2024年02月11日
    浏览(45)
  • 数据库数据恢复-Syabse数据库存储页底层数据杂乱的数据恢复案例

    数据库恢复环境: Sybase版本:SQL Anywhere 8.0。 数据库故障: 数据库所在的设备意外断电后,数据库无法启动。 错误提示: 使用Sybase Central连接后报错:     数据库故障分析: 经过北亚企安数据恢复工程师检测,定位到数据库无法启动的原因:突然断电导致Sybase数据库无法正

    2024年02月15日
    浏览(46)
  • PyTorch学习笔记(十七)——完整的模型验证(测试,demo)套路

    完整代码:  采用GPU训练的模型,两种方法 (1)在CPU上加载,要从GPU映射到CPU,即把model = torch.load(\\\"mynn_9.pth\\\")改为: (2)将image转到GPU中,即把output = model(image)改为:    预测错误的原因可能是训练次数不够多  改成:        

    2024年02月11日
    浏览(39)
  • Linux 关闭无用端口

    关闭系统不必要的端口,增强系统安全,此处以关闭111端口为例进行说明。 查看本机正在监听的端口 查看正在监听的111端口,由哪个服务使用 查看使用111端口服务的详细信息 关闭正在使用111端口的服务,并设置开机不启动该服务 实际操作截图 关闭其他端口

    2024年02月07日
    浏览(35)
  • 清理docker 无用数据

    df -h  查看 overlay 使用88%  docker ps  我只要跑一个    把没有用的删除了去 让chatgpt 帮搞一搞  删除未使用的 Docker 镜像、容器、卷和网络,您可以按照以下步骤操作。请注意,在进行这些操作之前,确保您不再需要这些资源,因为删除操作是不可逆的。 删除未使用的 Docke

    2024年01月19日
    浏览(40)
  • docker清理无用的镜像

    要清理无用的 Docker 镜像,可以运行以下命令: 该命令将删除所有没有被任何容器使用的镜像。如果您还想要删除未被打标签的镜像,可以在命令后面添加 -a 参数,如下所示: 另外,您还可以通过以下命令来显示当前占用磁盘空间的 Docker 资源: 该命令将显示 Docker 的磁盘使

    2024年02月11日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包