zoukankan      html  css  js  c++  java
  • 屏幕对象的F1/F4输入帮助功能

    1.HELP-REQUST[FOR{LOW|HIGH}]字段的F1帮助

    当选择SAP屏幕功能的制定字段按F1键时可以调关注用自定义的程序或者系统帮助文件,该功能通常称为F1帮助。

    TYPES:syst.
    SELECT-OPTIONS:s_date FOR syst-datum.
    
    AT SELECTION-SCREEN ON HELP-REQUEST FOR s_date-low.
      PERFORM show_f1.
    *&---------------------------------------------------------------------*
    *&      Form  SHOW_F1
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    *  -->  p1        text
    *  <--  p2        text
    *----------------------------------------------------------------------*
    FORM show_f1 .
      DATA t_link LIKE TABLE OF tline WITH HEADER LINE .
    
      CALL FUNCTION 'HELP_OBJECT_SHOW'
        EXPORTING
          dokclass                            = 'DE'
    *   DOKLANGU                            = SY-LANGU
          dokname                             = 'SYDATUM'
    *   DOKTITLE                            = ' '
    *   CALLED_BY_PROGRAM                   = ' '
    *   CALLED_BY_DYNP                      = ' '
    *   CALLED_FOR_TAB                      = ' '
    *   CALLED_FOR_FIELD                    = ' '
    *   CALLED_FOR_TAB_FLD_BTCH_INPUT       = ' '
    *   MSG_VAR_1                           = ' '
    *   MSG_VAR_2                           = ' '
    *   MSG_VAR_3                           = ' '
    *   MSG_VAR_4                           = ' '
    *   CALLED_BY_CUAPROG                   = ' '
    *   CALLED_BY_CUASTAT                   =
    *   SHORT_TEXT                          = ' '
    *   CLASSIC_SAPSCRIPT                   = ' '
        TABLES
          links                               = t_link
    * EXCEPTIONS
    *   OBJECT_NOT_FOUND                    = 1
    *   SAPSCRIPT_ERROR                     = 2
    *   OTHERS                              = 3
                .
      IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    
    ENDFORM.          

    2.VALUE-REQUEST[FOR {LOW|HIGH}]字段的F4键帮助
    当指定字段按F4时,可以调用自定义的程序或者系统帮助数据。该过程是通过单击F4事件来触发,所以也可以通过abap事件控制语法AT SELECTION-SCREEN来调用

    当该参数主要是在定义帮助数据时使用,在参照数据表建立的屏幕对象一般会取用默认帮助对象,与F1不同的是,F1是进行信息提示,而F4是显示填充值得列表,所以选取的值将返回给所操作的屏幕对象,可以调用系统函数F4IF_FIELD_VALUE_REQUEST参照某一个具体表字段来维护F4帮助,如下示例

    TYPES:syst.
    SELECT-OPTIONS:s_date FOR syst-datum.
    
    AT SELECTION-SCREEN ON value-request  FOR s_date-low.
      PERFORM show_f1.
    *&---------------------------------------------------------------------*
    *&      Form  SHOW_F1
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    *  -->  p1        text
    *  <--  p2        text
    *----------------------------------------------------------------------*
    FORM show_f1 .
    *  DATA t_link LIKE TABLE OF tline WITH HEADER LINE .
    
      CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
        EXPORTING
          tabname                   = 'SYST'    "参照表
          fieldname                 = 'DATUM'   "参照字段
    *     SEARCHHELP                = ' '
    *     SHLPPARAM                 = ' '
         DYNPPROG                  = sy-repid   "指定执行程序
         DYNPNR                    = sy-dynnr   "指定执行程序屏幕编码
         DYNPROFIELD               = 'S_DATE'   "触发事件的屏幕对象名称
    *     STEPL                     = 0
    *     VALUE                     = ' '
    *     MULTIPLE_CHOICE           = ' '
    *     DISPLAY                   = ' '
    *     SUPPRESS_RECORDLIST       = ' '
    *     CALLBACK_PROGRAM          = ' '
    *     CALLBACK_FORM             = ' '
    *     SELECTION_SCREEN          = ' '
    *   IMPORTING
    *     USER_RESET                =
    *   TABLES
    *     RETURN_TAB                =
    *   EXCEPTIONS
    *     FIELD_NOT_FOUND           = 1
    *     NO_HELP_FOR_FIELD         = 2
    *     INCONSISTENT_HELP         = 3
    *     NO_VALUES_FOUND           = 4
    *     OTHERS                    = 5
                .
      IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    
    
    
    
    ENDFORM.       

    3.NO DATABASE SELECTION不选取逻辑数据库约束

    在调用逻辑数据库的程序中,往往对用户输入的数据按权限来进行筛选。倘若在定义的对象后面加上NO DATABASE SELECTION参数,该对象所输入的对象则不会受到逻辑数据库的约束。

    目前ABAP中需要运用NO DATABASE SELECTION定义的逻辑数据库很少,例如HR模块管理的PNP逻辑数据库中,其中所有的帮助条件采用Search Help的方式进行定义。而在

    引用逻辑数据库F1S开发的程序中,通过F4只能看到用户权限所限制的数据,以连接编号CONNID字段为例子,在引用逻辑数据库的程序中,通过NO DATABASE SELECTION参数可以读取非限制条件的数据,逻辑数据库可以在abap编辑器的属性页面中进行定义。

    执行逻辑数据库需要引用定义NODES或TABLES,使用NO DATABASE SELECTION定义的参数如下。

    NODES spfli.
    SELECT-OPTIONS:s_connid FOR spfli-connid NO DATABASE SELECTION.

  • 相关阅读:
    eclipse A Java Runtime Environment(JRE)
    【Android】自己定义圆形ImageView(圆形头像 可指定大小)
    addEventListener()、attachEvent()和removeEventListener()、detachEvent()的差别?
    Android 自己定义控件实现刮刮卡效果 真的就仅仅是刮刮卡么
    qt自己定义搜索框(超简单,带效果图)
    OpenCV基础篇之像素操作对照度调节
    NYOJ 16 矩形嵌套 (DAG上的DP)
    hdu 1247 Hat’s Words(从给的单词中找hat&#39;s word 并按字典序输出)
    Android学习路线(十八)支持不同设备——支持不同的屏幕
    移动智能设备功耗优化系列--前言(NVIDIA资深project师分享)
  • 原文地址:https://www.cnblogs.com/caizjian/p/3705237.html
Copyright © 2011-2022 走看看