abap在選擇屏幕上動態地設置日期的默認值,話不多說,代碼如下:
"默認值動態地設置爲據目前日期半年的時間區間
SELECT-OPTIONS:s_aedat OR ekko-aedat.
INITIALIZATION.
s_aedat-low = sy-datum - 180.
s_aedat-high = sy-datum.
s_aedat-sign = 'I'.
s_aedat-option = 'BT'. NB表示不包括,BT表示包括
APPEND s_aedat.
CLEAR s_aedat.
以下是對選擇屏幕這塊兒一些知識點的補充記錄,大佬可略。
PARAMETERS 對象語法:
abap_03_Parameters_Syntax
-
< f >是用戶自定義對象名,即程序中的 pa_oarr, pa_name 等。
-
TYPE|LIKE 是定義對象名的類型
-
DECIMALS 用於數量型對象,保留多少位小數點
-
MEMROY ID SAP內存ID,可以將對象參數臨時保存在內存中,通過< pid >存儲及讀取,長度不能超過3個字符
-
OBLIGATORY 必輸項,該對象在屏幕上指定必輸
-
DEFAULT 默認值
-
AS CHECKBOX 將對象設置成複選框方式交互,如上面截圖中的
PA_NAME對象 -
RADIOBUTTON GROUP 將對象設置成單選框交互,由於單選框只能集合中的一個,故需要指定一個GROUP限制其集合
SELECT-OPTIONS對象語法:
-
< seltab > 創建自定義對象名
-
FOR 參考對象,一般用系統本身的數據表結構對象
-
DEFAULT 默認值
-
MEMORY ID 內存ID ,與PARAMETERS用法一致
-
LOWER CASE 大寫,輸入的內容必須大寫
-
OBLIGATORY 必輸項,與PARAMETERS用法一致,只是SELECT-OPTIONS 只限於LOW字段值
-
NO-EXTENSION 限制只能輸入一行數據
-
NO INTERVALS 限制只能輸入一個單元(LOW字段)
-
List item
1、s_aedat-sign中的sign欄位,表示輸入值的類型, I(Include)或者 E(Exclude) ,包括與不包括(即:排除);在維護選擇項時,可以通過 按鈕來篩選操作;
2、Option欄位,表示輸入值的關係:
EQ(Equal) – 等於
NE(Not Equal) – 不等於
LT(Little Than) – 小於
LE(Little and Equal) – 小於等於
GT(Great Than) – 大於
GE(Greater and Equal ) – 大於等於
BT(Between) – 上下限之間
NB(Not Between) – 不在上下限之間
3、LOW 欄位,輸入值上限
4、HIGH欄位,輸入值下限
除了可以通過屏幕操作來篩選條件之外,程序上也可以控制 Select-options 的輸入值,在初始化事件中添加相關程序:
TABLES: sflight.
SELECT-OPTIONS: so_carr FOR sflight-carrid,
so_fldt FOR sflight-fldate.
*--------------------------------------------------------------------*
* 初始化
*--------------------------------------------------------------------*
INITIALIZATION.
so_carr-sign = 'I'.
so_carr-option = 'EQ'.
so_carr-low = 'AA'.
so_carr-high = 'ZZ'.
APPEND so_carr TO so_carr.
CLEAR so_carr.
執行效果: