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

相关文章

【前端学习】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变量,也就是只是

js私有作用域(function(){})(); 模仿块级作用域

摘自:http://outofmemory.cn/wr/?u=http%3A%2F%2Fwww.phpvar.com%2Farchives%2F3033.html js没有块级作用域,简单的例子: for(var i=0;i<10;i++){alert(i);}alert(i); for循环后的i,在其它语言像c、java中,会在for结束后被销毁,但js在后续的操作中仍然能访

08 增删查功能

划重点: lable 标签keyup:键盘事件标签内添加样式:style使用事件修饰符:preventforEach :遍历 数组indexOf: 可以返回要查询的某个字符串值在整个字符串中首次出现的位置下标findIndex:返回传入一个测试条件(函数)符合条件数组的首个元素的位置splice:向/从数组中添加/删除项目,然后返回被删除后的新的项目数组 黑椒蟹 一对: <!DOCTYPE

Clion不识别C代码或者无法跳转C语言项目怎么办?

如果是中文会显示: 此时只需要右击项目,或者你的源代码目录,将这个项目或者源码目录标记为项目源和头文件即可。 英文如下: