0

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

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

在此处输入图像描述

我有两个问题;

  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是随附文本

4

2 回答 2

0

更新:

根据您的代码,屏幕上的字段应该是: ZZ_DELAY_REASON 并且您还需要一个带有名称的全局变量。

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

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

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

When select list is set by VRM_SET_VALUES, you may notice it is a "Key-Value" pair. 当用户选择下拉框时,字段“KEY”被填充到屏幕字段值中。

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

于 2017-06-12T05:47:32.617 回答
0

首先,需要满足几个先决条件才能制作功能性下拉菜单:

  1. 你的项目表应该有类型vrm_values
  2. 列表中显示的值应位于text项目行的字段中。键应该在字段中key
  3. PARAMETER 应该有类型LISTBOX

完成所有这些之后,您的问题的答案将是:

  1. KEY-VALUE 的关系是通过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.
于 2017-06-15T08:21:38.013 回答