在选择屏幕定义的时候,我们经常会运用NO INTERVALS,将字段改成单值,但是后面的选择框中还有多值输入。
具体的实现方式,是通过函数SELECT_OPTIONS_RESTRICT进行控制,具体代码如下:
*定义选择屏幕
SELECT-OPTIONS : s_matnr FOR marc-matnr NO INTERVALS,
s_werks FOR marc-werks.
INITIALIZATION.
* 限制MATNR参数只能使用‘EQ’ 和‘BT’.
optlist-name = 'OBJECTKEY1'.
optlist-options-eq = 'X'.
* optlist-options-bt = 'X'.
APPEND optlist TO restrict-opt_list_tab.
ass-kind = 'S'.
ass-name = 'S_MATNR'.
ass-sg_main = 'I'.
ass-sg_addy = space.
ass-op_main = 'OBJECTKEY1'.
APPEND ass TO restrict-ass_tab.
* 限制 WERKS 参数只能使用CP, GE, LT, NE.
optlist-name = 'OBJECTKEY2'.
optlist-options-cp = 'X'.
optlist-options-bt = 'X'.
optlist-options-ge = 'X'.
optlist-options-lt = 'X'.
optlist-options-ne = 'X'.
APPEND optlist TO restrict-opt_list_tab.
ass-kind = 'S'.
ass-name = 'S_WERKS'.
ass-sg_main = 'I'.
ass-sg_addy = space.
ass-op_main = 'OBJECTKEY2'.
APPEND ass TO restrict-ass_tab.
CALL FUNCTION 'SELECT_OPTIONS_RESTRIC

文章讲述了在ABAP编程中如何使用SELECT-OPTIONS和NOINTERVALS来定义屏幕参数,并通过调用函数SELECT_OPTIONS_RESTRICT限制MATNR参数只能使用EQ和BT,而WERKS参数可使用CP,GE,LT,NE操作符。
最低0.47元/天 解锁文章
3130

被折叠的 条评论
为什么被折叠?



