根据先前列表框(模块池)中的选择填充列表框
ListBox to be filled based on the selection in the previous List Box (Module-pool)
我有一个 DYNPRO 010,它有 2 个列表框(下拉列表),我想在选择第一个 PROJ
后自动填充第二个 PEP
,无需按下回车键。
当我在 listbox1 中选择一个值并按下 enter 时,它起作用了。
屏幕 010:
PROCESS AFTER INPUT.
Chain.
field:
wa_screen_010-proj MODULE iniciativa ON REQUEST,
wa_screen_010-pep MODULE field_validation.
Endchain.
模块 iniciativa
的 ABAP 代码:
MODULE iniciativa INPUT.
DATA: ld_field TYPE VRM_ID ,
it_listbox TYPE VRM_VALUES,
wa_listbox LIKE LINE OF it_listbox,
it_prps TYPE STANDARD TABLE OF prps,
wa_prps LIKE LINE OF it_prps.
SELECT peps~pspnr peps~posid peps~post1 peps~stufe
INTO CORRESPONDING FIELDS OF TABLE it_prps
FROM proj AS proyecto
LEFT JOIN prps AS peps
ON proyecto~pspnr = peps~psphi
WHERE proyecto~pspid = WA_SCREEN_010-PROJ .
DELETE it_prps where stufe ne 2.
loop at it_prps into wa_prps.
wa_listbox-key = wa_prps-posid .
wa_listbox-text = wa_prps-posid.
append wa_listbox to it_listbox.
endloop.
ld_field = 'WA_SCREEN_010-INICIATIVA'.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = ld_field
values = it_listbox.
您必须通过为第一个列表框分配功能代码来激活它。这会触发 PAI-PBO 循环。确保功能代码不会触发任何不需要的功能。
我有一个 DYNPRO 010,它有 2 个列表框(下拉列表),我想在选择第一个 PROJ
后自动填充第二个 PEP
,无需按下回车键。
当我在 listbox1 中选择一个值并按下 enter 时,它起作用了。
屏幕 010:
PROCESS AFTER INPUT.
Chain.
field:
wa_screen_010-proj MODULE iniciativa ON REQUEST,
wa_screen_010-pep MODULE field_validation.
Endchain.
模块 iniciativa
的 ABAP 代码:
MODULE iniciativa INPUT.
DATA: ld_field TYPE VRM_ID ,
it_listbox TYPE VRM_VALUES,
wa_listbox LIKE LINE OF it_listbox,
it_prps TYPE STANDARD TABLE OF prps,
wa_prps LIKE LINE OF it_prps.
SELECT peps~pspnr peps~posid peps~post1 peps~stufe
INTO CORRESPONDING FIELDS OF TABLE it_prps
FROM proj AS proyecto
LEFT JOIN prps AS peps
ON proyecto~pspnr = peps~psphi
WHERE proyecto~pspid = WA_SCREEN_010-PROJ .
DELETE it_prps where stufe ne 2.
loop at it_prps into wa_prps.
wa_listbox-key = wa_prps-posid .
wa_listbox-text = wa_prps-posid.
append wa_listbox to it_listbox.
endloop.
ld_field = 'WA_SCREEN_010-INICIATIVA'.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = ld_field
values = it_listbox.
您必须通过为第一个列表框分配功能代码来激活它。这会触发 PAI-PBO 循环。确保功能代码不会触发任何不需要的功能。