ABAPALV(2)

 承接上一节,由于ALV报表通常有选择屏幕作为程序和用户之间的接口,所以这一节主要介绍一下选择屏幕。

二、选择屏幕

      选择屏幕上的各种元素是用程序语句生成的,而不是使用屏幕编辑器添加的。

      1、选择屏幕的功能

          *选择参数元素,用于单值输入

          *复杂选择标准,可用于多值及范围的输入

          *可为输入参数定义输入帮助(F1)及搜索帮助(F4)

          *可定义变式,保存常用的输入条件

      2、选择屏幕元素

           2.1 选择屏幕参数

           (是最简单的选择屏幕元素,此种方式只接受单值输入,定义该参数时变量的长度不能超过8个字符

            定义格式: Parameters  name TYPE/LIKE  type/dobj   <options>.

            选择屏幕参数有许多附加格式化选项,但都不是必选,在需要的时候可以使用。如下:

            *DEFAULT  value:分配默认值

            *OBLIGATORY:设置必输项,当设置该选项以后,若输入的时候没有值,则系统会自动报错。

            *LOWER CASE:设置小写

            *VISIBLE LENGTH len :设这可显示长度

            *MATCHCODE  OBJECT  s_help:分配查询帮助,但该查询帮助对象s_help必须在数据字典中已经定义

            *VALUE CHECK:进行值检查

            *NO-DISPLAY:隐藏显示

            *MODIF  ID key:分配修改代码组

            *MEMORY  ID pid:使用内存默认值

            *AS CHECKBOX: 创建复选框

            *RADIOBUTTON  GROUP   radi:创建单选按钮组,每个分组至少两个参数,组名称的最大长度为4,并且每个组中只有一个参数可以设置默认值

            以上打上红色的格式化选项是我在开发ALV报表时设计选择屏幕中比较常用的几个,之后我会使用实例来讲解它们的用法。

            2.2 复杂选择标准

            定义变量为复杂选择标准,该变量为一个包含有四个组件的内表,如下:

            DATA: BEGIN OF seltab OCCURS  0,

                       SIGN(1),

                       OPTION(2),

                       LOW  LIKE f,

                       HIGH LIKE f,

                      END OF seltab.

             该内表的具体用法,就不在此做讲解,具体可以参考黄佳的《SAP程序设计》。

             (注:在使用Ranges定义变量的时候,其性质与该内表一样,所以在使用的时候要设置SIGN和OPTION,否则会报错!)

          复杂选择标准的格式选项,除了有与选择屏幕参数一致的选项外,还有自己特有的选项:

           *NO-EXTENSION  限制选择表为单行

           *NO INTERVALS   限制选择表为单值

           3、其他选择屏幕元素

           可以使用SELECTION-SCREEN……<options>……进行添加一些其他元素。

           1>、SELECTION-SCREEN  SKIP(N).产生空行,N值为1-9,当省略N时,默认空1行

           2>、SELECTION-SCREEN  ULINE [[/]pos(len)]  [MODIF  ID  key].用于给屏幕中的行划下划线

           3>、SELECTION-SCREEN  COMMENT  [/]pos(len) comm  [FOR FIELD f] [MODIF  ID   key].给选择屏幕添加注释行文字

           4>、SELECTION-SCREEN  POSITION   pos.将选择屏幕的元素按指定的位置输出

           4、组合选择屏幕元素

            1>、SELECTION-SCREEN BEGIN OF LINE.

                   ………………

                   SELECTION-SCREEN END OF LINE.是将多个不同的元素在同一行输出

            2>、SELECTION-SCREEN  BEGIN OF BLOCK block [ WITH FRAME [TITLE  title]]  [NO  INTERVALS].

                   ………………

                   SELECTION-SCREEN  END OF BLOCK  block.将一组选择元素组合在一个区域中输出,最多可以嵌套5层。

        3、选择屏幕事件

             选择屏幕事件是在INITIALIZATION事件和START-OF-SELECTION事件之间触发的,以下是相关的选择屏幕事件:

             AT SELECTION-SCREEN OUTPUT.是选择屏幕的PBO事件,在每次选择屏幕被调用之前触发

             AT SELECTION-SCREEN.是选择屏幕的PAI事件,是用户输入数据传输到程序后触发,是选择屏幕事件中最后触发的事件

             AT SELECTION-SCREEN  ON field.对输入的某个字段进行触发

             AT SELECTION-SCREEN  ON BLOCK  block.是对选择屏幕中的某个选择区域进行触发

             AT SELECTION-SCREEN  ON RADIOBUTTON GROUP  radi.对某个单选按钮组进行触发

             AT SELECTION-SCREEN  ON seltab.

             AT SELECTION-SCREEN  ON END OF seltab.此两个事件只在多行选择对话框才会触发

             AT SELECTION-SCREEN  ON HELP-REQUEST  FOR field.POH事件,相当于F1事件

             AT SELECTION-SCREEN  ON VALUE-REQUEST  FOR field.POV事件,相当于F4事件

                                                                  ---------------------------------以上知识摘自黄佳的《SAP程序设计》

     

原文地址:https://www.cnblogs.com/qlb8268/p/2776073.html