ABAP - Function ALV 08 热点和单击/双击的联动之ALV点击单号跳转

2024-02-28 07:28

本文主要是介绍ABAP - Function ALV 08 热点和单击/双击的联动之ALV点击单号跳转,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • Function ALV可以通过单元格设置单击和双击热点进行某些功能的实现,例如点击单号跳转到前台界面。
  • 完成功能思路:先在Fieldcat将采购订单列设置为热点,然后Function ALV调用函数的传入参数i_callback_user_command子例程中处理。
    FORM frm_user_command USING r_ucomm LIKE sy-ucommrs_selfield TYPE slis_selfield.CASE r_ucomm.WHEN ''.WHEN ORTHER.ENDCASE.
    ENDFORM.

    可以看到子例程中有两个传入参数,r_ucomm(用户的命令码),rs_selfield(ALV光标所在的字段等信息),调试时可以看到两个参数的值单击双击的命令码是&IC1。



  • 完整代码 
    ** Layout  变量定义
    DATA gs_layout   TYPE lvc_s_layo.** Fieldcat 变量定义
    DATA:gt_fieldcat TYPE lvc_t_fcat,gs_fieldcat LIKE LINE OF gt_fieldcat.** FieldCat的宏
    DATA gv_pos TYPE i.DEFINE %%add_fieldcat.gv_pos = gv_pos + 1.gs_fieldcat-col_pos = gv_pos.gs_fieldcat-fieldname = &1.gs_fieldcat-scrtext_m = &2.CASE &1.WHEN 'EBELN'.gs_fieldcat-hotspot = 'X'.    "设置成热点WHEN OTHERS.ENDCASE.APPEND gs_fieldcat TO gt_fieldcat.CLEAR gs_fieldcat.
    END-OF-DEFINITION.START-OF-SELECTION.SELECT ekko~ebeln,  "采购订单抬头数据- 采购单号ekko~bukrs,  "采购订单抬头数据- 公司代码ekko~ekorg,  "采购订单抬头数据- 采购组织ekko~aedat,  "采购订单抬头数据- 订单创建日期ekko~ernam,  "采购订单抬头数据- 订单创建者ekpo~ebelp,  "采购订单明细数据- 采购订单行号ekpo~matnr,  "采购订单明细数据- 采购订单物料编码ekpo~menge,  "采购订单明细数据- 采购数量ekpo~meins,  "采购订单明细数据- 采购数量的计量单位ekpo~werks,  "采购订单明细数据- 收货工厂ekpo~lgort   "采购订单明细数据- 收货库存地点INTO TABLE @DATA(gt_po)FROM ekkoINNER JOIN ekpo ON ekko~ebeln = ekpo~ebelnWHERE ekko~aedat BETWEEN '20220301' AND '20220331'.** Fieldcat字段映射处理%%add_fieldcat:'EBELN'    '采购单号',  "( 前面字段值不可变 后面字段描述可变 每一行都是)'EBELP'    '采购订单行号','EKORG'    '采购组织','BUKRS'    '公司代码','AEDAT'    '订单创建日期','ERNAM'    '订单创建者','MATNR'    '物料编码','MENGE'    '采购数量','MEINS'    '单位','WERKS'    '收货工厂','LGORT'    '收货库存地点'.** Layout布局处理gs_layout-cwidth_opt = 'X'.     "自动优化列宽 (可以使用**在一行代码面前注释掉 看看ALV会有什么效果)gs_layout-zebra = 'X'.          "斑马纹输出** 调用FunctionALV需要传入的参数:展示数据,FieldCat,Layout,StatusCALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'EXPORTINGi_callback_program       = sy-repidi_callback_pf_status_set = 'FRM_SET_STATUS'i_callback_user_command  = 'FRM_USER_COMMAND'is_layout_lvc            = gs_layoutit_fieldcat_lvc          = gt_fieldcatTABLESt_outtab                 = gt_PO[]EXCEPTIONSprogram_error            = 1OTHERS                   = 2.FORM frm_set_status USING p_extab TYPE slis_t_extab.SET PF-STATUS 'STANDARD'.
    ENDFORM.FORM frm_user_command USING r_ucomm LIKE sy-ucommrs_selfield TYPE slis_selfield.CASE r_ucomm.WHEN '&IC1'.CASE rs_selfield-fieldname.WHEN 'EBELN'.SET PARAMETER ID 'BES' FIELD rs_selfield-value.CALL TRANSACTION 'ME23N'.WHEN OTHERS.ENDCASE.WHEN 'BUTTON'.MESSAGE  '自定的按钮功能呢' TYPE 'I'.WHEN OTHERS.ENDCASE.
    ENDFORM.
     

