ABAP 搜索帮助带出多个字段描述 更新屏幕字段

news2024/11/24 14:11:11

文章目录

  • 需求
  • 解析
    • 1-DYNP_GET_STEPL
    • 2-F4IF_INT_TABLE_VALUE_REQUEST
    • 3-获取返回值
    • 4-把相应字段更新到内表
    • 5-DYNP_VALUES_UPDATE
  • 代码

需求

如图,当我点击责任工序的搜说帮助时,
同时会把责任人员的描述带出来.

在这里插入图片描述

解析

1-DYNP_GET_STEPL

这个方法就是获取当前的循环步骤
在这里插入图片描述

2-F4IF_INT_TABLE_VALUE_REQUEST

这个函数就是搜索帮助功能的函数,这里主要说一下这个参数RETURN_TAB返回值,
他会返回你所想要的字段值.
在这里插入图片描述

3-获取返回值

这个红框中就是我想要这个字段的具体内容,然后通过这个字段值我来获取责任人员的数据.
在这里插入图片描述

4-把相应字段更新到内表

这个就是你要把那些值带到屏幕上去,可以带出多个字段,一直加就行了.
在这里插入图片描述

5-DYNP_VALUES_UPDATE

这个函数的作用就是更新字段的, 把刚才你添加的那两个字段更新到屏幕上去.
在这里插入图片描述
欢迎大佬前来补充

代码

MODULE f4_help_4_zzrgx INPUT.
  DATA:BEGIN OF ls_oper,
         vornr TYPE zsmsjkz-vornr,
         arbpl TYPE zsmsjkz-arbpl,
         ktext TYPE crhd_v1-ktext,
  END OF ls_oper.

  DATA:lt_oper     LIKE STANDARD TABLE OF ls_oper.
  DATA:lt_return   TYPE STANDARD TABLE OF ddshretval.
  DATA:lt_zsmsjkz TYPE STANDARD TABLE OF zsmsjkz.
  DATA:lv_sname      TYPE string."责任人   文本
  DATA:lv_zzrgx      TYPE shvalue_d.

  DATA:lvx_row    LIKE sy-tabix,
       lt_systems TYPE STANDARD TABLE OF dynpread.

  FIELD-SYMBOLS:<fs_systems> TYPE dynpread.
  FIELD-SYMBOLS:<fs_return> TYPE ddshretval.

  CLEAR: lv_bj,lv_bj2,lv_bj3.
  IF gs_authorization-conform  NE 'X'.
    EXIT.
  ENDIF.
  CLEAR: lt_oper,ls_oper .
  SELECT
    zsmsjkz~vornr,
    zsmsjkz~arbpl,
    zsmsjkz~tarbpl,
    crhd_v1~ktext
    INTO TABLE @DATA(lt_zsm)
    FROM zsmsjkz
    LEFT JOIN crhd_v1 ON zsmsjkz~arbpl = crhd_v1~arbpl
    WHERE aufnr = @gs_data-aufnr
     AND crhd_v1~werks = '1000'.
  SORT lt_zsm BY vornr.
  IF  sy-subrc = 0 .
    LOOP AT lt_zsm INTO DATA(ls_zsm) .
      IF  ls_zsm-tarbpl <> ''.
        SELECT ktext INTO @DATA(lv_tarbpl) FROM crhd_v1 WHERE arbpl = @ls_zsm-tarbpl .ENDSELECT.
        ls_zsm-arbpl =  ls_zsm-tarbpl .
        ls_zsm-ktext = lv_tarbpl .
      ENDIF.
      CLEAR ls_oper .
      ls_oper-vornr = ls_zsm-vornr.
      ls_oper-arbpl = ls_zsm-arbpl.
      ls_oper-ktext = ls_zsm-ktext .
      APPEND ls_oper TO lt_oper.
      CLEAR ls_zsm.
    ENDLOOP.
  ENDIF.

  CALL FUNCTION 'DYNP_GET_STEPL'
    IMPORTING
      povstepl = lvx_row.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield         = 'ZZRGX'            "lt内表里面的字段
      dynpprog         = sy-repid
      dynpnr           = sy-dynnr
      dynprofield      = 'LS_OPER-ARBPL'   "画面上绑定字段
      value_org        = 'S'
      window_title     = '责任工序选择'
      callback_program = sy-repid
      display          = 'F'
*     MULTIPLE_CHOICE  = 'X'               "X:支持多选,space:单选
*     callback_form    = 'CALLBACK_F4'
    TABLES
      value_tab        = lt_oper          "需要显示帮助的值内表
      return_tab       = lt_return         "返回值
    EXCEPTIONS
      parameter_error  = 1
      no_values_found  = 2
      OTHERS           = 3.

  IF sy-subrc = 0.
    READ TABLE lt_return ASSIGNING <fs_return> INDEX 1.
    IF sy-subrc = 0.
      CLEAR: lv_zzrgx,lv_sname.
      lv_zzrgx = z_tct_interface_util=>replace_char_in_string( iv_str = <fs_return>-fieldval iv_old_char = '/' iv_new_char = '-' ).
      READ TABLE lt_oper INTO ls_oper WITH  KEY ktext = lv_zzrgx.
      SELECT
        zyggh~ygmc
        INTO lv_sname
        FROM zyggh
        INNER JOIN zsmsjl ON zyggh~rgm = zsmsjl~rgm
        WHERE zsmsjl~arbpl = ls_oper-arbpl
        AND zsmsjl~aufnr   = gs_data-aufnr
        AND zsmsjl~OPERTP = '2'.
      ENDSELECT.

      APPEND INITIAL LINE TO lt_systems ASSIGNING <fs_systems>.
      <fs_systems>-fieldname = 'GS_DATA-ZZRGX'.
      <fs_systems>-stepl     = lvx_row.
      <fs_systems>-fieldvalue = lv_zzrgx.

      APPEND INITIAL LINE TO lt_systems ASSIGNING <fs_systems>.
      <fs_systems>-fieldname = 'GS_DATA-ZZRXR'.
      <fs_systems>-stepl     = lvx_row.
      <fs_systems>-fieldvalue = lv_sname.
*
*      APPEND INITIAL LINE TO lt_systems ASSIGNING <fs_systems>.
*      <fs_systems>-fieldname = 'GS_DATA-ZGZZX'.
*      <fs_systems>-stepl     = lvx_row.
*      <fs_systems>-fieldvalue = lv_sname2.

*      APPEND INITIAL LINE TO lt_systems ASSIGNING <fs_systems>.
*      <fs_systems>-fieldname = 'GS_DATA-ZZRBM'.
*      <fs_systems>-stepl     = lvx_row.
*      <fs_systems>-fieldvalue = lv_sname3.
*
*      IF lv_zzrgx NE '其它' AND gs_data-werks = '1000'. "ADD BY CHY 2021.03.23
*        APPEND INITIAL LINE TO lt_systems ASSIGNING <fs_systems>.
*        <fs_systems>-fieldname = 'GS_DATA-DEPARTMENTID'.
*        <fs_systems>-stepl     = lvx_row.
*        <fs_systems>-fieldvalue = ''.
*
*        APPEND INITIAL LINE TO lt_systems ASSIGNING <fs_systems>.
*        <fs_systems>-fieldname = 'GS_DATA-DEPARTMENTDNM'.
*        <fs_systems>-stepl     = lvx_row.
*        <fs_systems>-fieldvalue = ''.
*      ENDIF.

      CALL FUNCTION 'DYNP_VALUES_UPDATE'
        EXPORTING
          dyname               = sy-repid
          dynumb               = '100'
        TABLES
          dynpfields           = lt_systems
        EXCEPTIONS
          invalid_abapworkarea = 1
          invalid_dynprofield  = 2
          invalid_dynproname   = 3
          invalid_dynpronummer = 4
          invalid_request      = 5
          no_fielddescription  = 6
          undefind_error       = 7
          OTHERS               = 8.
      IF sy-subrc <> 0.
      ENDIF.
    ENDIF.
  ENDIF.
  ENDMODULE.

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

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

