Code:
PARAMETER gp_objid LIKE obj-objid OBLIGATORY.
SELECTION-SCREEN:
COMMENT 48(75) c_stext.
INITIALIZATION.
gp_date1 = gp_date1 - 7.
PERFORM hr_ru_get_objlongname
USING
gp_objid
'O'
gpplvar1
gp_date1
gp_date1
CHANGING
c_stext.
При отработке отчета и повторном выводе селекшен скрина, хотелось бы чтобы коммент показывал текст к тому значению объекта что было задано при предыдущем запуске, и стоит сейчас в поле gp_objid.
Проблема.Хотя gp_objid и заполнено на экране, на самом деле оно пустое(!) и вызов
Code:
PERFORM hr_ru_get_objlongname
USING
gp_objid
'O'
gpplvar1
gp_date1
gp_date1
CHANGING
c_stext.
приводит лишь к очистке коммента на экране.
gp_objid очищается по событию INITIALIZATION , о чем честно и предупреждается в документации
Цитата:
When an executable program defines a standard selection screen, it is called again by the ABAP runtime environment after execution, which triggers the INITIALIZATION event again. In this case, initializing parameters or selection criteria of the selection screen has no effect, because they are automatically supplied with the preceding user inputs from the selection screen during the selection screen event AT SELECTION-SCREEN OUTPUT. To explicitly initialize the selection screen for each call, you must use the event AT SELECTION-SCREEN OUTPUT.
Ура - ура!
Пока писал вопрос, нашел решение (оно в выделенной фразе того же хелпа.), в коде выглядит так:
Code:
AT SELECTION-SCREEN OUTPUT.
PERFORM hr_ru_get_objlongname
USING
gp_objid
'O'
gpplvar1
gp_date1
gp_date1
CHANGING
c_stext.
Надеюсь, кому-нибудь поможет. =)