看到吕老师的文章感觉不错学习一下
可以通过三种方式来产生selection screen:
l Logical database 语句:nodes
l 通过parameters,select-options产生一个default selection screen。
l 通过SELECTION-SCREEN BEGIN OF CALL
SELECTION-SCREEN创建额外的SELECTION SCREEN。SCREEN NUMBER
1000到1010是sap保留的,在HR中你只能定义9000以上的屏幕号。
如果selection screen程序是后台运行的,那么必须创建相应的variant。
PARAMETER fields的名字最长为8个字符,可以通过MEMORY ID实现在SAP MEMORYZ中交换数据。
如果parameter fields参考dictionary object,并且dictionary
object是有外键的,缺省情况下value check是关闭的,可以通过VALUE CHECK来打开这个选项。可以通过AS
CHECKBOX来定义复选框,通过AS RADIBUTTON GROUP
,来定义单选按钮。由四个字符组成。
Select-options的名字最多也只有8个字符。Select-options产生的是一个internal
table,它有四个字段:sign option low high。Sign option的值列表:
SIGN: I (Include), E (Exclude)
OPTION: EQ, NE, LE, LT, GE, GT, BT(Between), NB (Not Between),
CP (Contains Pattern), NP (Contains Pattern not)
Select-options addition:
l DEFAULT:你可以通过INITIALIZATION或LOAD-OF-PROGRAM其中之一来设置缺省值。
l MEMORY ID:可以实现与SAP MEMORY的交互。
l LOWER CASE:确定是否进行大写转换,但是对于dictionary object无效。
l OBLIGATORY
l NO-EXTESIONS:multiple selection失效
l NO-INTERVALS:不能直接输入间隔值
如果有logical database,parameter和select-options将会放到最下面。
可以通过SELECTION-SCREEN来设计selection screen的布局,通过BEGIN OF BLOCK
对selection screen元素进行逻辑分组,可以通过WITH
FRAME来添加一个框架。如果selection-screen有框架,可以为block设置title,有两种方式text-xxx和三个字符的标
识,后者可以在initialization中设置。事务代码BIBS中有各种selection
screen的向导。通过SELECTION-SCREEN BEGIN OF
LINE可以实现在一行中放置多个parameters和comments。Comment必须有一个format(position和output
length),position可以通过变量来设置也可以是pos_low或pos_high。后者是select-options的low和
high。可以通过COMMENT … FOR FIELD把comment和field绑定在一起。通过语句POSITION
来设置下个元素的位置。可以通过事件INTITIALIZATION或LOAD-OF-PROGRAM来为selection-
screen字段设置缺省值,也可以 AT SELECTION-SCREEN
OUTPUT中设置值与前者不同的时前者在一次运行时只能执行一次。而后者则是只要该屏幕重新显示就能触发一次。所有的屏幕输入都可以通过AT
SELECTION-SCREEN
EVENT事件检查,当在这个事件中触发error或warning消息时所有的字段又处于输入状态。这个事件可以加上参数ON
或ON 这种情况下触发error消息时只有这个字段处于输入状态。可以通过AT
SELECTION-SCREEN ON BLOCK
.把一组字段组合到一块,这样在触发error信息时,block中所有字段都处于输入状态。AT
SELECTION-SCREEN ON END OF 是selection screen PAI事件。可以通过事件AT
SELECTION-SCREEN ON HELP-REQUEST and AT SELECTION-SCREEN ON
VALUE-REQUEST来实现F1,F4 help。ON VALUE-REQUEST的值选择是通过interactive
event来控制的。当用户点击execute或按F8时,SY-SUBRC返回0,如果用户点击cancel或exit
sy-subrc返回4。你可以在INITIALIZATION中决定selection
screen的缺省值,通过SY-DYNNR在事件中确定目前正在处理的屏幕。用户可以为program创建任意数量的变式,变式只能应用于唯一的程序。
当你激活program attribute中的starting with
variant标识时,你只能通过变式启动程序。Variant的命名规则,SAP&XXX是由SAP系统提供的,CUS&XXX是由用
户自开发的,符合上面的命名规则的变式自动同程序一块传输,否则的话需要手工把变式插入到change request的object
list中。Transport object LIMU VAR,或者通过下面的menu path:Variants ->
Transport request from the variant maintenance
screen。变式可以被设置成仅在后台使用,通过only display in
catalog可以使变式在前台不被选择。可以保护变式本身是选择条件不能被没有权限的人修改。Type of
select是由select-options和parameter决定,selection
protected可以保护选择条件被修改。Hide可以隐藏选择条件。可以通过三种方式来提供selection variables:
l 通过表tvarv(c)(TYPE T)
l Type D,通过动态设定日期,比如当天
l 用户自定义的变量(TYPE B),通过memory id。
[@more@]
通过创建可传到生产系统的变式按照文章的指导:
SAP&XXX是由SAP系统提供的,CUS&XXX是由用
户自开发的,符合上面的命名规则的变式自动同程序一块传输,否则的话需要手工把变式插入到change request的object
list中
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/190059/viewspace-1033098/
,如需转载,请注明出处,否则将追究法律责任。