ABAP - SALV教程08 列设置热点及绑定点击事件

  •   实现思路:将列设置成热点,热点列是可点击的,再给SALV实例对象注册点击事件即可,一般作用于点击单号跳转到前台等功能
  •  "设置热点方法
     METHODS:
       set_hotspot CHANGING co_alv TYPE REF TO cl_salv_table.
     ...
    
     "事件处理方法
     METHODS:
       on_link_click FOR EVENT link_click OF cl_salv_events_table
          IMPORTING
             row
             column.
    
    
     METHOD set_hotspot.
        DATA lo_col TYPE REF TO cl_salv_column_table.
        "获取所有列对象的引用
        DATA(lo_cols) = co_alv->get_columns( ).
        TRY.
            "获取群体列对象中VBELN列转换成CL_SALV_COLUMN_TABLE类型
            lo_col ?= lo_cols->get_column( 'VBELN' ).
            "调用方法将列设置成热点
            lo_col->set_cell_type( EXPORTING value = if_salv_c_cell_type=>hotspot ).
          CATCH cx_salv_data_error .
        ENDTRY.
    
        "获取SALV事件对象的引用
        DATA(lo_events) = co_alv->get_event( ).
        " 设定EVENT HANDLER
        SET HANDLER me->on_link_click FOR lo_events.
     ENDMETHOD.
      
     METHOD on_link_click.
       READ TABLE me->mt_data INTO DATA(lw_data) INDEX row.
       IF sy-subrc = 0.
         MESSAGE '您点击了第' && row &&'行的' && lw_data-vbeln TYPE 'I'.
       ENDIF.
     ENDMETHOD.

  • 实现效果 
  • 完整代码 
    CLASS lcl_model DEFINITION.
      PUBLIC SECTION.
        TYPES:BEGIN OF TY_dATA,
                vbeln TYPE vbak-vbeln,
                erdat TYPE erdat,
                erzet TYPE erzet,
                ernam TYPE ernam,
                auart TYPE auart.
        TYPES:END  OF ty_data.
    
        DATA mt_data TYPE TABLE OF ty_data.
    
        DATA mo_salv TYPE REF TO cl_salv_table.
    
        "获取数据的方法
        METHODS get_data.
        "展示SALV的方法
        METHODS alv_show.
    
      PRIVATE SECTION.
        METHODS:
          set_status  CHANGING co_alv TYPE REF TO cl_salv_table.
    
        METHODS:
          set_layout  CHANGING co_alv TYPE REF TO cl_salv_table.
    
        "设置热点方法
        METHODS:
          set_hotspot CHANGING co_alv TYPE REF TO cl_salv_table.
    
        "事件处理方法
        METHODS:
          on_link_click FOR EVENT link_click OF cl_salv_events_table
            IMPORTING
              row
              column.
    
    ENDCLASS.
    
    CLASS lcl_model IMPLEMENTATION.
      METHOD get_data.
        SELECT vbeln erdat erzet ernam auart
          INTO TABLE mt_data
          FROM vbak
          UP TO 20 ROWS.
      ENDMETHOD.
    
      METHOD alv_show.
        DATA: lx_msg TYPE REF TO cx_salv_msg.
        TRY.
            cl_salv_table=>factory(
              IMPORTING
                r_salv_table = mo_salv
              CHANGING
                t_table      = mt_data ).
          CATCH cx_salv_msg INTO lx_msg.
        ENDTRY.
    
        "要生成SALV实例才能执行一下方法
        me->set_status( CHANGING co_alv = mo_salv ).
        me->set_layout( CHANGING co_alv = mo_salv ).
        me->set_hotspot( CHANGING co_alv = mo_salv ).
        mo_salv->display( ).
      ENDMETHOD.
    
      METHOD set_status.
        DATA(lo_functions) = co_alv->get_functions( ).
        "cl_salv_functions_list类型的实例对象的添加状态方法
        lo_functions->set_all( abap_true ).
        "lo_functions->set_default( abap_true ).
      ENDMETHOD.
    
      METHOD set_layout.
        DATA: lo_display TYPE REF TO cl_salv_display_settings.
    *   取得显示对象
        lo_display = co_alv->get_display_settings( ).
    
    *   设置ZEBRA显示
        lo_display->set_striped_pattern( 'X' ).
    *   设置Title
        lo_display->set_list_header( '销售订单报表' ).
      ENDMETHOD.
    
      METHOD set_hotspot.
        DATA lo_col TYPE REF TO cl_salv_column_table.
        "获取所有列对象的引用
        DATA(lo_cols) = co_alv->get_columns( ).
        TRY.
            "获取群体列对象中VBELN列转换成CL_SALV_COLUMN_TABLE类型
            lo_col ?= lo_cols->get_column( 'VBELN' ).
            "调用方法将列设置成热点
            lo_col->set_cell_type( EXPORTING value = if_salv_c_cell_type=>hotspot ).
          CATCH cx_salv_data_error .
        ENDTRY.
    
        "获取SALV事件对象的引用
        DATA(lo_events) = co_alv->get_event( ).
        " 设定EVENT HANDLER
        SET HANDLER me->on_link_click FOR lo_events.
      ENDMETHOD.
    
      METHOD on_link_click.
        READ TABLE me->mt_data INTO DATA(lw_data) INDEX row.
        IF sy-subrc = 0.
          MESSAGE '您点击了第' && row &&'行的' && lw_data-vbeln TYPE 'I'.
        ENDIF.
      ENDMETHOD.
    ENDCLASS.
    
    START-OF-SELECTION.
      DATA(lo_model) = NEW lcl_model( ).
      lo_model->get_data( ).
      lo_model->alv_show( ).

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/424824.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OSCP靶场--Hepet

