ABAP - OOALV 单元格 F4实现

news2024/9/20 16:55:01
  • 方式一:使用标准数据表,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_grid
          IMPORTING e_fieldname
                    es_row_no
                    er_event_data
                    sender .
    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 maRA
           INNER JOIN makt ON mara~matnr = makt~matnr
            UP TO 10 ROWS.
    
          CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
            EXPORTING
              retfield        = 'HIT_FIELD'
              value_org       = 'S'
            TABLES
              value_tab       = lt_f4
              return_tab      = lt_ret_tab
            EXCEPTIONS
              parameter_error = 1
              no_values_found = 2
              OTHERS          = 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_con
        EXPORTING
          container_name = 'CONTORL'.
    
      CREATE OBJECT go_alv
        EXPORTING
          I_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_fields
        EXPORTING
          it_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_display
        EXPORTING
          is_layout       = gs_layout
        CHANGING
          it_outtab       = gt_data
          it_fieldcatalog = gt_fieldcat.
    

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

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

相关文章

git根据文件改动将文件自动添加到缓冲区

你需要修改以下脚本中的 use_cca: false 部分 #!/bin/bash# 获取所有已修改但未暂存的文件 files$(git diff --name-only)for file in $files; do# 检查文件中是否存在"use_cca: false"if grep -q "use_cca: false" "$file"; thenecho "Ad…

【ue5】滑铲系统蓝图笔记

大致逻辑如下&#xff1a; 一、导入动画 滑铲蹲待机蹲行走 导入到文件夹中 可以右键设置颜色&#xff0c;便于区分。 二、调整动画 1.启动根运动 启动根运动后&#xff0c;人物才可以位移&#xff0c;不然只能在原地。 打开动画序列&#xff0c;勾选启用根运动Enabled…

【排序算法】基数排序

一&#xff1a;基本概念 1.1 基数排序(桶排序)介绍 基数排序&#xff08;radix sort&#xff09;属于“分配式排序”&#xff08;distribution sort&#xff09;&#xff0c;又称“桶子法”&#xff08;bucket sort&#xff09;或bin sort&#xff0c;顾名思义&#xff0c;它是…

Python读取hbase数据库

1. hbase连接 首先用hbase shell 命令来进入到hbase数据库&#xff0c;然后用list命令来查看hbase下所有表&#xff0c;以其中表“DB_level0”为例&#xff0c;可以看到库名“baotouyiqi”是拼接的&#xff0c;python代码访问时先连接&#xff1a; def hbase_connection(hbase…

如何开好一家汽车美容店,汽车美容保养与装饰教学

一、教程描述 本套教程共由17张VCD组合而成&#xff0c;教程内容主要包括&#xff1a;美容店的设立和管理&#xff0c;汽车系统与内部结构&#xff0c;汽车美容工具与美容设备&#xff0c;美容用品的选择与使用&#xff0c;车身打蜡镀膜与内外清洁&#xff0c;车身抛光与漆面处…

Verilog(未完待续)

Verilog教程 这个教程写的很好&#xff0c;可以多看看。本篇还没整理完。 一、Verilog简介 什么是FPGA&#xff1f;一种可通过编程来修改其逻辑功能的数字集成电路&#xff08;芯片&#xff09; 与单片机的区别&#xff1f;对单片机编程并不改变其地电路的内部结构&#xff0…

【框架】Spring 框架重点解析

Spring 框架重点解析 1. Spring 框架中的单例 bean 是线程安全的吗&#xff1f; 不是线程安全的 Spring 框架中有一个 Scope 注解&#xff0c;默认的值是 singleton&#xff0c;即单例的&#xff1b;因为一般在 Spring 的 bean 对象都是无状态的&#xff08;在生命周期中不被…

vue3 + vite 项目可以使用纯Js开发吗?

答案&#xff1a;可以 创建项目&#xff1a; 按照链接参考或者按官方&#xff1a; webstorm 创建vue3 vite 项目-CSDN博客 项目目录 tsconfig.json 配置允许js allowJs指定是否编译js文件&#xff0c;在任意文件当中,如果我们模块使用js写的&#xff0c;那么我们需要 将all…

