zoukankan      html  css  js  c++  java
  • 选择屏幕语法

    选择屏幕程序语法

    1.   PARAMETERS(见1.6)

    SSCRFIELDS选择屏幕上的字段

    USER-COMMAND fcode在使按钮能正常工作之前,必须使用TABLES sscrfields.语句来为ABAP数据词典中的SSCRFIELDS结构来定义接口工作区。当用户点击按钮后会触发AT SELECTION-SCREEN事件,并且function code fcode会存储到sscrfields-ucomm字段中。

    PARAMETERS: A1(10) TYPE C,

     A2      TYPE I.

    WRITE: / A1,/ A2.

    2.SELECT-OPTIONS

    SELECT-OPTIONS selcrit FOR {dobj|(name)}
                   [screen_options]
                   [value_options]
                   [ldb_options].

    l  screen_options

    ... [OBLIGATORY|NO-DISPLAY]
        [VISIBLE LENGTH vlen]
        [NO-EXTENSION] “限制选择表为单行,元素输入后面不会出现按钮。
        [NO INTERVALS] ” 只会出现LOW字段,
        [MODIF ID modid] ... . 选择屏幕中的参数选项 MEMORY ID的作用就等同于对话屏幕中的SET/GET Parameter,它们是作用是相同的(都是针对SAP Memory),只不过一个用于选择屏幕中,一个用于对话屏幕。

    l  value_options

    ... [DEFAULT val1 [TO val2] [OPTION opt] [SIGN sgn]]
        [LOWER CASE]
        [MATCHCODE OBJECT search_help]
        [MEMORY ID pid] ... .

    SELECT-OPTIONS selcrit FOR {dobj|(name)}

    该语句会生成一个名为selcrit选择条件内表,行结构类型如下的全局内表:

    DATA:BEGIN OF selcrit OCCURS 0,
      sign(1), “sign字段是长度为1的C类型数据。它是标志位,允许值为IE
      option(2),” OPTION字段的数据类型是C,长度为2,OPTION包含选择运算符”
      low LIKE mara-matnr, low字段的数据类型与f类型相同,该值为范围选择指定了下界
      high LIKE mara-matnr, “HIGH字段的数据类型与f类型相同,该值为范围选择指定了上界
    END OF selcrit.

    语法示例:

    s_werks FOR marc-werks OBLIGATORY DEFAULT 1001 to 1007 SIGN I OPTION BT 

    3.SELECT-SCREEN.

    SELECTION-SCREEN - BEGIN OF SCREEN.

    1. 1.  SELECTION-SCREEN BEGIN OF SCREEN dynnr [TITLE title]
                                             [AS WINDOW].
      SELECTION-SCREEN END OF SCREEN dynnr
    2. SELECTION-SCREEN BEGIN OF SCREEN dynnr AS SUBSCREEN
                              [NO INTERVALS] 创建的框架中限制SELECT只有一个输入项
                              [NESTING LEVEL n]. adjust the width of the subscreen if it is to be included in a tabstrip control in one or more frames. You must specify n directly as a number between 0 and 4.

    SELECTION-SCREEN END OF SCREEN dynnr.

    SELECTION-SCREEN - screen_elements


    1. SELECTION-SCREEN SKIP [n] [ldb_additions]. 空格n行

    2. SELECTION-SCREEN ULINE [[/][pos](len)] [MODIF ID modid]
                             [ldb_additions]. 位置与长度,划出横线,必须用在BLOCK中才能生效
    3. SELECTION-SCREEN COMMENT [/][pos](len)
                               {text|{[text] FOR FIELD sel}}
                               [VISIBLE LENGTH vlen]
                               [MODIF ID modid]
                               [ldb_additions].
    4. SELECTION-SCREEN PUSHBUTTON [/][pos](len) button_text 位置与长度,名字
                             USER-COMMAND ucom 指定的字符代码,当用户在选择屏幕上触发按钮时
                                  [VISIBLE LENGTH vlen]
                                  [MODIF ID modid]
                                  [ldb_additions].
    5. SELECTION-SCREEN BEGIN OF LINE. 将所生成的屏幕元素控制在一行。
      [SELECTION-SCREEN POSITION pos [ldb_additions]].BLOCK中产生空格。
      SELECTION-SCREEN END OF LINE.
    6. SELECTION-SCREEN BEGIN OF BLOCK block
                               [WITH FRAME [TITLE title]]带标题框架
                               [NO INTERVALS].
      SELECTION-SCREEN END OF BLOCK block.
    7. SELECTION-SCREEN BEGIN OF TABBED BLOCK tblock FOR n LINES.
      ...
      SELECTION-SCREEN TAB (len) tab USER-COMMAND ucom
                       [DEFAULT [PROGRAM prog] SCREEN dynnr].
      ...
      SELECTION-SCREEN END OF BLOCK tblock.
    8. SELECTION-SCREEN FUNCTION KEY n [ldb_additions]. the application toolbar contains five inactive pushbuttons, to which the function codes FC01 to FC05 are assigned. This statement activates the pushbutton of the function code FC0n, whereby a value between 1 and 5 must be entered for n.

     

    语法示例:

     

    示例一:


    SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
    PARAMETERS: p1 TYPE c LENGTH 10,
                p2 TYPE c LENGTH 10,
                p3 TYPE c LENGTH 10.
    SELECTION-SCREEN END OF SCREEN 100.
    SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
    PARAMETERS: q1 TYPE c LENGTH 10,
                q2 TYPE c LENGTH 10,
                q3 TYPE c LENGTH 10.
    SELECTION-SCREEN END OF SCREEN 200.
    SELECTION-SCREEN: BEGIN OF TABBED BLOCK mytab FOR 10 LINES,
                      TAB (20) button1 USER-COMMAND push1,
                      TAB (20) button2 USER-COMMAND push2,
                      END OF BLOCK mytab.

    INITIALIZATION.
      button1 = 'Selection Screen 1'.
      button2 = 'Selection Screen 2'.
      mytab-prog = sy-repid.
      mytab-dynnr = 100.
      mytab-activetab = 'PUSH1'.
    AT SELECTION-SCREEN.
      CASE sy-dynnr.  “当前屏幕号
        WHEN 1000.
          CASE sy-ucomm.
            WHEN 'PUSH1'.
              mytab-dynnr = 100.
            WHEN 'PUSH2'.
              mytab-dynnr = 200.
            WHEN OTHERS.  
          ENDCASE.
      ENDCASE.

    示例二:

    TYPE-POOLS icon.
    TABLES sscrfields.            “选择屏幕上的字段
    DATA functxt TYPE smp_dyntxt. “
    动态文本的程序接口
    PARAMETERS: p_carrid TYPE s_carr_id,
                p_cityfr TYPE s_from_cit.
    SELECTION-SCREEN: FUNCTION KEY 1,   “FC01
                               FUNCTION KEY 2.   “FC02
    INITIALIZATION.
      functxt-icon_id   = icon_ws_plane.
      functxt-quickinfo = 'Preselected Carrier'.
      functxt-icon_text = 'LH'.
      sscrfields-functxt_01 = functxt.
      functxt-icon_text = 'UA'.
      sscrfields-functxt_02 = functxt.
    AT SELECTION-SCREEN.
      CASE sscrfields-ucomm.
        WHEN 'FC01'.
          p_carrid = 'LH'.
          p_cityfr = 'Frankfurt'.
        WHEN 'FC02'.
          p_carrid = 'UA'.
          p_cityfr = 'Chicago'.
        WHEN OTHERS.
      ENDCASE.

    SELECTION-SCREEN INCLUDE

    (调用已经存在的屏幕元素)


    PARAMETERSpara
       [OBLIGATORY [OFF]]
       [MODIF ID modid]
       [ID id].

    SELECT-OPTIONS selcrit
     [OBLIGATORY [OFF]]
     [NO INTERVALS [OFF]]
     [NO-EXTENSIONS

    [OFF]]
     [MODIF ID modid]
     [ID id].

     

    COMMENT [/][pos](len) text
    [FOR FIELD sel]
    [MODIF ID modid]
    [ID id].

     
    PUSHBUTTON [/][pos](len) button_text
    [USER-COMMAND ucom]
    [MODIF ID modid]
    [ID id].


    BLOCKS block [ID id].

     


     

     


    语法示例:

    SELECTION-SCREEN: BEGIN OF BLOCK block,
                      COMMENT /1(40) text,
                      ULINE.
    PARAMETERS: p1(10) TYPE c,
                p2(10) TYPE c,
                p3(10) TYPE c.
    SELECTION-SCREEN END OF BLOCK block.
    SELECTION-SCREEN: BEGIN OF SCREEN 500 AS WINDOW,
                      INCLUDE BLOCKS block,
                      END OF SCREEN 500.
    INITIALIZATION.
      text = 'Standard Selection'.
    START-OF-SELECTION.
      CALL SELECTION-SCREEN '0500' STARTING AT 10 10. “调用屏幕

     

    CALL SELECTION-SCREEN

    CALL SELECTION-SCREEN dynnr
                          [STARTING AT col1 lin1
                          [ENDING   AT col2 lin2]]
                          [USING SELECTION-SET variant].

    CALL SELECTION-SCREEN '0500' STARTING AT 10 10. “调用屏幕

    AT SELECTION-SCREEN

    是PAI处理,选择屏幕显示之后,用来响应回车,F8,F1,F4等事件。
          (1)选择屏幕事件,此处声明的变量是局部变量。
         (2)check sy-ucomm 判断用户命令。
         (3)在这个事件响应中,可以对屏幕字段进行有效性检验等,但无法修改选择屏幕。

     

    { OUTPUT }  屏幕输出时的各屏幕元素值的管控(PBO处理,在选择屏幕显示之前就被调用;响应屏幕上的事件,用户回车或F8后也被调用;通过modify screen可以修改选择屏幕字段)
      | { ON {para|selcrit} } 检查具体输入字段是否完整或正确


      | { ON END OF selcrit }
      | { ON BLOCK block }框架的触发事件(控制框架中的屏幕元素值的输入)
      | { ON RADIOBUTTON GROUP radi }单选按钮事件,必须进行整体输入检查
      | { }
      | { ON {HELP-REQUEST|VALUE-REQUEST} VALUE-<F4>键时触发HELP-<F1>键时键
      |   FOR {para|selcrit-low|selcrit-high} }检查具体输入字段是否完整或正确
      | { ON EXIT-COMMAND }.响应"BACK","CANCEL","EXIT"等事件

    语法示例:

    PARAMETERS p_carrid TYPE spfli-carrid.

    AT SELECTION-SCREEN ON p_carrid.

    IF p_carrid IS INITIAL.

  • 相关阅读:
    java监听者模式
    使用tc编写流量控制脚本
    Android apk集成
    就这样
    嘴不笨来试试??太好玩儿了,看看谁厉害?
    老板的三句话
    电脑设置wifi
    JDBC
    使用git的一般操作
    模板引擎Velocity学习系列
  • 原文地址:https://www.cnblogs.com/xj159/p/11949234.html
Copyright © 2011-2022 走看看