限制SELECT OPTION 选择值方式(屏幕事件 INITIALIZATION 中使用)

FUNCTION zs4_select_options_restrict.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     REFERENCE(IV_NAME) TYPE  RSRESTRICT-OBJECTNAME OPTIONAL
*"     REFERENCE(IS_OPTIONS) TYPE  RSOPTIONS OPTIONAL
*"----------------------------------------------------------------------

  CHECK iv_name NE space.

  DATA(ls_options) = CORRESPONDING rsoptions( is_options ).

  IF ls_options IS INITIAL.
    ls_options-eq = 'X'.
  ENDIF.

  "VALUE rsoptions( bt = '' eq = 'X' )

  DATA(ls_restrict) = VALUE sscr_restrict(
      opt_list_tab = VALUE sscr_opt_list_tab(
        ( name    = 'OPT_LIST'
          options = VALUE rsoptions( bt = ls_options-bt
                                     cp = ls_options-cp
                                     eq = ls_options-eq
                                     ge = ls_options-ge
                                     gt = ls_options-gt
                                     le = ls_options-le
                                     lt = ls_options-lt
                                     nb = ls_options-nb
                                     ne = ls_options-ne
                                     np = ls_options-np ) )
      )
      ass_tab      = VALUE sscr_ass_tab(
        ( kind = 'S' name = iv_name sg_main = 'I' op_main = 'OPT_LIST' )
      )
  ).


  CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
    EXPORTING
      restriction            = ls_restrict
    EXCEPTIONS
      too_late               = 1
      repeated               = 2
      selopt_without_options = 3
      selopt_without_signs   = 4
      invalid_sign           = 5
      empty_option_list      = 6
      invalid_kind           = 7
      repeated_kind_a        = 8
      OTHERS                 = 9.

ENDFUNCTION.

屏幕事件 INITIALIZATION 中使用

实现效果如下:

限制SELECT OPTION 选择值方式(屏幕事件 INITIALIZATION 中使用)