相关文章

浏览器中的 JavaScript 执行机制

思维导图 本文为反复学习极客时间-《浏览器的工作原理与实践》-浏览器中的 JavaScript 执行机制章节中的一些思考与记录。 一些重要概念 变量提升 所谓的变量提升&#xff0c;是指在 JavaScript 代码执行过程中&#xff0c;JavaScript 引擎把变量的声明部分和函数的声明部分…

你可能还不知道的 console.log 替代品

通过使用 javascript 对象的破坏能力&#xff0c;您可以这样做&#xff1a;const{ log } console; log("hi"); log("testing");你可以将log函数更改为您想要的任何其他名称&#xff0c;如下所示&#xff1a;const{log: myLog } console; myLog("hi&qu…

vue插槽 Slots

一、插槽是什么&#xff1f; 插槽就是子组件中的提供给父组件使用的一个占位符&#xff0c;用<slot></slot> 表示, 父组件可以在这个占位符中填充任何模板代码&#xff0c;如 HTML、组件等&#xff0c;填充的内容会替换子组件的<slot></slot>标签。 简…

OpenSergo Spring Cloud Alibaba 带来的服务治理能力

作者&#xff1a;十眠、牧思 Spring Cloud 应用为何需要服务治理 随着微服务技术的发展&#xff0c;微服务(MicroServices) 的概念早已深入人心&#xff0c;越来越多的公司开始使用微服务架构来开发业务应用。 如果采用得当&#xff0c;微服务架构可以带来非常大的优势。微服…

IDEA与eclipse桌面配置基础(笔记)

在eclipse中配置jdk Window–>Preferences–>java–>installed JREs–>add–>Standard VM–>选择jdk安装路径就好了 设置字符集编码为utf-8&#xff0c;防止中文乱码 设置字符集编码为UTF-8&#xff1a;Window–>Preferences–>General–>Workspace…

第四次工业革命新十年:看跨越智能化鸿沟的联想范式

十年前&#xff0c;GE推出全球第一个工业互联网平台Predix&#xff1b;同年&#xff0c;在2013汉诺威工业博览会上&#xff0c;德国正式推出工业4.0概念。由此&#xff0c;全球开启了以工业4.0和工业互联网为核心的第四次工业革命浪潮&#xff0c;智能技术成为了第四次工业革命…

4N25光耦合器:简单的应用电路

4N25光耦合器&#xff1a;简单的应用电路 介绍 4N25是一款6引脚光电晶体管耦合器。本文根据其传动特性介绍了 4N25 的非线性和线性应用。 4N25概述 光电耦合器4N25的内部电路结构如图1所示。 图1.4N25内部电路结构 该芯片为双列直插式器件&#xff0c;外引线为6根&#xff0…

Dart语法学习-基础-类

Classes Using constructors 使用构造函数创建对象。 构造函数名称可以是 ClassName 或 ClassName.identifier。 例如&#xff0c;以下代码使用 Point() 和 Point.fromJson() 构造函数创建 Point 对象&#xff1a; class Point {var x;var y;Point(int this.x, int this.y);…

Java --- Integer.parseInt()

parseInt() 方法是java.lang 包下Integer 类的一个方法。 Java Integer parseInt() 方法共有三种不同类型&#xff0c;可以根据其参数进行区分。 用法: 以下是 parseInt() 方法的声明&#xff1a; public static int parseInt (String s) public static int parseInt (Strin…

捐赠物品管理系统-php mysql

目 录 第一章 引言 1 1.1研究背景 1 1.2研究现状 1 1.3 系统相关技术与环境简介 1 1.3.1 PHP 1 1.3.2 Apache 2 1.3.3 MySQL数据库 2 1.3.4 运行环境 Windows 3 1.3.5 appserv 3 1.3.6 Dreamweave8 3 1.3.7 EditPlus 4 第二章 需求分析…

