如何设置默认值和读取下拉列表框的选定值

问题描述 投票:0回答:2

因此,我通过Screen Painter(SE51)添加了一个下拉列表类型为Listbox的字段。

我已使用PBO和VRM_SET_VALUES函数将数据绑定到下拉列表。

enter image description here

我对此有2个问题;

  1. 如何为绑定数据设置选定的值?
  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是附带的文本。

sap abap
2个回答
0
投票

更新:

根据您的代码,屏幕上的字段应为:ZZ_DELAY_REASON并且您还需要名称的全局变体。

然后您可以在PBO / PAI中设置/获取键值:设定值:ZZ_DELAY_REASON ='KEY'。

获取所选值(键):lv_key = ZZ_DELAY_REASON

================================================ ======

[当选择列表由VRM_SET_VALUES设置时,您可能会注意到它是一个“键值”对。当用户选择下拉框时,“ KEY”字段将填充到屏幕字段值中。

如果您在此问题中附加代码,我会提供详细的信息。


0
投票

首先,要实现功能下拉列表,必须满足几个先决条件:

  1. 您的项目表应具有类型vrm_values
  2. 列表中显示的值应在项目行的字段text中。密钥应在字段key中。
  3. 参数应该具有LISTBOX类型。

完成所有操作后,您的问题的答案将是:

  1. 键值之间的关系通过vrm_values类型完成。此类型的每一行都是一个下拉项目,其中text是可见的文本,key是键。
  2. [用户在列表框中选择项目后,参数会自动获取键值。

这里是示例代码:

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.
© www.soinside.com 2019 - 2024. All rights reserved.