userID написал(а):
Цитата:
Приведите код целиком - что не работатет?
Логика выполнения экрана должна быть следующая: при запуске на экране отображаются только три поля (mblnr,mjahr,ps_parm). Далеее при выборе определенного пункта из списка (ps_parm = 4) - должно появляться поле lifnr. и соответственно при смене (ps_parm <> 4) это поле должно исчезать. а у меня оно всегда вивит на экране независимо от моих действий.
...
Очень и очень странно. Не удивился если бы поле не появлялось на экране, а вот то что всегда висит???
У меня всё работает по вашему алгоритму:
Code:
type-pools: VRM.
data: NAME type VRM_ID,
LIST type VRM_VALUES,
VALUE like line of LIST.
selection-screen begin of block B1 with frame title TEXT-001.
parameters: MBLNR type MSEG-MBLNR, "НОМЕР ДОКУМЕНТА МАТЕРИАЛА
MJAHR type MSEG-MJAHR, "ГОД ДОКУМЕНТА МАТЕРИАЛА
PS_PARM as listbox visible length 20 user-command ZCC01 obligatory.
selection-screen end of block B1.
selection-screen begin of block B2 with frame title TEXT-002.
parameters: LIFNR type LFA1-LIFNR modif id BL2.
selection-screen end of block B2.
at selection-screen.
case SY-UCOMM.
when 'ZCC01'. "СОБЫТИЯ ПРИ ИЗМЕНЕНИИ ps_parm
endcase.
at selection-screen output.
loop at screen.
if PS_PARM <> '4' and SCREEN-GROUP1 = 'BL2'.
SCREEN-ACTIVE = '0'.
endif.
modify screen.
endloop.
clear: VALUE-KEY, VALUE-TEXT, LIST.
NAME = 'ps_parm'.
VALUE-KEY = '1'.
VALUE-TEXT = 'Пункт1'.
append VALUE to LIST.
VALUE-KEY = '2'.
VALUE-TEXT = 'Пункт2'.
append VALUE to LIST.
VALUE-KEY = '3'.
VALUE-TEXT = 'Пункт3'.
append VALUE to LIST.
VALUE-KEY = '4'.
VALUE-TEXT = 'Пункт4'.
append VALUE to LIST.
VALUE-KEY = '5'.
VALUE-TEXT = 'Пункт5'.
append VALUE to LIST.
call function 'VRM_SET_VALUES'
exporting
ID = NAME
VALUES = LIST.
start-of-selection.
write PS_PARM to PS_PARM.