文章目录
一选择屏幕的定义
选择屏幕用于输入数据选择的选择标准
选择屏幕也是屏幕,这些屏幕是根据源代码中的声明语句生成的。
选择屏幕标准功能
文本(选择文本)能够以多种语言进行维护
在运行时,文本会自动以用户的登录语言显示。
自动检查类型
检查用户输入的内容与输入字段的类型是否相符
除单一值外,还有复杂选择
可输入间隔,范围,比较条件等为限制条件。
使用字典元素(如数据元素)定义输入字段
使用F1输入了中显示 字段文档(数据元素文档)
通过F4调用附加到字典类型的搜索帮助
将选择屏幕保存为变式
以备重用或用于后台操作
屏幕基本元素
parameters
单值输入:
PARAMETERS {[(LEN)]}|{para [length len] }
[TYPE [DECIMALS decimals]] | [like object]
[DEFAULT value]
parameter可以参照数据字典具体字段或者数据元素创建文本输入框以及单选/复选框等
.输入变量的定义方法与普通变量相同
输入变量名不可超过8个字符长。
使用default附加而非value附加指定缺省值
Parameters定义后不会生产内表,可作为变量在程序中运用
ABAP内存共享
REPORT ZJGLTEST1.
DATA LV_DATA2 TYPE CHAR5.
DATA LV_DATA TYPE CHAR5.
GET PARAMETER ID 'P1' FIELD LV_DATA2.
WRITE: LV_DATA2.
IMPORT LV_DATA FROM MEMORY ID 'P2'.
WRITE LV_DATA.
REPORT ZJGLTEST2.
* SAP 内存
DATA LV_DATA1 TYPE CHAR5 VALUE 'Harry'.
SET PARAMETER ID 'P1'FIELD LV_DATA1.
* ABAP 内存
DATA LV_DATA TYPE CHAR5 VALUE 'Jing'.
EXPORT LV_DATA TO MEMORY ID 'P2'.
SUBMIT ZJGLTEST1 .
二 PARAMETERS
PARAMETERS常用的的扩展语法
Memory id mid : 将PARAMETERS存储在SAP内存,参数名长度不能超过三位;
NO-DISPLAY:将PARAMETERS设置为隐藏,不会在屏幕上输出
LOWER CASE :如果输入小写,则将在回车或者执行时候继续保持 小写
obligatory:限制该PARAMETERS为必填,否则会提示输入
AS CHECKBOX: 创建CHECKBOX对象
RADIO BUTTON GROUP RADI: 创建RADIO单选框
VISIBLE LENGTH VLEN:定义显示长度
user-command ucom:功能码,只能分配给CHECKBOX或者RADIOBUTTON,当选择以上控件的
时候,程序调用AT SELECTION-SCREEN事件,通过功能码控制屏幕其他元素的属性
AS LISTBOX VISIBLE LENGTH VLEN:创建一个下拉框,并指定长度
MATCHCODE OBJECT: 指定SE11的搜索帮助
REPORT ZJGLTEST2.
PARAMETER P_1 type char5 DEFAULT 'HARRY' MEMORY ID P1 .
PARAMETER P_P2 RADIOBUTTON GROUP G1.
PARAMETER P_P3 RADIOBUTTON GROUP G1.
PARAMETER P_P4 TYPE STRING VISIBLE LENGTH 5.
PARAMETER P_P5 TYPE CHAR5 AS LISTBOX VISIBLE LENGTH 10.
PARAMETER P_P6 TYPE CHAR12 MATCHCODE OBJECT USER_COMP.
SELECT-OPTIONS
复杂选择
SELECT-OPTIONS NAME FOR DATA_OBJECT.
name为选择选选项的名称
data_object是一个预定义变量,或者数据库表的字段
常用于参照一数据库字段来建立,要在程序开用TABLES声明表名
其定义对象命名长度不能超过8位
定义的屏幕元素在程序中当做内表来用,内表的结构比较特殊.
复杂选择
选择执行后,用户输入项会传输给自动生成的内部表。
此表始终包含四列:sign ,option. low.high
BT(范围), NB(排除范围)
复杂选择语法扩展
以下是例子
TABLES vbak.
SELECT-options s_s1 for vbak-vbeln DEFAULT 44 to 55 .
SELECT-options s_s2 for vbak-vbeln DEFAULT 44.
SELECT-options s_s3 for vbak-vbeln DEFAULT 44 option le sign i.
SELECTION-SCREEN
以下是例子
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS p_p1 type char1 DEFAULT 'HARRY'MEMORY ID P1 AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF SCREEN 1001.
PARAMETERS p_p2 type char1 DEFAULT 'HARRY'MEMORY ID P1 AS CHECKBOX.
SELECTION-SCREEN END OF SCREEN 1001.
CALL SELECTION-SCREEN 1001.
文本元素
屏幕控制事件
INITIALIZATION
AT SELECTION-SCREEN
START-OF-SELECTION 事件:
该事件在单机按钮后触发,主要用于从数据库中取数
END- OF -SELECTION事件
START-OF-SELECTION事件执行完成后,但输出屏幕还未显示之前,一般用于执行结果校验或者ALV显示等。
屏幕事件的中止: EXIT,STOP,RETURN
三.总结
3.1只要有parameters和selection-screen时,就可以确定这是一个选择屏幕;
3.2 popup_to_confirm_data_loss(弹出对话框函数);
3.3 选择屏幕不要参考自定义字段,参考标准表的标准字段.
前导零有可能查不出来.