abap selection screen[转]

看到吕老师的文章感觉不错学习一下

可以通过三种方式来产生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博客 ” ,链接:http://blog.itpub.net/190059/viewspace-1033098/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/190059/viewspace-1033098/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值