屏幕选择 Layout
" 选择屏幕参数 "
PARAMETERS: p_disva TYPE slis_vari MEMORY ID zvari.
" 屏幕事件定义 "
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_disva.
PERFORM variant_search CHANGING p_disva.
" Search Help "
Function 方法
FORM variant_search CHANGING cv_variant.
DATA: zlv_f4_exit TYPE c,
zls_variant TYPE disvariant.
CLEAR:zls_variant.
zls_variant-report = syst-repid.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = zls_variant
i_save = 'A'
IMPORTING
e_exit = zlv_f4_exit
es_variant = zls_variant
EXCEPTIONS
not_found = 1
program_error = 2
OTHERS = 3.
IF syst-subrc EQ 0 AND zlv_f4_exit IS INITIAL.
cv_variant = zls_variant-variant.
ENDIF.
ENDFORM. " VARIANT_SEARCH
Class 方法
FORM variant_search CHANGING cv_variant.
DATA: ls_layout_key TYPE salv_s_layout_key,
ls_layout_info TYPE salv_s_layout_info.
ls_layout_key-report = sy-repid.
ls_layout_info = cl_salv_layout_service=>f4_layouts( ls_layout_key ).
cv_variant = ls_layout_info-layout.
ENDFORM.