因此,我通过Screen Painter(SE51)添加了一个下拉列表类型为Listbox的字段。
我已使用PBO和VRM_SET_VALUES函数将数据绑定到下拉列表。
我对此有2个问题;
使用以下代码将数据绑定到下拉列表;
LOOP AT it_zzdelay_text INTO wa_zzdelay_text.
wa_listbox-key = wa_zzdelay_text-zz_delay_reason.
wa_listbox-text = wa_zzdelay_text-zz_delay_reason_text.
APPEND wa_listbox TO it_listbox.
ENDLOOP.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = 'ZZ_DELAY_REASON'
values = it_listbox.
zz_delay_reason是唯一键,而zz_delay_reason_text是附带的文本。
更新:
根据您的代码,屏幕上的字段应为:ZZ_DELAY_REASON并且您还需要名称的全局变体。
然后您可以在PBO / PAI中设置/获取键值:设定值:ZZ_DELAY_REASON ='KEY'。
获取所选值(键):lv_key = ZZ_DELAY_REASON
================================================ ======
[当选择列表由VRM_SET_VALUES设置时,您可能会注意到它是一个“键值”对。当用户选择下拉框时,“ KEY”字段将填充到屏幕字段值中。
如果您在此问题中附加代码,我会提供详细的信息。
首先,要实现功能下拉列表,必须满足几个先决条件:
vrm_values
text
中。密钥应在字段key
中。LISTBOX
类型。完成所有操作后,您的问题的答案将是:
vrm_values
类型完成。此类型的每一行都是一个下拉项目,其中text
是可见的文本,key
是键。这里是示例代码:
REPORT drop-down.
TYPE-POOLS: vrm.
PARAMETERS p_werks LIKE t001w-werks VISIBLE LENGTH 20 AS LISTBOX OBLIGATORY.
DATA: t_werks TYPE vrm_values,
w_line LIKE LINE OF t_werks.
INITIALIZATION.
SELECT werks name1
FROM t001w INTO (w_line-key, w_line-text).
APPEND w_line TO t_werks.
ENDSELECT.
AT SELECTION-SCREEN OUTPUT.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = 'P_WERKS'
values = t_werks.
END-OF-SELECTION.
WRITE: / 'Selected factory:', p_werks.