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

posted @   狂奔的蜗牛君丶  阅读(2605)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示