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_tableIMPORTINGrowcolumn.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 HANDLERSET 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_tableIMPORTINGrowcolumn.ENDCLASS.CLASS lcl_model IMPLEMENTATION.METHOD get_data.SELECT vbeln erdat erzet ernam auartINTO TABLE mt_dataFROM vbakUP TO 20 ROWS.ENDMETHOD.METHOD alv_show.DATA: lx_msg TYPE REF TO cx_salv_msg.TRY.cl_salv_table=>factory(IMPORTINGr_salv_table = mo_salvCHANGINGt_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' ).
    *   设置Titlelo_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 HANDLERSET 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( ).

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SMART原则

在软件研发领域,项目管理和目标设定尤为关键。一个成功的软件项目不仅需要先进的技术支持,还需要一个清晰、明确且可实现的目标。SMART原则,作为一种高效的目标设定和管理方法,为软件研发提供了有力的指导。SMART是五个英文单词首…

合宙esp32-c3 进入深度睡眠无法唤醒解决一例

手贱,昨天收到了嘉立创最新的esp32 s3,想测试一下电流功耗,于是顺便测试了一下以前的合宙esp32 c3 无串口芯片的版本 打算对比一下c3和s3的功耗相差多少,结果把自己玩死了: void setup() {esp_deep_sleep_start();// esp_light_s…

oppo手机备忘录记录怎么转移到华为手机?

oppo手机备忘录记录怎么转移到华为手机?使用oppo手机已经有三四年了,因为平时习惯,在手机系统的备忘录中记录了很多重要的笔记,比如工作会议的要点、读书笔记、购物清单、朋友的生日提醒等。这些记录对我来说非常重要,我可以通过…

STM32 HAL库 串口使用问题记录

文章目录 STM32 HAL库 串口使用问题记录情况一:串口导致程序假死机情况二:其它程序正常运行,串口不再接收数据 STM32 HAL库 串口使用问题记录 情况一:串口导致程序假死机 多数应该出现在未开启DMA模式使用中断方式接收数据的情况…

钾是人体内重要的电解质之一

钾是人体内重要的电解质之一,是维持细胞生理活动的主要阳离子,在保持机体的正常渗透压及酸碱平衡,维持内环境的稳定性,参与糖及蛋白质代谢,保证神经肌肉的正常功能,在兴奋性等方面具有重要的作用。人体内的…

2000-2021年300+地级市进出口总额数据

2000-2021年300地级市进出口总额数据 1、时间:2000-2021年 2、指标:进出口总额 3、单位:万美元 4、来源:城市年鉴、各省年鉴、城市公报、2021年为城市统计年鉴中进口额出口额加总之后换算成万美元,已尽最大可能进行…

20240303

1.在优势、劣势、机会与威胁(SWOT)的分析期间,团队发现另一个项目通过与该团队合作可能从规模经济中获益。两个项目的成本都可能大幅降低,并可能实现公司的利益,项目经理应该怎么做? A.在风险登记册中记录该发现 B.询问项目发起人的意见 …

1.亿级积分数据分库分表:总体方案设计

项目背景 以一个积分系统为例,积分系统最核心的有积分账户表和积分明细表: 积分账户表:每个用户在一个品牌下有一个积分账户记录,记录了用户的积分余额,数据量在千万级积分明细表:用户每次积分发放、积分扣…

数据结构——Top-k问题

Top-k问题 方法一:堆排序(升序)(时间复杂度O(N*logN))向上调整建堆(时间复杂度:O(N * logN) )向下调整建堆(时间复杂度:O(N) )堆排序代码 方法二&…

LeetCode---386周赛

题目列表 3046. 分割数组 3047. 求交集区域内的最大正方形面积 3048. 标记所有下标的最早秒数 I 3049. 标记所有下标的最早秒数 II 一、分割数组 这题简单的思维题,要想将数组分为两个数组,且分出的两个数组中数字不会重复,很显然一个数…

Redis 的哨兵模式配置

1.配置 vim sentinel.conf# mymaster 给主机起的名字 # 192.168.205.128 主机的ip地址 # 6379 端口号 # 2 当几个哨兵发现主观宕机,则判定为客观宕机。 原则上是大于一半。比如三个哨兵,则设置为 2 sentinel monitor mymaster 192.168.205.128 63…

【动态规划入门】01背包问题

每日一道算法题之01背包问题 一、题目描述二、思路三、C++代码四、结语一、题目描述 题目来源:Acwing 有N件物品和一个容量是 V的背包。每件物品只能使用一次。第 i件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大…

LeetCode题练习与总结:合并K个升序链表

一、题目 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 二、解题思路 创建一个最小堆(优先队列)来存储所有链表的头节点。这样我们可以始终取出当前所有链表中值最小…

人工智能指数报告2023

人工智能指数报告2023 主要要点第 1 章 研究与开发第 2 章 技术性能第 3 章 人工智能技术伦理第 4 章 经济第 5 章 教育第 6 章 政策与治理第 7 章 多样性第 8 章 舆论 人工智能指数是斯坦福大学以人为本的人工智能研究所(HAI)的一项独立倡议&#xff0c…

Java 石头剪刀布小游戏

一、任务 编写一个剪刀石头布游戏的程序。程序启动后会随机生成1~3的随机数,分别代表剪刀、石头和布,玩家通过键盘输入剪刀、石头和布与电脑进行5轮的游戏,赢的次数多的一方为赢家。若五局皆为平局,则最终结果判为平局。 二、实…

redis 为什么会阻塞

目录 前言 客户端交换时的阻塞 redis 磁盘交换的阻塞 主从节点交互的阻塞 切片集群交互时的阻塞 异步执行的演变 redis 异步执行如何实现的 前言 大家对redis 比较熟悉吧,只要做项目都会用到redis,提高系统的吞吐。小米商城抢购高峰18k的qps&…

KubeSphere平台安装系列之三【Linux多节点部署KubeSphere】(3/3)

**《KubeSphere平台安装系列》** 【Kubernetes上安装KubeSphere(亲测–实操完整版)】(1/3) 【Linux单节点部署KubeSphere】(2/3) 【Linux多节点部署KubeSphere】(3/3) **《KubeS…

一句话讲清楚数据库中事务的隔离级别(通俗易懂版)

为什么我只说通俗易懂版不说严谨版? 因为严谨版遍地都是, 但是他们却有一个缺点就是让人看得云里雾里, 所以这就是我写通俗易懂版的初衷! 但是既然是通俗易懂版就必然有缺陷, 只为了各位在开发过程中头脑更加清晰, 如有错误还望兄弟们不吝赐教! 在MySQL数据库中,事务一共有4…

C语言之strcmp函数,strlen函数

strcmp函数是比较两个字符串ASCII大小的函数。 比较方式是自左向右比较&#xff0c;直到出现不同字符或者\0为止 语法格式 strcmp(字符串1,字符串2&#xff09; 如果两个字符串相同&#xff0c;会返回数值0 如果字符串1>字符串2,会返回一个正数 如果字符串1<字符串2…

新一代电话机器人开源PHP源代码

使用easyswoole 框架开发的 新一代电话机器人开源PHP源码 项目地址&#xff1a;https://gitee.com/ddrjcode/robotphp 代理商页面演示地址 http://119.23.229.15:8080 用户名&#xff1a;c0508 密码&#xff1a;123456 包含 AI外呼管理&#xff0c;话术管理&#xff0c;CR…