这篇关于ABAP - Function ALV 08 热点和单击/双击的联动之ALV点击单号跳转的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/754788

相关文章

Redis 中的热点键和数据倾斜示例详解

《Redis中的热点键和数据倾斜示例详解》热点键是指在Redis中被频繁访问的特定键,这些键由于其高访问频率,可能导致Redis服务器的性能问题,尤其是在高并发场景下,本文给大家介绍Redis中的热... 目录Redis 中的热点键和数据倾斜热点键(Hot Key)定义特点应对策略示例数据倾斜(Data S

Java function函数式接口的使用方法与实例

《Javafunction函数式接口的使用方法与实例》:本文主要介绍Javafunction函数式接口的使用方法与实例,函数式接口如一支未完成的诗篇,用Lambda表达式作韵脚,将代码的机械美感... 目录引言-当代码遇见诗性一、函数式接口的生物学解构1.1 函数式接口的基因密码1.2 六大核心接口的形态学

C++11的函数包装器std::function使用示例

《C++11的函数包装器std::function使用示例》C++11引入的std::function是最常用的函数包装器,它可以存储任何可调用对象并提供统一的调用接口,以下是关于函数包装器的详细讲解... 目录一、std::function 的基本用法1. 基本语法二、如何使用 std::function

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

C# 防止按钮botton重复“点击”的方法

在使用C#的按钮控件的时候,经常我们想如果出现了多次点击的时候只让其在执行的时候只响应一次。这个时候很多人可能会想到使用Enable=false, 但是实际情况是还是会被多次触发,因为C#采用的是消息队列机制,这个时候我们只需要在Enable = true 之前加一句 Application.DoEvents();就能达到防止重复点击的问题。 private void btnGenerateSh

AutoGen Function Call 函数调用解析(一)

目录 一、AutoGen Function Call 1.1 register_for_llm 注册调用 1.2 register_for_execution 注册执行 1.3 三种注册方法 1.3.1 函数定义和注册分开 1.3.2 定义函数时注册 1.3.3  register_function 函数注册 二、实例 本文主要对 AutoGen Function Call

[环境配置]ubuntu20.04安装后wifi有图标但是搜不到热点解决方法

最近刚入手一台主机,暗影精灵8plus电竞主机,安装ubuntu后wifi怎么都搜不到热点,前后重装系统6次才算解决问题。这个心酸历程只有搞技术人才明白。下面介绍我解决过程。 首先主机到手后是个windows10系统,我用无线网连接了一下,可以正常上网,说明主机有无限网卡且正常。然后我就直接开始安装Ubuntu20.04了,安装成功后发现wifi有图标但是搜不到热点,我想是不是无线网卡驱动有没有

Science|癌症中三级淋巴结构的免疫调节作用与治疗潜力|顶刊精析·24-09-08

小罗碎碎念 Science文献精析 今天精析的这一篇综述,于2022-01-07发表于Science,主要讨论了癌症中的三级淋巴结构(Tertiary Lymphoid Structures, TLS)及其在肿瘤免疫反应中的作用。 作者类型作者姓名单位名称(中文)通讯作者介绍第一作者Ton N. Schumacher荷兰癌症研究所通讯作者之一通讯作者Daniela S. Thomm

(function() {})();只执行一次

测试例子: var xx = (function() {     (function() { alert(9) })(); alert(10)     return "yyyy";  })(); 调用: alert(xx); 在调用的时候,你会发现只弹出"yyyy"信息,并不见弹出"10"的信息!这也就是说,这个匿名函数只在立即调用的时候执行一次,这时它已经赋予了给xx变量,也就是只是