ABAP - OOALV 单元格 F4实现

  • 方式一:使用标准数据表,FIELDCAT字段设置值
      gs_fieldcat-ref_table     = 'X'.      "列可编辑gs_fieldcat-ref_table     = 'MARA'.   "F4 参考表gs_fieldcat-ref_field     = 'MATNR'.  "F4 参考字段

  •  方式二.使用自定义数据 ,实现效果如下图
  • 实现步骤
  1. FIELDCAT参数 F4AVAILABL赋值
    gs_fieldcat-f4availabl = 'X'.

  2.  类的定义和实现
    CLASS cl_event DEFINITION.PUBLIC SECTION.METHODS: handle_onf4 FOR EVENT onf4 OF cl_gui_alv_gridIMPORTING e_fieldnamees_row_noer_event_datasender .
    ENDCLASS.CLASS cl_event IMPLEMENTATION.METHOD handle_onf4.DATA:ls_modi    TYPE lvc_s_modi,lt_ret_tab TYPE TABLE OF ddshretval.FIELD-SYMBOLS <modtab> TYPE lvc_t_modi.IF e_fieldname = 'MATNR'.     "需要自定义搜索的字段名READ TABLE gt_data TRANSPORTING NO FIELDS INDEX es_row_no-row_id.CHECK sy-subrc = 0.SELECT mara~matnr,makt~maktx INTO TABLE @DATA(lt_f4)FROM maRAINNER JOIN makt ON mara~matnr = makt~matnrUP TO 10 ROWS.CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'EXPORTINGretfield        = 'HIT_FIELD'value_org       = 'S'TABLESvalue_tab       = lt_f4return_tab      = lt_ret_tabEXCEPTIONSparameter_error = 1no_values_found = 2OTHERS          = 3.IF sy-subrc = 0.READ TABLE lt_ret_tab INTO DATA(lw_ret_tab) INDEX 1.IF sy-subrc = 0. "ls_modi-row_id = es_row_no-row_id.ls_modi-fieldname = e_fieldname.ls_modi-value = lw_ret_tab-fieldval.ASSIGN er_event_data->m_data->* TO <modtab>.APPEND ls_modi TO <modtab>.ENDIF.ENDIF.er_event_data->m_event_handled = 'X'.ENDIF.ENDMETHOD.ENDCLASS.

  3. 通过事件处理类的实例对象给OOALVDUI的实例对象设置注册事件 
      CREATE OBJECT go_conEXPORTINGcontainer_name = 'CONTORL'.CREATE OBJECT go_alvEXPORTINGI_parent = go_con.DATA: lt_f4 TYPE lvc_t_f4 WITH HEADER LINE.CLEAR lt_f4.lt_f4-fieldname = 'MATNR'.lt_f4-register = 'X'.lt_f4-chngeafter = 'X'.APPEND lt_f4.CALL METHOD go_alv->register_f4_for_fieldsEXPORTINGit_f4 = lt_f4[].DATA(lo_event) = NEW cl_event( ).SET HANDLER lo_event->handle_onf4          FOR go_alv.CALL METHOD go_alv->set_table_for_first_displayEXPORTINGis_layout       = gs_layoutCHANGINGit_outtab       = gt_datait_fieldcatalog = gt_fieldcat.
    

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

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

相关文章

达梦数据库基础操作(四):数据表 CRUD 功能

达梦数据库基础操作(四)&#xff1a;数据表 CRUD 功能 1. 数据表 CRUD 功能 1.1 插入数据 # 使用 INSERT INTO 语句向 department 表插入数据记录。 INSERT INTO department VALUES(666, 数据库产品中心); # 使用 INSERT INTO 语句向 employee 表插入数据记录。 INSERT INTO …

基于图数据库构建知识图谱平台应用实践

▏摘要 中信证券基于分布式图数据库StellarDB&#xff0c;替代国外开源图数据库产品&#xff0c;打造全新的企业级知识图谱平台&#xff0c;应用于同一客户集团画像、科创板关联发现、风险事件报告、全球企业关联图谱、产业链图谱、投研图谱、反洗钱与稽核图谱、元数据图谱等应…