OSCP靶场–Hepet 考点(1.邮件获取 2.msf恶意宏文档制作 3. 邮件投递恶意宏文档 4.服务配置不当提权) 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap -sV -sC -p- 192.168.188.140 --min-rate 2000 Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-01 05:46 ES…

【网上商城系统的设计与开发】

目录 1.实训概况 1 1.1 实训题目 1 1.2实训时间 1 1.3实训目的 1 1.4 实训环境 1 1.5 实训内容 2 1.6 进度安排 3 2.需求分析 5 2.1 功能需求分析 5 2.1.1用户需求分析 5 2.2.2网站前台需求 5 2.2.3网站后台需求 6 2.2 可行性分析 7 2.2.1社会可行性 7 2.2.2技术可行性 8 3.系统…

通过多进程并发方式(fork)实现服务器(注意要回收子进程)

以下内容为视频学习记录。 1、父进程accept后返回的文件描述符为cfd以及用于创建连接的lfd; 调用fork()创建子进程后,子进程继承cfd,lfd,通过该cfd与连接过来的客户端通信,lfd对子进程来说没用,可以直接close(lfd); 对于父进程来说&#x…

如何利用ChatGPT搞科研?论文检索、写作、基金润色、数据分析、科研绘图(全球地图、植被图、箱型图、雷达图、玫瑰图、气泡图、森林图等)

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮,可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

2023天津公租房网上登记流程图,注册到信息填写

2023年天津市公共租赁住房网上登记流程图 小编为大家整理了天津市公共租赁住房网上登记流程,从登记到填写信息。 想要体验的朋友请看一下。 申请天津公共租赁住房时拒绝申报家庭情况会怎样? 天津市住房保障家庭在享受住房保障期间,如在应申…

安装 node 错误的配置环境变量之后使用 npm 报错,更换淘宝镜像 (cnpm)

安装 node 错误的配置环境变量之后使用 npm 报错,更换淘宝镜像 (cnpm) node:internal/modules/cjs/loader:1147 throw err; ^ Error: Cannot find module ‘F:\ACodeTools\Node\node_modules\npm\bin\node_modules\npm\bin\npm-cli.js’ at Module._resolveFilename…

JVM(6)

JMM JVM定义了一种Java内存模型来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果.在此之前,C/C直接使用物理硬件和操作系统的内存模型,因此,会由于不同平台下的内存模型差异,有可能导致程序在一套平台上并发完全正常,而在另…

多输入多输出 | MATLAB实现GWO-Elman灰狼优化循环神经网络多输入多输出预测

多输入多输出 | MATLAB实现GWO-Elman灰狼优化循环神经网络多输入多输出预测 目录 多输入多输出 | MATLAB实现GWO-Elman灰狼优化循环神经网络多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 Matlab实现GWO-Elman灰狼优化循环神经网络多输入多输出…

手把手教测试,全网内容最全有深度-jmeter-Flow Control Action

5.1.7.6.Flow Control Action(测试活动) Logical Action on Thread: Pause 暂停,配合 Duration 一起使用;Duration(milliseconds) 延迟时间,单位是毫秒 Start Next Thread Loop 开始本线程下一次循环 设置线程组线程数2&#xff…

(资源篇)2025届暑假实习春招全攻略路线

绝对的全攻略,资源完善程度绝对的全网唯一。 觉得有帮助的:随手一键三连关注就是对up主最大的激励。 绝对的宝藏up主!!!,up主每天都会进行更新视频,算法视频or校招信息or八股讲解。 【暴躁老…

位运算第二弹

力扣191.位1的个数 public class Solution {// you need to treat n as an unsigned valuepublic int hammingWeight(int n) {int ret0;while(n!0){n(n&n-1);ret;}return ret;} } 推荐是自己去手动推一下,深刻理解一下,什么叫做最右侧的1。 力扣338.…

在docker中搭建selenium 爬虫环境(3分钟快速搭建)

1、安装docker 省略 2、拉取镜像 docker pull selenium/standalone-chrome-debug 3、运行容器 docker run -d -p 4444:4444 -p 5900:5900 -v C:\Users\Public\VNC_Donwnloads:/home/seluser/Downloads --memory6g --name selenium_chrome selenium/standalone-chrome-debu…

[VulnHub靶机渗透] CONNECT THE DOTS

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏 …

《秦时明月》IP新高度:与陕西历史博物馆共同书写文化传承新篇章!

在IP产业风起云涌的今天,如何以创意和匠心为传统文化注入新的活力,成为了摆在每一位文化工作者面前的重要课题。近日,《秦时明月》作为一部深受观众喜爱的国产动画IP,在迎来其十七周年之际,联手陕西历史博物馆&#xf…

字符函数和字符串函数(下)

个人主页(找往期文章包括但不限于本期文章中不懂的知识点):我要学编程(ಥ_ಥ)-CSDN博客 目录 strncpy函数的使用 函数原型: strncpy的使用 strncat函数的使用 函数原型: strncat的使用 strncmp函数的使用 函…

Vue开发实例(三)项目引入Element-UI

项目引入Element-UI 一、引入Element-UI二、注册组件1、vue2使用element-ui2、vue3使用element-ui 三、使用Element组件1、轻微改造2、验证element是否生效 一、引入Element-UI npm i element-ui --save npm install element-ui -S等待安装完成 二、注册组件 1、vue2使用ele…

Redis缓存示例【一篇看懂数据库缓存的技术redis】

Redis缓存示例【一篇看懂数据库缓存的技术redis】 环境准备缓存短信验证码缓存菜品信息 因为服务器和数据库直接读写,性能消耗大 我们可以用redis缓存 当服务器想访问数据库时,可以先访问redis,看是否之前访问过想要的数据,这样就…

51单片机-(中断系统)

51单片机-(中断系统) 了解51单片机中断系统、中断源、中断响应条件和优先级等,通过外部中断0实现按键控制LED亮灭为例理解中断工作原理和编程实现过程。 1.中断系统结构 89C51/52的中断系统有5个中断源 ,2个优先级,…

【yolov8部署实战】VS2019+OpenCV环境部署yolov8目标检测模型|含详细注释源码

一、前言 之前一阵子一直在做的就是怎么把yolo项目部署成c项目,因为项目需要嵌套进yolo模型跑算法。因为自己也是本科生小白一枚,基本上对这方面没有涉猎过,自己一个人从网上到处搜寻资料,写代码,调试,期间…

Trie树(1.字符串统计____2.最大异或对求解)

Trie树 文章目录 Trie树Trie字符串统计正解 最大异或对1.暴力 (可以过6/10个测试点)2. Trie树模拟 用法:高效地存储和查找字符串集合的数据结构 存储形式: 将n个单词各个字符进行枚举,若是(根节点所指向包含字符c&…