列表框错误 "Entry is too long for the field"
Listbox error "Entry is too long for the field"
在下拉列表框字段中选择一个值后,出现此错误消息:
Entry is too long for the field
(是留言号00092
)
我创建了一个文本字段 TXTOPENV
作为具有键值的列表框,在 PBO 部分使用 VRM_SET_VALUES
设置值。
这里是screen painter的截图:
屏幕流逻辑:
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.
错误"Entry is too long for the field"与列表框字段没有具体关系,但可能会出现在所有类型的屏幕字段中,所以我先回答一般情况,然后再解释你错的原因。
当屏幕字段定义的 "definition length" 大于为 ABAP 程序中的 eponym 全局变量定义的长度(eponym:名称必须是同样,当输入值大于 ABAP 程序的长度时,允许在屏幕和程序之间来回传输值)、和。
在您的情况下,列表框中所选值的键可能大于 1 个字符,这是全局变量的长度。
您的解决方案是将变量设置为 8 个字符:
DATA txtopenv TYPE t528t-plstx.
注意:
- 在包含可能值的列表框字段的屏幕截图中,仅显示文本,但您也可以通过 SAP GUI 设置显示键值
Interaction Design
> Visualization 1
> Show keys within dropdown lists
.
在下拉列表框字段中选择一个值后,出现此错误消息:
Entry is too long for the field
(是留言号00092
)
我创建了一个文本字段 TXTOPENV
作为具有键值的列表框,在 PBO 部分使用 VRM_SET_VALUES
设置值。
这里是screen painter的截图:
屏幕流逻辑:
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.
错误"Entry is too long for the field"与列表框字段没有具体关系,但可能会出现在所有类型的屏幕字段中,所以我先回答一般情况,然后再解释你错的原因。
当屏幕字段定义的 "definition length" 大于为 ABAP 程序中的 eponym 全局变量定义的长度(eponym:名称必须是同样,当输入值大于 ABAP 程序的长度时,允许在屏幕和程序之间来回传输值)、和。
在您的情况下,列表框中所选值的键可能大于 1 个字符,这是全局变量的长度。
您的解决方案是将变量设置为 8 个字符:
DATA txtopenv TYPE t528t-plstx.
注意:
- 在包含可能值的列表框字段的屏幕截图中,仅显示文本,但您也可以通过 SAP GUI 设置显示键值
Interaction Design
>Visualization 1
>Show keys within dropdown lists
.