ABAP 选择屏幕搜索帮助

引用系统已有表的搜索帮助

F4IF_FIELD_VALUE_REQUEST

*======================================================================*
*                      Input Selection Screen
*======================================================================*
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME.
  PARAMETERS: p_zdjlx TYPE char2.  "单据类型
SELECTION-SCREEN END OF BLOCK blk1.

*======================================================================*
*                  At Selection-Screen On Value-Request
*======================================================================*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_zdjlx.  "搜索帮助 单据类型
  PERFORM frm_f4_p_zdjlx.  "单据类型 取值



FORM frm_f4_p_zdjlx.  "单据类型 取值

  DATA: lt_return_tab TYPE STANDARD TABLE OF ddshretval.

  CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'  "将表里的字段对应的search help引入到屏幕上
    EXPORTING
      tabname           = 'ZTMM001'  "数据库表名
      fieldname         = 'ZDOCUTYPE'  "表中的字段名
      dynpprog          = sy-repid  "使用的程序名
      dynpnr            = sy-dynnr  "使用的屏幕名
      dynprofield       = 'P_ZDJLX'  "返回字段参数
*    TABLES
*     return_tab        = lt_return_tab  "选择行的数据内表
    EXCEPTIONS
      field_not_found   = 1
      no_help_for_field = 2
      inconsistent_help = 3
      no_values_found   = 4
      OTHERS            = 5.
  IF sy-subrc NE 0.
* Implement suitable error handling here
  ENDIF.

ENDFORM.

实现效果如下
在这里插入图片描述

自定义搜索帮助

F4IF_INT_TABLE_VALUE_REQUEST

*======================================================================*
*                      Input Selection Screen
*======================================================================*
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME.
  PARAMETERS: p_zdjlx TYPE char2.  "单据类型
SELECTION-SCREEN END OF BLOCK blk1.

*======================================================================*
*                  At Selection-Screen On Value-Request
*======================================================================*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_zdjlx.  "搜索帮助 单据类型
  PERFORM frm_f4_p_zdjlx.  "单据类型 取值



FORM frm_f4_p_zdjlx.  "单据类型 取值

  DATA: lt_dd07v_tab TYPE STANDARD TABLE OF dd07v.

  CALL FUNCTION 'DD_DOMVALUES_GET'  "获取域的值
    EXPORTING
      domname        = 'ZDDOCUMENT_TYPE'  "域的字段名
      text           = 'X'  "获取文本标识 空 不获取  X 获取
    TABLES
      dd07v_tab      = lt_dd07v_tab  "返回域值的内表
    EXCEPTIONS
      wrong_textflag = 1
      OTHERS         = 2.
  IF sy-subrc NE 0.
* Implement suitable error handling here
  ENDIF.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'  "根据输入内表给出搜索帮助
    EXPORTING
      retfield         = 'DOMVALUE_L'  "内表里的主键 用来返回值
      dynpprog         = sy-repid  "使用的程序名
      dynpnr           = sy-dynnr  "使用的屏幕名
      dynprofield      = 'P_ZDJLX'  "选择屏幕的字段
      value_org        = 'S'  "S 结构 默认是这个
    TABLES
      value_tab        = lt_dd07v_tab  "搜索帮助值的内表
    EXCEPTIONS
      parameter_error  = 1
      no_values_found  = 2
      OTHERS           = 3.
  IF sy-subrc NE 0.
* Implement suitable error handling here
  ENDIF.

ENDFORM.

实现效果如下
在这里插入图片描述
如果不想用这个域值的内表,可以自定义个内表,只放主键的值和描述文本即可。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ABAP中的自定义屏幕搜索帮助可以从字典中获得。 在ABAP中,字典是一个用于管理和维护数据库对象的中心存储库。字典是一种集成的数据结构,可以用于存储表、视图、数据元素、域和其他数据库对象的定义。 要创建自定义屏幕搜索帮助,我们首先需要在字典中创建一个数据元素。数据元素定义了一个可重用的数据类型,可以用于在屏幕对话框中输入、输出和处理数据。在创建数据元素时,我们需要指定其数据类型、长度和其他属性。 接下来,在字典中创建一个域。域是数据元素的基本单位,它定义了一个数据元素的具体值范围、输入帮助和默认值等。在域定义中,我们可以指定一个搜索帮助,该搜索帮助将在屏幕对话框中提供数据输入帮助。 创建菜单路径:工具->ABAP字典,在打开的字典事务中,选择创建和编辑数据元素(SE11)。在创建数据元素时,我们可以指定数据类型(如CHAR、STRING、NUMC等)、长度、小数点位数和其他属性。 创建数据元素后,我们可以选择创建和编辑域(SE11)。在域定义中,我们可以指定值范围、输入帮助和默认值等。在输入帮助选项中,我们可以选择一个搜索帮助程序,该程序将在屏幕对话框中提供数据输入帮助。 通过将搜索帮助与数据元素和域相结合,我们可以在ABAP屏幕对话框中实现自定义屏幕搜索帮助。当用户在屏幕上输入数据时,他们可以通过搜索帮助选择合适的值,并将其自动填充到相关字段中。 总之,ABAP中的自定义屏幕搜索帮助可以通过在字典中创建数据元素和域来实现。通过指定搜索帮助程序,我们可以在屏幕对话框中为用户提供数据输入帮助,并提高数据输入的准确性和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值