TYPES: BEGIN OF SSCR_RESTRICT,
OPT_LIST_TAB TYPE SSCR_OPT_LIST_TAB,
ASS_TAB TYPE SSCR_ASS_TAB,
END OF SSCR_RESTRICT.
* One list of options
TYPES: BEGIN OF SSCR_OPT_LIST,
NAME LIKE RSRESTRICT-OPTIONLIST,
OPTIONS LIKE RSOPTIONS,
END OF SSCR_OPT_LIST.
* List of option lists
TYPES: SSCR_OPT_LIST_TAB TYPE SSCR_OPT_LIST OCCURS 5.
* One line of table associating selection screen object with opt. list
TYPES: BEGIN OF SSCR_ASS,
KIND LIKE RSSCR-KIND, " A(ll), B(lock), S(elect-Option)
NAME LIKE RSRESTRICT-OBJECTNAME, " Blockname, maximal 20
SG_MAIN LIKE RSRESTRICT-SIGN, " (only) I, SPACE = both
SG_ADDY LIKE RSRESTRICT-SIGN, " additional SIGN
" on multiple selection screen
OP_MAIN LIKE RSRESTRICT-OPTIONLIST, " name of option list for
" main selection screen
OP_ADDY LIKE RSRESTRICT-OPTIONLIST, " name of additional option
" list for multiple selection screen
END OF SSCR_ASS.
* The association table
TYPES: SSCR_ASS_TAB TYPE SSCR_ASS OCCURS 20.
*工作区ls_restrict 赋值
DATA(ls_options) = CORRESPONDING rsoptions( is_options ).
IF ls_options IS INITIAL.
ls_options-eq = 'X'.
ENDIF.
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' )
)
).