微软为金融界带来革命性突破——推出Microsoft 365中的下一代AI助手:Microsoft Copilot for Finance

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

【leetcode】相交链表

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家刷题&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 点击查看题目 思路: struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *he…

数据分析之Logistic回归分析(二元逻辑回归、多元有序逻辑回归、多元无序逻辑回归)

1、Logistic回归分类 在研究X对于Y的影响时&#xff1a; 如果Y为定量数据&#xff0c;那么使用多元线性回归分析&#xff1b;如果Y为定类数据&#xff0c;那么使用Logistic回归分析。 结合实际情况&#xff0c;可以将Logistic回归分析分为3类&#xff1a; 二元Logistic回归…

今年国内石油需求稳中有升,巡检机器人助力石油行业可持续发展

前言&#xff1a;全球能源市场出现普遍回落趋势&#xff0c;其中石油价格下降近20%&#xff0c;而天然气和煤炭价格更是下跌超过50%。此外&#xff0c;碳酸锂和光伏组件价格也纷纷下降超过50%。这种价格下滑对于全球经济的持续增长&#xff0c;尤其是控制通货膨胀方面&#xff…

CSS 盒子模型(box model)

概念 所有HTML元素可以看作盒子&#xff0c;在CSS中&#xff0c;"box model"这一术语是用来设计和布局时使用CSS盒模型本质上是一个盒子&#xff0c;封装周围的HTML元素&#xff0c;它包括&#xff1a;外边距(margin)&#xff0c;边框(border)&#xff0c;内边距(pad…

高比例清洁能源接入下计及需求响应的配电网重构(matlab代码)

目录 1 主要内容 目标函数 重要约束条件 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序复现《高比例清洁能源接入下计及需求响应的配电网重构》&#xff0c;以考虑网损成本、弃风弃光成本和开关操作惩罚成本的综合成本最小为目标&#xff0c;针对配电网重构模型的…

mac 本地使用dockerfile启动 springboot项目

1.创建Dockerfile放在项目的根目录下 2.编写Dockerfile FROM openjdk:11 MAINTAINER ChengLinADD target/JiaLi-0.0.1-SNAPSHOT.jar /app.jar# 暴露 Spring Boot 应用的端口号 EXPOSE 8088 # 启动 Spring Boot 应用 CMD ["java", "-jar", "app.jar&q…

1_SQL

文章目录 前端复习SQL数据库的分类关系型数据库非关系型数据库&#xff08;NoSQL&#xff09; 数据库的构成软件架构MySQL内部数据组织方式 SQL语言登录数据库数据库操作查看库创建库删除库修改库 数据库中表的操作选择数据库创建表删除表查看表修改表 数据库中数据的操作添加数…

【GPU驱动开发】- AST简介

前言 不必害怕未知&#xff0c;无需恐惧犯错&#xff0c;做一个Creator&#xff01; AST&#xff0c;抽象语法树&#xff0c;是一种包含丰富语义信息的格式&#xff0c;其中包括类型、表达式树和符号等。 TranslationUnitDecl&#xff1a;该类表示一个输入源文件 ASTContext&…

常见的开源人脸检测模型有哪些

阅读本文之前可以先参阅----神经网络中的重要概念 如何快速入门深度学习 人工智能模型与人脸检测模型详解 一、人工智能模型概述 人工智能&#xff08;Artificial Intelligence, AI&#xff09;模型&#xff0c;是指通过计算机算法和数学统计方法&#xff0c;模拟人类智能行为…

C习题003:球筐投球(一排)

题目 输入样例 在这里给出一组输入。例如&#xff1a; 5 3 7 5 7 7 3 1 5 3 1 5 2 4 4 4输出样例 在这里给出相应的输出。例如&#xff1a; 12 10 12 16 8代码长度限制 16 KB 时间限制400 ms 内存限制 64 MB 栈限制 8192 KB 代码 #include<stdio.h> int main() {int…

Netty5 入门HelloWorld

一、客户端代码及关键类说明 /*** netty5的客户端* author -zhengzx-**/ public class ClientSocket {public static void main(String[] args) {//服务类Bootstrap bootstrap new Bootstrap();//workerEventLoopGroup worker new NioEventLoopGroup();try {//设置线程池boo…