相关文章推荐
有胆有识的砖头  ·  【ABAP系列】SAP ...·  3 月前    · 
道上混的紫菜汤  ·  树 - WPF .NET ...·  2 年前    · 

12.4. SELECT-OPTIONS . 89

12.4.1. 输入 ABAP 程序默认值时,需要加上“ =” . 89

12.4.2. 选择条件内表多条件组合规则 ... 89

12.4.3. 使用 SELECT-OPTIONS 替代 PARAMETERS . 90

12.4. SELECT-OPTIONS

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 :限制选择表为单行,元素输入后面不会出现 image097 按钮 [iks?ten??n]

NO INTERVALS :只会出现 LOW 字段, To 后面的 HIGH 字段不出现在选择屏幕上, 但是用户仍然可以在 Mutiple Selection 窗口中输入范围选择 。也就是说:只要有 image097[1] 按钮,就可以选择多个条件与范围值 [?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 中共享

12.4.1. 输入 ABAP 程序默认值时,需要加上“ =

如果输入框中 输入的值恰为 ABAP 程序中相应字段所对应的初始值时 (如字符类型为空串,时间与数字类型为“ 0 ”串时), 需要在第一个框前面选择 image099 操作符,否则程序将会忽略这个值的输入 ,即查询所有的

12.4.2. 选择条件内表多条件组合规则

(( 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