ABAP:自定义搜索帮助:可参考标准函数F4IF_SHLP_EXIT_EXAMPLE

news2024/10/6 1:35:43

当我们在自定义选择屏幕中, 需要写入我们自定义的搜索帮助的时候,可以通过预定义函数来实现:
实例说明:
第一步:创建搜索帮助SE11分销渠道(Z_VTWEG)
1.选择基本索引帮助:
在这里插入图片描述

2.选择参考表,因为这里分销渠道和文本来源于TVTWT,这里选择方法就填入TVTWT,对话类型选择D立即显示值,就是点击即可出现结果。
在这里插入图片描述
列表的意思是排列顺序
搜索帮助出口:需要我们自定义一个函数,可复制标准函数:F4IF_SHLP_EXIT_EXAMPLE去创建
参数和预定义函数一致,这里我们调用‘SELECT’这个时间点来进行数据的查询输出,自定义的帮助出口函数中的具体代码如下

FUNCTION zsd_vtweg_f4_exit.
*“----------------------------------------------------------------------
"“本地接口:
*” TABLES
*” SHLP_TAB TYPE SHLP_DESCT
*" RECORD_TAB STRUCTURE SEAHLPRES
*" CHANGING
*" VALUE(SHLP) TYPE SHLP_DESCR
*" VALUE(CALLCONTROL) LIKE DDSHF4CTRL STRUCTURE DDSHF4CTRL
*"----------------------------------------------------------------------
DATA:BEGIN OF lt_tab OCCURS 0,
vtweg TYPE vtweg,
vtext TYPE vtxtk,
spras TYPE spras,
END OF lt_tab.
DATA:r_vtweg TYPE RANGE OF vtweg WITH HEADER LINE,
r_vtext TYPE RANGE OF vtxtk WITH HEADER LINE,
r_spras TYPE RANGE OF spras WITH HEADER LINE,
ddshelops TYPE ddshselopt.

  • EXIT immediately, if you do not want to handle this step
    IF callcontrol-step <> ‘SELONE’ AND
    callcontrol-step <> ‘SELECT’ AND
    " AND SO ON
    callcontrol-step <> ‘DISP’.
    EXIT.
    ENDIF.

*"----------------------------------------------------------------------

  • STEP SELONE (Select one of the elementary searchhelps)
    *"----------------------------------------------------------------------
  • This step is only called for collective searchhelps. It may be used
  • to reduce the amount of elementary searchhelps given in SHLP_TAB.
  • The compound searchhelp is given in SHLP.
  • If you do not change CALLCONTROL-STEP, the next step is the
  • dialog, to select one of the elementary searchhelps.
  • If you want to skip this dialog, you have to return the selected
  • elementary searchhelp in SHLP and to change CALLCONTROL-STEP to
  • either to ‘PRESEL’ or to ‘SELECT’.
    IF callcontrol-step = ‘SELONE’.
  • PERFORM SELONE …
    EXIT.
    ENDIF.

*"----------------------------------------------------------------------

  • STEP PRESEL (Enter selection conditions)
    *"----------------------------------------------------------------------

  • This step allows you, to influence the selection conditions either

  • before they are displayed or in order to skip the dialog completely.

  • If you want to skip the dialog, you should change CALLCONTROL-STEP

  • to ‘SELECT’.

  • Normaly only SHLP-SELOPT should be changed in this step.
    IF callcontrol-step = ‘PRESEL’.

  • PERFORM PRESEL …
    LOOP AT record_tab INTO DATA(ls_table).

    ENDLOOP.
    EXIT.
    ENDIF.
    *"----------------------------------------------------------------------

  • STEP SELECT (Select values)
    *"----------------------------------------------------------------------

  • This step may be used to overtake the data selection completely.

  • To skip the standard seletion, you should return ‘DISP’ as following

  • step in CALLCONTROL-STEP.

  • Normally RECORD_TAB should be filled after this step.

  • Standard function module F4UT_RESULTS_MAP may be very helpfull in this

  • step.
    IF callcontrol-step = ‘SELECT’.

  • PERFORM STEP_SELECT TABLES RECORD_TAB SHLP_TAB

  •                   CHANGING SHLP CALLCONTROL RC.
    
  • IF RC = 0.

  • CALLCONTROL-STEP = 'DISP'.
    
  • ELSE.

  • CALLCONTROL-STEP = 'EXIT'.
    
  • ENDIF.
    "传入参数
    LOOP AT shlp-selopt INTO DATA(ls_selopt).
    CASE ls_selopt-shlpfield.
    WHEN ‘SPRAS’.
    MOVE-CORRESPONDING ls_selopt TO r_spras.
    APPEND r_spras.
    WHEN OTHERS.
    ENDCASE.
    ENDLOOP.
    "根据输入参数查询数据
    SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_tab FROM tvtwt WHERE spras = sy-langu.
    "将查询结果回执到屏幕上来

    CALL FUNCTION 'F4UT_RESULTS_MAP'