前端必备开发编译器详解

一、前言 前端开发编译器有很多&#xff0c;例如&#xff1a;WebStorm、VS Code、HBuilder X、Sublime Text等等。在这里就不一一介绍了&#xff0c;这里主要讲解VS Code和HBuilder X 编译器。 二、VS Code Visual Studio Code (简称 VS Code) 是一款免费开源的现代化轻量级…

论文阅读:Tube Convolutional Neural Network (T-CNN) for Action Detection in Videos

Tube Convolutional Neural Network (T-CNN) for Action Detection in Videos 文章目录Tube Convolutional Neural Network (T-CNN) for Action Detection in Videos摘要及贡献相关工作Generalizing R-CNN from 2D to 3D框架结构Tube Proposal Network&#xff08;TPN&#xff…

leetcode刷题之背包问题(01背包)

01 背包 概念&#xff1a;有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]weight[i]weight[i]&#xff0c;得到的价值是value[i]value[i]value[i]。每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 方法1&#xff1a;暴力回溯…

综合办公系统(OA+HR+CRM)

综合办公管理系统是集OA办公系统、HR人力资源管理系统和CRM客户关系管理系统于一体的综合系统。 其架构为&#xff1a; 功能介绍 一、OA办公系统 OA办公系统主要包括个人办公、会议室管理、车辆管理、新闻公告、资产管理和文档管理模块 &#xff08;1&#xff09;个人办公 内部…

6年软件测试经历:成长、迷茫、奋斗

前言 测试工作6年&#xff0c;经历过不同产品、共事过不同专业背景、能力的同事&#xff0c;踩过测试各种坑、遇到过各种bug。测试职场生涯积极努力上进业务和技术能力快速进步过、也有努力付出却一无所得过、有对测试生涯前景充满希望认为一片朝气蓬勃过、也有对中年危机思考不…

【笔记】移动端自动化:adb调试工具+appium+UIAutomatorViewer

学习源&#xff1a; https://www.bilibili.com/video/BV11p4y197HQ https://blog.csdn.net/weixin_47498728/category_11818905.html 一、移动端测试环境搭建 学习目标 1.能够搭建java 环境 2.能够搭建android 环境 &#xff08;一&#xff09;整体思路 我们的目标是Andr…

小红书情人节大赏!热门话题各出奇招,看看哪个品牌打动了你?

情人节热度狂飙&#xff0c;实时热度值破万 以爱之名&#xff0c;传递爱意。每年情人节向来是不容错过的热门话题。我们发现&#xff0c;临近情人节&#xff0c;小红书平台的相关内容热度飙升。据千瓜数据关键词热度查询&#xff0c;2月初“情人节”热搜词热度值就已破万。 截止…

1.ORB-SLAM2中的多线程调度解析

目录 0.先修知识 1.ORB - SLAM2中的线程 2.ORBSLAM2中的互斥锁示例 0.先修知识 需要了解C中开辟多线程的方式&#xff0c;了解C中不同锁的使用方法 学习C&#xff1a;C进阶&#xff08;五&#xff09;多线程编程原理及多线程编程方法https://blog.csdn.net/qq_41694024/artic…

Java 网络编程详解

1、什么是网络编程 在网络通信协议下&#xff0c;不同计算机上运行的程序&#xff0c;可以进行数据传输。 应用场景&#xff1a;     1、即时通信 2、网游对战 3、邮件等等 Java中可以使用java.net包下的技术轻松开发出常见的网络应用程序 2、网络编程三要素 2.1 IP地址 要…

HCNP路由交换学习指南丨学习笔记丨07.BGP

07.BGP1. BGP 的基本概念1.1 BGP 对等体关系类型1.2 IBGP 水平分割原则1. BGP 的基本概念 关于 自治系统&#xff08;Autonomous System&#xff0c;AS&#xff09; 的传统定义&#xff1a;由一个单一的机构或组织所管理的一系列 IP 网络及其设备所构成的集合。 自治系统的简单…