You are on page 1of 2

*** 进一步设置 SELECT-OPTIONS 屏蔽多选框等等

"使用都类型池
TYPE-POOLS sscr.
TABLES : sflight.

SELECT-OPTIONS : s_carrid FOR sflight-carrid NO INTERVALS,


s_connid FOR sflight-connid.
DATA: restrict TYPE sscr_restrict,
optlist TYPE sscr_opt_list,
ass TYPE sscr_ass.

INITIALIZATION.
本帖隐藏的内容

optlist-name = 'OBJECTKEY1'.
optlist-options-eq = 'X'. " 单值部分起作用
* optlist-options-bt = 'X'. "范围不起作用
APPEND optlist TO restrict-opt_list_tab.
ass-kind = 'S'. "A(ll), B(lock), S(elect-Option)三种类型可选择
ass-name = 'S_CARRID'. "选择屏幕中 SELET-OPTIONS 定义的对象名称
ass-sg_main = 'I'. " (only)I,
ass-sg_addy = space.
ass-op_main = 'OBJECTKEY1'.
APPEND ass TO restrict-ass_tab.

CLEAR optlist.
CLEAR ass.
optlist-name = 'OBJECTKEY2'.
optlist-options-cp = 'X'.
optlist-options-ge = 'X'.

APPEND optlist TO restrict-opt_list_tab.


ass-kind = 'S'.
ass-name = 'S_CONNID'.
ass-sg_main = 'I'.
ass-sg_addy = space.
ass-op_main = 'OBJECTKEY2'.
APPEND ass TO restrict-ass_tab.
***调用函数实现设置
本帖隐藏的内容

CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'


EXPORTING
program = sy-repid
restriction = 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.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

You might also like