abap selection screen

来源:互联网 发布:阿里巴巴 软银 知乎 编辑:程序博客网 时间:2024/05/16 08:33

可以通过三种方式来产生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 <grp>,来定义单选按钮。<grp>由四个字符组成。

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 <BLK>对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 <pos>来设置下个元素的位置。可以通过事件INTITIALIZATION或LOAD-OF-PROGRAM来为selection-screen字段设置缺省值,也可以 AT SELECTION-SCREEN OUTPUT中设置值与前者不同的时前者在一次运行时只能执行一次。而后者则是只要该屏幕重新显示就能触发一次。所有的屏幕输入都可以通过AT SELECTION-SCREEN EVENT事件检查,当在这个事件中触发error或warning消息时所有的字段又处于输入状态。这个事件可以加上参数ON <f>或ON <seltab>这种情况下触发error消息时只有这个字段处于输入状态。可以通过AT SELECTION-SCREEN ON BLOCK <block>.把一组字段组合到一块,这样在触发error信息时,block中所有字段都处于输入状态。AT SELECTION-SCREEN ON END OF <field>是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。

Tags: abap, SELECTION SCREEN

 

原创粉丝点击