ABAP选择表解析
選擇表
系統為每個SELECT-OPTIONS語句創建選擇表。選擇表的目的是按標準化的方式保存復合選擇限制。它們可按多種方式使用。它們的主要目的是使用OPEN SQL語句的WHERE子句把選擇標準直接傳輸到數據庫表。選擇表是一個帶表頭行的內表。它的行結構是字段字符串,由四個組件構成,即SIGN,OPTION,LOW和HIGH.
SIGN: SIGN的數據類型是C,長度為1.SIGN是標志,表示保存在OPTION中的運算符是否需要翻轉。允許值是I和E.
I:表示“包含”?E:表示“排除”
OPTION:OPTION的類型是C,長度為2。OPTION包含選擇運算符。如果SIGN包含E,運算符的作用就像它的前面有NOT一樣。
如果HIGH是空的,可以使用EQ,NE,GT,LE,LT,CP和NP,這些運算符在編程邏輯表達式中描述。運算符CP和NP沒有它們在通常邏輯表達式中所具有的范圍。只有當在輸入字段中使用了通配符(“*”或“+”)時它們才是有效的。
如果HIGH已被填充,則可以使用BT(位于)和NB(不位于)。這些運算符的功能與BETWEEN和NOT BETWEEN一樣。
LOW:LOW的數據類型與數據庫表的列類型相同,該表與選擇標準相連接。
如果HIGH為空,LOW的內容定義單值選擇。它與OPTION中的運算符相結合,為數據庫選擇指定了條件。
如果HIGH已填充,LOW和HIGH中的內容為間隔選擇指定上界和下界。與OPTION中的運算符相結合,該間隔為數據庫選擇指定了條件。
HIGH:數據與數據庫表的列類型相同,該表與選擇標準相連接。HIGH中的內容為間隔選擇指定了上界。
RANGES語句
要用與選擇表相同的結構創建內表,可使用RANGES語句
RANGES <seltab> FOR <f>."該語句創建選擇表<seltab>,該表參考數據庫表的列<f>或內部字段<f>。選擇表<seltab>必須在程序中填充。不必在程序中再用TABLES語句聲明數據庫表。
例:
DATA: BEGIN OF <seltab> OCCURS 10,
SIGN(1),
OPTION(2),
LOW LIKE <f>,
HIGH LIKE <f>,
END OF <seltab>.
用RANGES語句創建的選擇表不是選擇屏幕的一部分,它們在程序<prog>中不能用于數據傳遞,該程序由下列語句啟動:SUBMIT <prog> WITH <seltab> IN <table>.表<table>可以在調用程序中用RANGES創建。
總結
- 上一篇: SAP中和计量单位有关的表
- 下一篇: 如何区分“Invoice代码”和“Inv