0

在下拉列表框字段中选择值后,出现以下错误消息:

该字段的条目太长

(这是消息号00092

在此处输入图像描述

我创建了一个文本字段TXTOPENV作为具有键值的列表框,VRM_SET_VALUES在 PBO 部分中使用设置值。

这是屏幕画家的屏幕截图:

屏幕画家列表框属性

画面流程逻辑:

PROCESS BEFORE OUTPUT.
  MODULE status_0210.

ABAP代码:

DATA txtopenv TYPE c LENGTH 1.

MODULE status_0210 OUTPUT.
  SET PF-STATUS 'ST210'.
  SET TITLEBAR 'T210'.
  PERFORM GetVacancy.
ENDMODULE.

FORM GetVacancy.
  TYPES: BEGIN OF ty_vacancy,
           plans TYPE t528t-plans,
           plstx TYPE t528t-plstx,
         END OF ty_vacancy.
  DATA: wa_vacancy TYPE ty_vacancy.
  LOOP AT it_vacancyid INTO wa_vacancyid.
    SELECT plans plstx
      FROM t528t
      INTO wa_vacancy
      WHERE plans = wa_vacancyid-ty_objid.
    ENDSELECT.
    field_id = wa_vacancy-ty_plans.
    value = wa_vacancy-ty_plstx.
    APPEND value TO values.
    CLEAR wa_vacancy.
  ENDLOOP.

  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      id              = 'TXTOPENV'
      values          = values
    EXCEPTIONS
      id_illegal_name = 1
      OTHERS          = 2.
ENDFORM.
4

1 回答 1

1

“Entry is too long for the field”的错误与listbox字段没有具体关系,但所有类型的屏幕字段都可能出现,所以我先回答一般情况,然后解释你为什么会出错。

当屏幕字段定义的“定义长度”大于ABAP程序中为同名全局变量定义的长度时会发生错误(同名:名称必须相同,以便允许在屏幕和程序,来回),以及当输入值大于ABAP程序的长度时。

在您的情况下,列表框中所选值的键可能大于 1 个字符,这是全局变量的长度。

您的解决方案是将变量设置为 8 个字符:

DATA txtopenv TYPE t528t-plstx.

注意:

  • Interaction Design在具有可能值的列表框字段的屏幕截图中,仅显示文本,但您也可以通过 SAP GUI 设置> Visualization 1>显示键值Show keys within dropdown lists
于 2018-02-04T21:42:39.273 回答