PXE网络启动实战(第一篇 启动WinPE)

免责声明:文中有一些图片来源自网络,如有版权请通知我删除,谢谢! 目录 一、无盘站 二、PXE启动 三、PXE启动原理 四、启动WinPE 1、服务器准备 2、客户端 3、TFTP服务 4、WinPE选择 5、具体操作: 预告 一、无盘站 网络启动最早用于无盘系统,那时的电脑只配备软…

举行活动会议发布会如何邀请媒体?工作流程分享

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 举行活动会议发布会邀请媒体的工作需要有条理的准备和执行。以下是一般的工作流程&#xff1a; 制定计划&#xff1a; &#xff08;1&#xff09; 确定活动目标、主题和重点信息。 &a…

青少年CTF2024 #Round1 wp web

web EasyMD5 MD5碰撞&#xff0c;使用工具fastcoll生成内容不同但md5值相同的两个pdf文件上传即可获得flag&#xff1b; ./fastcoll_v1.0.0.5.exe -p 1.pdf -o 2.pdf 3.pdf # -p指定任意源文件&#xff0c;-o指定生成两个内容不同但md5值相同的目标文件 工具下载&#x…

JavaWeb HTTP 请求头、请求体、响应头、响应体、响应状态码

J2EE&#xff08;Java 2 Platform Enterprise Edition&#xff09;是指“Java 2企业版”&#xff0c;B/S模式开发Web应用就是J2EE最核心的功能。 Web是全球广域网&#xff0c;也称为万维网(www)&#xff0c;能够通过浏览器访问的网站。 在日常的生活中&#xff0c;经常会使用…

LabVIEW流量控制系统

LabVIEW流量控制系统 为响应水下航行体操纵舵翼环量控制技术的试验研究需求&#xff0c;通过LabVIEW开发了一套小量程流量控制系统。该系统能够满足特定流量控制范围及精度要求&#xff0c;展现了其在实验研究中的经济性、可靠性和实用性&#xff0c;具有良好的推广价值。 项…

HS6621Cx 一款低功耗蓝牙SoC芯片 应用于键盘、鼠标和遥控器消费类产品

HS6621Cx是一款功耗优化的真正片上系统 (SOC)解决方案&#xff0c;适用于低功耗蓝牙和专有2.4GHz应用。它集成了高性能、低功耗射频收发器&#xff0c;具有蓝牙基带和丰富的外设IO扩展。HS6621Cx还集成了电源管理功能&#xff0c;可提供高效的电源管理。它面向2.4GHz蓝牙低功耗…

VSCode通过SSH连接Docker环境进行开发

文章目录 VSCode 插件Docker 镜像构建镜像部署环境 VSCode 连接本地Docker容器VSCode SSH连接Docker容器VSCode 打开容器内目录文件 VSCode 插件 Remote - SSH Docker 镜像 https://hub.docker.com/_/golang # Golang 镜像 docker pull golang:1.22构建镜像 Dockerfile F…

AGI概念与实现

AGI AGI&#xff08;Artificial General Intelligence&#xff09;&#xff0c;中文名为“通用人工智能”或“强人工智能”&#xff0c;是指通过机器学习和数据分析等技术&#xff0c;使计算机具有类似于人类的认知和学习能力的技术. 多模态的大模型 &#xff08;Multimodal…

什么是数据同步利器DataX,如何使用?

什么是 Datax? DataX 是阿里云 DataWorks数据集成 的开源版本&#xff0c;使用Java 语言编写&#xff0c;在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、Ma…

店匠科技颁布 Shoplazza Awards:品牌出海迎历史性机遇,赋能品牌腾飞

在全球化的今天&#xff0c;中国品牌在全球市场的地位日益显著&#xff0c;品牌意识的提升推动了企业出海战略的全新转型。以全球电商市场发展为例&#xff0c;根据 ecommerceBD 数据&#xff0c;2023 年全球零售电子商务销售额预计 6.3 万亿美元&#xff0c;到 2026 年&#x…