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.
执行效果: