ABAP 搜索帮助在数据库的列中具有值的字段

问题描述

我想创建一个带有输入字段的 SAP 屏幕,该屏幕将提供特定列中所有值的搜索帮助。

我有一个包含这些列的表格:

  • {主键列} PersonID (NUMC)
  • Person Forename (CHAR40)
  • Person Surname (CHAR40)

我想创建一个带有输入字段的屏幕,该输入字段将为我提供所有 PersonID 值的搜索帮助。

我的尝试:在 Screen Painter 中通过字典/程序字段窗口我尝试插入一个 PersonID 字段,但在按 F4 后它没有为我提供任何输入建议。

有没有可能创造出我想要的东西?

提前致谢。

解决方法

假设您确实需要从数据库中读取它,因此代码可能是这样的:

p_userid -> DYNPRO 中的 PersonID 名称

在屏幕流逻辑中:

PROCESS ON VALUE-REQUEST.
  FIELD p_userid MODULE f4_userid.

在 f4_userid 模块中:

SELECT PersonID FROM your_table INTO TABLE @DATA(lt_person_id). "If your abap 7.40 and up

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
  EXPORTING
    retfield        = 'PERSONID'
    dynpprog        = sy-cprog
    dynpnr          = sy-dynnr
    dynprofield     = P_USERID
    value_org       = 'S'
  TABLES
    value_tab       = lt_person_id
  EXCEPTIONS
    parameter_error = 1
    no_values_found = 2
    OTHERS          = 3.

但正如其他人所说,也许您需要创建域,将值放入其中,然后不需要编码。