ABAP 如何在选择屏幕上和表维护生成器上为字段添加搜索帮助(f4)
https://www.cnblogs.com/wh-cnblogs/p/16774376.html
(一)在选择屏幕上增加搜索帮助
1.如果SE11数据字典中,如果有可用的就简单了,直接在选择屏幕加MATCHCODE OBJECT +(搜索帮助) 就行了
2.如果SE11数据字典中,没有可用的现成的搜索帮助,可以在域里加上搜索帮助
注意加在域里的效果是小放大镜
3.如果SE11数据字典中,没有可用的现成的搜索帮助,域也不能加,就用下面的方法在选择屏幕后面加搜索帮助
方法:
*INITIALIZATION 上面写定义,AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_USNAM(选择屏幕参数)-low(high).
在写调用,可以把调用方法 F4IF_INT_TABLE_VALUE_REQUEST包在一个PERFORM里,这样看起来好看
*INITIALIZATION 下面写sql查询弹窗的数据,可以把sql包在一个PERFORM里,这样看起来好看
如图:
0.
1.
2.
3.被调用的form (如果sql未查到值,不会出现弹出窗,左下角自动提示)
补充:F4IF_INT_TABLE_VALUE_REQUEST
调用函数 F4IF_INT_TABLE_VALUE_REQUEST的用法
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
* DDIC_STRUCTURE = ' '
RETFIELD = 'USNAM' "这个参数为帮助表中返回到选择屏幕的字段
* PVALKEY = ' '
DYNPPROG = SY-REPID "当前程序,不写会有问题
DYNPNR = SY-DYNNR "当前屏幕,不写会有问题
DYNPROFIELD = 'S_USNAME-LOW' "选择屏幕上需要加F4帮助的字段
* STEPL = 0
* WINDOW_TITLE =
* VALUE = ' '
VALUE_ORG = 'S' "默认为C但是此处不用S不行
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* CALLBACK_METHOD =
* MARK_TAB =
* IMPORTING
* USER_RESET =
TABLES
VALUE_TAB = GT_USNAMEHELP "F4帮助值的表
* FIELD_TAB =
* RETURN_TAB =
* DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
注意用方法的实际效果是小正方形
(二)在表维护生成器增加搜索帮助
效果:
方法:
步骤一:SE11->表->菜单->实用程序->表格维护生成器
双击概述屏幕 的屏幕号,进入屏幕逻辑流,增加代码如下
"增加f4
PROCESS ON VALUE-REQUEST.
FIELD ZZE_WT-FILGHT_NO MODULE fr_add_no_f4."ZZE_WT-FILGHT_NO是要加搜索帮助的字段
步骤二:sm30进入维护表/视图,输入名称,到维护数据界面
系统-状态-进入屏幕程序,增加include如下:注意命名z开头.
双击创建include,增加代码如下
详细代码:
*&---------------------------------------------------------------------* *& 包含 ZIZ_ADD_F4*如果要多字段搜索帮助,在屏幕流加多个FIELD xxx,在这里增加多个MODULE即可,可以一个字段一个MODULE,一个FIELD xxx*如果搜索帮助弹框字段是F000几,多字段会递增,说明是翻译问题,为翻译自动替换F000几 *&---------------------------------------------------------------------* MODULE fr_add_no_f4 input. TYPES: BEGIN OF tys_w, FILGHT_NO TYPE ZZE_WT-FILGHT_NO, END OF tys_w.*gt_out有几个字段,搜索帮助就显示几个字段,可定义或者参考 DATA: gt_out TYPE TABLE OF ZZE_WT, gs_out TYPE ZZE_WT."查询加入数据,此例子手动append * SELECT CONNID FROM ZAH_VIEW INTO CORRESPONDING FIELDS OF TABLE gt_out. * SORT gt_out BY CONNID. * DELETE ADJACENT DUPLICATES FROM gt_out COMPARING CONNID. gs_out-filght_no = '111111111111'. APPEND gs_out TO gt_out. CLEAR gs_out. gs_out-filght_no = '222222222222'. APPEND gs_out TO gt_out. CLEAR gs_out. gs_out-filght_no = '333333333333'. APPEND gs_out TO gt_out. CLEAR gs_out. SORT gt_out BY filght_no. DELETE ADJACENT DUPLICATES FROM gt_out COMPARING filght_no. CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING RETFIELD = 'FILGHT_NO' "返回字段名(通过sql查询出的字段名) DYNPPROG = SY-REPID "当前程序 DYNPNR = SY-DYNNR "Dynpro编号 DYNPROFIELD = 'FILGHT_NO' "Dynpro值返回字段的名称(带搜索帮助的字段名) VALUE_ORG = 'S' "价值转移:C:逐个单元格,S:结构化 TABLES VALUE_TAB = gt_out "查询表 EXCEPTIONS PARAMETER_ERROR = 1 NO_VALUES_FOUND = 2 OTHERS = 3. ENDMODULE.
备注.如果搜索帮助弹框字段是F000几,多字段会递增,说明是翻译问题,为翻译自动替换F000几
USR21 :用户表
T002:语言表
以上就是在选择屏幕添加搜索帮助的方法,如果想在ooalv加搜索帮助可以查看https://blog.csdn.net/Qunending/article/details/115465979?spm=1001.2014.3001.5501
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