*       EXPORTING
*         SOURCE_STRUCTURE         =
*         APPLY_RESTRICTIONS       = ' '
      TABLES
        shlp_tab          = shlp_tab
        record_tab        = record_tab
        source_tab        = lt_tab
      CHANGING
        shlp              = shlp
        callcontrol       = callcontrol
      EXCEPTIONS
        illegal_structure = 1
        OTHERS            = 2.
*下一个时间点直接转到DISP,否则无法再屏幕上显示帮助列表
    callcontrol-step = 'DISP'.
    EXIT. "Don't process STEP DISP additionally in this call.
  ENDIF.
*"----------------------------------------------------------------------
* STEP DISP     (Display values)
*"----------------------------------------------------------------------
* This step is called, before the selected data is displayed.
* You can e.g. modify or reduce the data in RECORD_TAB
* according to the users authority.
* If you want to get the standard display dialog afterwards, you
* should not change CALLCONTROL-STEP.
* If you want to overtake the dialog on you own, you must return
* the following values in CALLCONTROL-STEP:
* - "RETURN" if one line was selected. The selected line must be
*   the only record left in RECORD_TAB. The corresponding fields of
*   this line are entered into the screen.
* - "EXIT" if the values request should be aborted
* - "PRESEL" if you want to return to the selection dialog
* Standard function modules F4UT_PARAMETER_VALUE_GET and
* F4UT_PARAMETER_RESULTS_PUT may be very helpfull in this step.
  IF callcontrol-step = 'DISP'.
*   PERFORM AUTHORITY_CHECK TABLES RECORD_TAB SHLP_TAB
*                           CHANGING SHLP CALLCONTROL.
    LOOP AT record_tab INTO DATA(ls_item).

    ENDLOOP.
    EXIT.
  ENDIF.
ENDFUNCTION.

在这里插入图片描述
因为我这里是全部输出系统当前语言的分销渠道,所以这里的搜索没有去做限制,也可以更具具体情况去限制
3.自定义屏幕中写入参考我们的搜索帮助即可
在这里插入图片描述

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

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

相关文章

Java 基础——HashMap 底层数据结构与源码分析

