[SAP ABAP開發技術總結]選擇屏幕——SELECT-OPTIONS


 

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.

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

MEMORY ID:將第一個輸入框中的數據存放到SAP MEMORY中共享

12.4.1.           輸入ABAP程序默認值時,需要加上“=

image098

如果輸入框中輸入的值恰為ABAP程序中相應字段所對應的初始值時(如字符類型為空串,時間與數字類型為“0”串時),需要在第一個框前面選擇image099操作符,否則程序將會忽略這個值的輸入,即查詢所有的

12.4.2.           選擇條件內表多條件組合規則

((Select Single Values OR) OR(Select Intervals OR))( AND NOT Exclude Single Values) … ( AND NOT Exclude Intervals) …

image100image101image102image103

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

image104


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM