12.4.
SELECT-OPTIONS
.
89
12.4.1.
输入
ABAP
程序默认值时,需要加上“
=”
.
89
12.4.2.
选择条件内表多条件组合规则
...
89
12.4.3.
使用
SELECT-OPTIONS
替代
PARAMETERS
.
90
SELECT-OPTIONS
selcrit
FOR
{dobj|
(
name
)
}
screen_options
[
OBLIGATORY
|
NO-DISPLAY
][
VISIBLE LENGTH
vlen][
NO-EXTENSION
][
NO INTERVALS
][
MODIF ID
id
]
value_options
[
DEFAULT
val1 [
TO
val2] [
OPTION
opt] [
SIGN
sgn]][
LOWER
CASE
]
[
MATCHCODE
OBJECT
search_help][
MEMORY
ID
pid]
该语句会生成一个名为
selcrit
选择条件内表,具体请参数
OPEN SQL
章节中的
RANG
条件内表
NO-
EXTENSION
:限制选择表为单行,元素输入后面不会出现
按钮
[iks?ten??n]
NO
INTERVALS
:只会出现
LOW
字段,
To
后面的
HIGH
字段不出现在选择屏幕上,
但是用户仍然可以在
Mutiple Selection
窗口中输入范围选择
。也就是说:只要有
按钮,就可以选择多个条件与范围值
[?int?v?l]
OBLIGATORY
:只有前面一个框框中出现钩,第二个框没有,也就是说该选项只能
LOW
字段有效
[??bl?g??t?:ri:]
DEFAULT
:
TABLES
:
mara,marc
.
SELECT-OPTIONS
:
werks
FOR
marc
-
werks
OBLIGATORY
DEFAULT
1001
TO
1007
SIGN
I
OPTION
BT
.
SELEC
T-OPTIONS
:
p2
FOR
mara
-
matnr MO
DIF
.
AT SELECTION-SCREEN OUTPUT
.
p2-low = 'aaaa'.
APPEND
p2 .
MEMORY ID
:将第一个输入框中的数据存放到
SAP MEMORY
中共享
如果输入框中
输入的值恰为
ABAP
程序中相应字段所对应的初始值时
(如字符类型为空串,时间与数字类型为“
0
”串时),
需要在第一个框前面选择
操作符,否则程序将会忽略这个值的输入
,即查询所有的
((
Select Single Values
OR
…
)
OR
(
Select Intervals
OR
…
))(
AND NOT
Exclude Single Values) … (
AND
NOT
Exclude Intervals) …
(
"MATNR" = '1' OR "MATNR" >= '2' OR "MATNR" <= '3' OR "MATNR" > '4' OR "MATNR" < '5' OR "MATNR" <> '6' OR "MATNR" <> '7' OR "MATNR" LIKE '23%' OR
NOT
( "MATNR" LIKE '24_' )
OR
"MATNR" BETWEEN '8' AND '9' OR
NOT
( "MATNR" BETWEEN '10' AND '11' )
)
AND
"MATNR" <> '12' AND "MATNR"
<
'13' AND "MATNR" > '14' AND "MATNR" <= '15' AND "MATNR" >= '16' AND "MATNR" = '17' AND "MATNR" = '18' AND
NOT
( "MATNR" LIKE '25%' ) AND "MATNR" LIKE '26_'
AND
NOT
("MATNR" BETWEEN '19' AND '20' ) AND "MATNR" BETWEEN '21' AND '22'
12.4.3.
使用
SELECT-OPTIONS
替代
PARAMETERS
实际上
PARAMETERS
类型的参数完全可以使用
SELECT-OPTIONS
来替代,下面就是使用这种替换方式,外表看上去与
PARAMETERS
是一样的,但双击后
可以出现操作符选择
界面,所以
唯一不同点就是这个可以选择操作符
,而且这样做的好处是:当
不输入值时,查询所有
的,
但
PARAMETERS
值为空是查询就是为空(或
0
)的值
(如果此时要忽略这个条件,则要将单值转换为
Rang
或者是分两种情况来写
SQL
条件):
TABLES
:
marc
.
SELECT-OPTIONS
:
s_werks
FOR
marc
-
werks
NO INTERVALS NO-EXTENSION
.
原文出自
江正军
技术博客,博客链接:
www.cnblogs.com/jiangzhengjun