搜索帮助在SAP GUI中应用非常广泛,在上一篇<ABAP系列-数据字典(搜索帮助)>中,我们介绍了系统标准搜索帮助的创建和使用方法。实际工作中,我们还经常会遇到一些特别的搜索要求,需要在标准搜索帮助的基础上做增强开发。这一篇我们通过一个简单的例子来看看如何实现搜索帮助的增强。

先回顾下上一篇数据字典搜索帮助的内容。首先,创建一个系统标准搜索帮助ZEMPNO_ESH1。

创建完成后,赋值给相关对象,比如数据元素ZE_EMPNO。激活生效后,我们看到屏幕上实际的使用效果是这样的。

现在有个小需求,需要将姓氏和名字合成一个字段<姓名>,该如何实现?可以使用搜索字段的增强来完成。我们新建一个搜索帮助ZEMPNO_ESH2,在之前ZEMPNO_ESH1的基础上,稍作改造。

步骤1:调整输出参数,去掉FNAME, LNAME, 新增一个字段NAME1。

步骤2:指定搜索帮助增强,(增强又称作出口)。系统有一个样例Function <F4IF_SHLP_EXIT_EXAMPLE> 可供参考,可将样例拷贝至ZF4IF_SHLP_EXIT_EMPNO, 通过事务码SE37查看,会看到有个变量CALLCONTROL-STEP,这代表了搜索帮助处理过程中的各个事件,包括SELONE,PRESEL,SELECT,DISP等,每一个事件在程序中都有详细的备注说明。我们可以在DISP事件中添加一段代码:

  IF callcontrol-step = 'DISP'.
*   PERFORM AUTHORITY_CHECK TABLES RECORD_TAB SHLP_TAB
*                           CHANGING SHLP CALLCONTROL.DATA ls_record LIKE LINE OF record_tab.DATA lv_name TYPE string.LOOP AT record_tab INTO ls_record.lv_name = ls_record-string+9(10).CONDENSE lv_name.lv_name = | { ls_record-string+9(10) }{ ls_record-string+19(10) } |.CONDENSE lv_name.ls_record-string+74(10) = lv_name.MODIFY record_tab FROM ls_record.ENDLOOP.EXIT.ENDIF.

这段代码主要是用于合并姓氏和名字,合并后更新回结果列表 recode_tab, 如果初学的朋友们对这些代码感到陌生,没关系,可以先大概了解,后面熟悉语法后再回头来看。

创建完搜索帮助ZEMPNO_ESH2,将其赋给数据元素ZE_EMPNO。我们看看屏幕上实际使用的效果。

可以看到,姓氏和名字已经合并成姓名字段了。增强完成,是不是很简单呢,各位如果还有疑问,可以加入群讨论。

微信号:eckwise

