选择屏幕
选择屏幕是ABAP程序中一种常见的交互式屏幕类型,通过该屏幕可以方便用户进行输入,并获取所需的数据信息,当运行报表程序时,会自动生成屏幕编号为1000的屏幕。选择屏幕通常由一个或多个参数组成,每个参数都与一个输入域相关联,用户可以在该域中输入需要的值。选择屏幕中的各种元素是用程序语句生成的,不可以使用屏幕绘制器添加。
选择屏幕通常用于以下场景:
- 需要从用户那里获取输入数据的时候;
- 需要对某些特定条件进行筛选,以获取相关的数据信息;
- 需要对数据进行排序或分组操作。
选择屏幕提供给用户的具体功能如下:
- 提供选择参数(Parameter)元素,允许用户输出单值,程序可以根据该值进行选择
- 提供复杂选择标准(Selection Criteria),可以包括范围、操作数、选择条件、模式
- 用户可以将已经输入好的选择标准通过变式 ( Variant)进行存储,以供下次运行程序时调用。
- 可以为屏幕元素(即输入字段)定义输入帮助(F1 help)和搜寻帮助(F4 help)。
- 可以为选择标准定义说明性文字,系统提供翻译功能。
- 系统会根据定义的屏幕字段类型自动检测用户输入,并对无效的输入给出错误消息
PARAMETERS
单值输入
PARAMETERS {<para>[(len)]}|{para [LENGTH len]}
[TYPE <type> [DECIMALS decimals]] |[LIKE object ]
[DEFAULT value]
参数说明
语法 | 说明 |
---|---|
DEFAULT ‘A’ | 设置初始值 |
TYPE CHAR10 | 利用ABAP 数据字典的数据类型 |
LENGTH N | 只适用于TYPE C、N、X或P,用于定义长度 |
DECIMALS dec | 用于指定小数点位数 |
LIKE g | 定义成参照对象相同的数据类型 |
MEMORY ID pid | 分配内存参数 |
MATCHCODE OBJECT mobj | 4.0 以后版本开始使用 Search Help,在 mobj 中输入 Search Help 名会生成 Possible Entry |
MODIF ID modid | 指定 screen-group,用于分组控制画面属性 |
NO-DISPLAY | 用于隐藏,不显示在画面上 |
LOWER CASE | 区分大小字母(case-sensitive) |
OBLIGATORY | 用于指定必输入字段。 |
AS CHECKBOX | 以 CHECK BOX形式显示 |
RADIOBUTTON GROUP radi | 以单选按钮形式显示,要把两个以上字段定义成 Radio Group |
VISIBLE LENGTH vlen | 用于设置字段显示长度 |
VALUE CHECK | 可以继承表字段属性来检查 Check Table 的值(外部键) |
LIKE(g) | 可以动态定义参数,运行时g中应该分配 ABAP数据字典中存在的数据对象 |
AS LISTBOX | 与ABAP数据字典字段的INPUT HELP相结合会显示成 LISTBOX,下拉框 |
USER-COMMAND ucom | 只适用于复选框和单选按钮。当选择单选按钮时执行 USER COMMAND 事件 |
AS SEARCH PATTERN | 在 LDB (DBIdbSEL include) 中使用,且作为SEARCH HELP的主键构成内表 |
VALUE-REQUEST | 在 LDB (DBIdbSEL include)中用于追加 F4 VALUE HELP |
HELP-REOUEST | 与 VALUE-REQUEST相似,生成字段 HELP |
PARAMETERS:
P_1 DEFAULT 'A',
P_2 TYPE CHAR10,
P_3 TYPE C LENGTH 3 DEFAULT '123',
P_4 TYPE C LENGTH 3 OBLIGATORY,
P_5 AS CHECKBOX,
P_6 RADIOBUTTON GROUP R1,
P_6_1 RADIOBUTTON GROUP R1,
P_7 TYPE CHAR5 AS LISTBOX VISIBLE LENGTH 10.
SELECT-OPTIONS
多值输入
SELECT-OPTIONS name FOR data_object.
FOR语句后只能是以TABLES语句定义的表字段名或者以DATA语句定义的变量
SELECT-OPTIONS创建如下格式的内表
SIGN | OPTION | LOW | HIGH | |
---|---|---|---|---|
描述 | 输入类型 | 前后输入栏关系 | 低值 | 高值 |
参考值 | I(包含) E(不包含) | EQ(等于) BT(范围) NB(不包括) 。。。 |