|
zhoufeng1982 发表于 2012-6-18 17:41 ![]()
追问:为什么这个FM不能实现只有“红色的”。
我感觉 EQ和NE这两个TAB通过这个函数能同时显示吗?
同事解决了这个问题,原来有个参数需要设置一下:
按照下面的代码就可以实现了。
TYPE-POOLS sscr.
TABLES MARA.
SELECT-OPTIONS S_MATNR FOR MARA-MATNR.
INITIALIZATION.
PERFORM SELECT_OPTION.
FORM SELECT_OPTION.
DATA:
LW_SSCR_RESTRICT TYPE SSCR_RESTRICT,
LW_SSCR_OPT_LIST TYPE SSCR_OPT_LIST,
LW_RSOPTIONS TYPE RSOPTIONS,
LW_SSCR_ASS_TAB TYPE SSCR_ASS.
*
LW_SSCR_OPT_LIST-NAME ='OBJECTKEY'.
LW_RSOPTIONS-EQ = 'X'.
LW_RSOPTIONS-NE = 'X'.
LW_SSCR_OPT_LIST-OPTIONS = LW_RSOPTIONS.
APPEND LW_SSCR_OPT_LIST TO LW_SSCR_RESTRICT-OPT_LIST_TAB.
*
LW_SSCR_ASS_TAB-KIND = 'S'.
LW_SSCR_ASS_TAB-NAME = 'S_MATNR'.
* LW_SSCR_ASS_TAB-SG_MAIN = 'I' .
LW_SSCR_ASS_TAB-SG_MAIN = '*' .
*关键就在这个项目,参照sap提供的可设定值,只有I和E,但是没想到还能设定为“*”。
LW_SSCR_ASS_TAB-OP_MAIN = 'OBJECTKEY'.
APPEND LW_SSCR_ASS_TAB TO LW_SSCR_RESTRICT-ASS_TAB.
*
CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
EXPORTING
PROGRAM = SY-CPROG
RESTRICTION = LW_SSCR_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.
|
|