Поле экрана может принимать значение, установленное с помощью `SET PARAMETER ID 'ZZZ' FIELD 'VALUE', только если:
- Поле имеет тип" вход / выход "(во время разработки и ввремя выполнения)
- Атрибут поля «идентификатор параметра» совпадает с идентификатором памяти SAP (ZZZ)
- Атрибут поля «Параметр GET» проверен
- В программе глобальныйпеременная, соответствующая имени поля экрана, является начальной (по крайней мере, в конце фазы «Процесс до вывода»)
Выдержка из ABAP документации : «При определении полей ввода dynproполя можно связать с параметрами SPA / GPA, введя имя параметра SPA / GPA из таблицы базы данных TPARA в качестве атрибута PARAMETER ID. Если соответствующий параметр GET PARAMETER установлен и никакое другое значение не назначено на входполе , поле ввода заполняется значением параметра SPA / GPA при отправке экрана. "
Демонстрация, значение, введенное в первом экране, появляетсяrs на втором экране и наоборот:
REPORT z.
TABLES sscrfields.
" Selection screen 1000 (implicit first one)
SELECTION-SCREEN COMMENT /1(40) text1000.
PARAMETERS p_start TYPE c LENGTH 10 LOWER CASE MEMORY ID zzzz.
" Selection screen 1001
SELECTION-SCREEN BEGIN OF SCREEN 1001.
SELECTION-SCREEN COMMENT /1(40) text1001.
PARAMETERS p_b1ab1a TYPE c LENGTH 10.
PARAMETERS p_end TYPE c LENGTH 10 LOWER CASE MEMORY ID zzzz.
PARAMETERS p_b2ab2a TYPE c LENGTH 10.
SELECTION-SCREEN END OF SCREEN 1001.
INITIALIZATION.
text1000 = 'Press Enter to go to next screen'(000).
text1001 = 'Press Enter to go to previous screen'(001).
AT SELECTION-SCREEN.
IF sscrfields-ucomm IS INITIAL.
CASE sy-dynnr.
WHEN 1000.
CLEAR p_end. " <== very important !
CALL SELECTION-SCREEN 1001.
WHEN 1001.
CLEAR p_start. " <== very important !
LEAVE TO SCREEN 0. " go to previous screen (don't use CALL
" SELECTION-SCREEN to avoid a stack of more than 50 dynpros)
ENDCASE.
ENDIF.