目录 1.HashMap 简介2.HashMap 底层数据结构2.2.JDK1.8 之前2.3.JDK1.8 及以后 3.常量定义3.1.默认初始化容量3.2.最大容量3.3.负载因子3.4.阈值 4.HashMap 源码分析4.1.构造函数4.2.Node<K, V>4.2.put(K key, V value)流程源码 4.3.get(Object key)流程源码 4.4.resize(…

java使用阿里云oss上传文件

java使用阿里云oss上传文件 1、oss 是什么&#xff1f; OSS是阿里云对象存储服务&#xff08;Object Storage Service&#xff09;的一个简称&#xff0c;它是阿里云提供的海量、安全、低成本、高可靠的云存储服务。 即开即用、无限大空间的存储集群。相较传统建服务器存储而…

逻辑回归模型预测

范例题目&#xff1a; 建立一个逻辑回归模型预测一个学生是否通过研究生入学考试。N表示训练集中学生个数&#xff0c;Score1、Score2、 Score3、 Score4是N维数组&#xff0c;分别表示N个学生研究生初试、专业课复试、英语面试成绩、专业课面试成绩。Admitted是N维{0,1}数组&a…

RabbitMQ编程模型

RabbitMQ基础概念 RabbitMQ是基于AMQP协议开发的一个MQ产品。 虚拟主机 virtual host RabbitMQ出于服务器复用的想法&#xff0c;可以在一个RabbitMQ集群中划分出多个虚拟主机&#xff0c;每一个虚拟主机都有AMQP的全套基础组件&#xff0c;并且可以针对每个虚拟主机进行权…

面向对象(高级)-Annotation注解、单元测试的使用

注解&#xff08;Annotation&#xff09; 注解大纲 注解的使用1.Annotation的理解 - 注解&#xff08;Annotation&#xff09;是从JDK5.0开始引入&#xff0c;以注解名在代码中存在。 - Annotation可以像修饰符一样被使用&#xff0c;可用于修饰包、类、构造器、方法、成员变…

LeetCode:59. 螺旋矩阵 II

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; &#x1f33b;算法&#xff0c;不如说它是一种思考方式&#x1f340; 算法专栏&#xff1a; &#x1f449;&#x1f3fb;123 一、&#x1f331;59. 螺旋矩阵 II 题目描述&#xff1a;给你一个正整数 n &#xff0c…

Python中类属性和类方法

1. 类的结构 1.1 术语 —— 实例 使用面相对象开发&#xff0c;第 1 步 是设计 类使用 类名() 创建对象&#xff0c;创建对象 的动作有两步&#xff1a; (1) 在内存中为对象 分配空间 (2) 调用初始化方法 __init__ 为 对象初始化对象创建后&#xff0c;内存 中就有了一个对象…

【敲敲云】零代码实战,主子表汇总统计—免费的零代码产品

近来很多朋友在使用敲敲云时&#xff0c;不清楚如何使用主子表&#xff0c;及如何在主表中统计子表数据&#xff1b;下面我们就以《订单》表及《订单明细》表来设计一下吧&#xff0c;用到的组件有“设计子表”、“公式”、“汇总”等。 《订单》表展示 总金额 订单明细中“小…

C++ Linux Web Server 面试基础篇-操作系统(三、进程通信)

⭐️我叫忆_恒心,一名喜欢书写博客的在读研究生👨‍🎓。 如果觉得本文能帮到您,麻烦点个赞👍呗! 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三连支持一下呗。👍⭐️❤️ Qt5.9专栏定期更新Qt的一些项目Demo 项目与…

恢复调度平台mysql主从同步

修复问题 调度平台两台MySQL从节点存在Slave_SQL_Running异常&#xff0c;需要恢复。 部署步骤 一、先停止调度平台core服务与web服务&#xff0c;否则无法正常锁表 1.1停止调度平台core服务 2.1停止web服务 3.确认MySQL所有执行线程是否都已经停止 show processlist; 如…

小红书流量规则是什么,推荐机制解读

当今的互联网自媒体世界&#xff0c;说到底还是一个流量时代&#xff0c;一个流量为王的时代。不管你在小红书也好&#xff0c;还是其他自媒体平台都需要知晓平台的流量规则。今天和大家分享下小红书流量规则是什么&#xff0c;让我们一起通过流量规则分析小红书机制和算法。 一…

人工智能如何助力建筑设计自动化?

ChatGPT和DALL-E等工具使用大规模机器学习(ML)模型&#xff0c;并访问大量有标记和有意义的数据&#xff0c;以对文本和图像中的查询提供有见解的响应。但是&#xff0c;一些行业对训练ML模型的数据集的访问有限&#xff0c;这使得使用生成式AI来解决现实世界问题的好处很难获得…

书写我的人生回忆录-这应该是给父母最好的礼物

作为一个业余的软件开发爱好者&#xff0c;我又捣鼓了一个有意思的小东西 &#xff0c;使用完全免费哈 《书写我的人生回忆录》是一款软件&#xff0c;其中包含70个问题&#xff0c;涵盖了父母的个人喜好、家庭、工作、人生经历和态度等方面。通过回答这些问题&#xff0c;您的…

爬虫请求头Content-Length的计算方法

重点&#xff1a;使用node.js 环境计算&#xff0c;同时要让计算的数据通过JSON.stringify从对象变成string。 1. Blob size var str 中国 new Blob([str]).size // 6 2、Buffer.byteLength # node > var str 中国 undefined > Buffer.byteLength(str, utf8) 6 原文…

Spring开启事务流程和事务相关配置

文章目录 Spring事务Spring快速入门事务相关配置 Spring事务 Spring快速入门 事务作用&#xff1a;在数据层保障一系列的数据库操作同成功同失败 Spring事务作用&#xff1a;在数据层或业务层保障一系列的数据库操作同成功同失败 Spring提供了一个接口PlatformTransactionMa…

Vue可视化项目搭建

安装Nodejs 全局下载Vue项目脚手架 创建项目 运行项目 项目初始化 安装Nodejs 下载地址&#xff1a;https://nodejs.org/zh-cn/ 下载完成之后一路点击下一个安装 全局下载Vue项目脚手架 进入开始菜单以管理员身份运行命令提示符 输入更换镜像源为淘宝源 npm config s…

java线程屏障CyclicBarrier

CyclicBarrier允许一组线程在达到一个公共的屏障点时相互等待。它在涉及固定大小的线程组、并且这些线程必须相互等待的程序中非常有用&#xff0c;CyclicBarrier可以在等待的线程被释放后被重用。 构造方法 CyclicBarrier(int parties) 创建一个新的屏障并设置将要访问这个…

问卷调查样本量的确定方法

我们在进行问卷调查的时候&#xff0c;问卷的收集数量是重要的流程之一。问卷数量取决于几个因素&#xff0c;包括研究的目的和研究的类型。接下来&#xff0c;我们就聊一聊怎么确定所需的调查问卷数量。 1、确定研究目标。 确定所需问卷数量的第一步是明确研究目标。这一步是…

jar包依赖冲突该怎么解决(IT枫斗者)

jar包依赖冲突该怎么解决&#xff08;IT枫斗者&#xff09; maven jar包依赖规则 间接依赖路径最短优先一个项目依赖了a和b两个jar包&#xff0c;其中a-b-c1.0&#xff0c;d-e-c1.0,由于c1.0路径最短&#xff0c;所以项目最后使用的jar包是c1.0pom文件中申明顺序优先有人就问…

使用三轴XYZ平台绘制空心字

1. 功能说明 本文示例将实现R312三轴XYZ平台绘制“机器时代”空心字的功能。 2. 电子硬件 在这个示例中&#xff0c;采用了以下硬件&#xff0c;请大家参考&#xff1a; 主控板 Basra主控板&#xff08;兼容Arduino Uno&#xff09; 扩展板 Bigfish2.1扩展板 SH-ST步进电机扩展…