首页 > 代码库 > [SAP ABAP开发技术总结]选择屏幕——SELECT-OPTIONS

[SAP ABAP开发技术总结]选择屏幕——SELECT-OPTIONS

<style></style>

<script type="text/javascript">// 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed); oBox.offsetTop == iTop ? clearInterval(oBox.timer) : (oBox.style.top = oBox.offsetTop + iSpeed + "px"); }, 10) }, 50) oMenu.onclick = function () { oBox.style.width = 260 + "px"; oMenu.style.display = "none"; oLine.style.display = "block"; }; oLine.onclick = function () { oBox.style.width = ‘‘; oLine.style.display = "none"; oMenu.style.display = "block"; }; var cat_nav = $("#cat_nav"); oLine.innerHTML = cat_nav.html();};// ]]></script>

目录导航
 

<script type="text/javascript">// </script>

声明:原创作品转载时请注明文章来自SAP师太博客并以超链接形式标明文章原始出处否则将追究法律责任!
原文出自:

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:限制选择表为单行,元素输入后面不会出现技术分享按钮[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.

SELECT-OPTIONS:p2 FOR mara-matnr MODIF.
AT SELECTION-SCREEN OUTPUT.
  p2-low = ‘aaaa‘.
  APPEND p2 .

MEMORY ID:将第一个输入框中的数据存放到SAP MEMORY中共享

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

技术分享

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

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.

技术分享

[SAP ABAP开发技术总结]选择屏幕——SELECT-OPTIONS