sap abap开发从入门到精通_SAP开发-ABAP数据字典(搜索帮助增强)相关推荐

  1. sap abap开发从入门到精通_SAP开发-ABAP数据字典(锁)

    企业级软件或开发框架,必然支持后台高并发,即支持多人同时访问数据库.SAP作为资深企业管理软件,自然也不例外,ABAP可以很方便的开发出支持高并发的程序,要实现高并发,正确使用锁对象是其中一个重要环节 ...

  2. 【Thunder送书 | 第四期】「SAP ABAP开发从入门到精通」

    文章目录 前言 SAP系列丛书推荐 <SAP ABAP开发从入门到精通> 章节目录 送书福利 前言 Thunder送书第四期开始啦!这次活动联合机械工业出版社为大家继续带来福利,本期将赠送 ...

  3. 《Java 开发从入门到精通》—— 2.2 编写第一段Java程序

    本节书摘来异步社区<Java 开发从入门到精通>一书中的第2章,第2.2节,作者: 扶松柏 , 陈小玉,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2.2 编 ...

  4. 《Visual C++ 开发从入门到精通》——2.7 变量

    本节书摘来自异步社区出版社<Visual C++ 开发从入门到精通>一书中的第2章,第2.7节,作者: 王东华 , 李樱,更多章节内容可以访问云栖社区"异步社区"公众号 ...

  5. 《ASP.NET 开发从入门到精通》----2.3 编译和部署ASP.NET程序

    本节书摘来自异步社区<ASP.NET 开发从入门到精通>一书中的第2章,第2.3节,著 张明星 ,责任编辑 张 涛, 更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  6. 《51单片机应用开发从入门到精通》——2.2 跑马灯实例

    本节书摘来自异步社区<51单片机应用开发从入门到精通>一书中的第2章,第2.2节,作者 张华杰,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2.2 跑马灯实例 ...

  7. 《libGDX移动游戏开发从入门到精通》一第2章 libGDX的架构分析

    本节书摘来异步社区<libGDX移动游戏开发从入门到精通>一书中的第2章,第2.1节,作者: 黄俊东 责编: 陈冀康,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  8. 《C++ 开发从入门到精通》——第2章 C++的重要特质分析2.1 什么是面向对象(object-oriented)...

    本节书摘来自异步社区出版社<C++ 开发从入门到精通>一书中的第2章,第2.1节,作者: 王石磊 , 韩海玲,更多章节内容可以访问云栖社区"异步社区"公众号查看. 第2 ...

  9. pythonweb开发-Python Web开发从入门到精通

    Python Web开发从入门到精通循序渐进地讲解了Python Web开发的核心知识,并通过具体实例的实现过程演示了Web开发程序的流程.Python Web开发从入门到精通共15章,内容包括Pyt ...

  10. 《Visual C++ 开发从入门到精通》——1.4 技术解惑

    本节书摘来自异步社区出版社<Visual C++ 开发从入门到精通>一书中的第1章,第1.4节,作者: 王东华 , 李樱,更多章节内容可以访问云栖社区"异步社区"公众号 ...

最新文章

  1. 三十五、字符串匹配问题--KMP算法
  2. 如何让UTF-8能对文档XML编辑
  3. Android 利用url获取Bitmap图片
  4. 关于Django中JsonResponse返回中文字典编码错误的解决方案
  5. 论文浅尝 | 知识图谱的单样本关系学习
  6. C#中使用SqlBulk百万级数据秒级插入
  7. linuc和python常用命令是一样的么_linuc和python常用命令是一样的么_python教程3--《linux常用命令》...
  8. 如何使用html如何安装,node.js – 如何使用全球安装的grunt-html?
  9. maven 阿里云仓库
  10. c语言+游戏破解,c语言获得键盘的按键
  11. VBA 函数 过程之间互相调用的技巧
  12. 计算机相关英语词汇ppt,计算机专业英语词汇新.ppt
  13. 一般描绘性形容词_描绘性形容词和限制性形容词
  14. window8系统激活工具
  15. Lagrange’s Mean Value Theorem - 拉格朗日中值定理
  16. 英语六级试卷软件测试,大学英语六级考试预测试卷以及答案
  17. LC振荡电路以及考虑寄生参数时MOS管开通关断分析
  18. BZOJ 2140 稳定婚姻题解
  19. 圆转随意运鸿蒙,解析陈式太极拳的螺旋缠丝劲——陈式太极拳
  20. SCYC55830 58063282A可控硅触发电路

热门文章

  1. 灰色系统预测matlab代码,灰色预测MATLAB代码
  2. PBRT 阅读 第一章
  3. 迅雷下载宝刷入padavan固件
  4. 两块stm32仿真protues串口通信程序
  5. oracle 11.2.0.3.0 client下载,oracle64位客户端 Instant Client
  6. protel 99se 简单的手动画pcb
  7. wav音频文件格式解析【个人笔记】(自用)
  8. spring boot 2.1.4 hibernate 二级缓存 Caffeine实现
  9. MySQL存储过程实例
  10. 制作WIN7、WINPE2003、Ubuntu、dos工具箱多启动U盘