精华内容
下载资源
问答
  • abap开发中,检索帮助的方法大概有4种,下面进行简单描述下。...2. SE11里面创建一个检索帮助ID(search_help),然后再定义的时候,使用MATCHCODE OBJECT search_help 绑定即可。   3. 使用函数'F4IF_IN

    abap开发中,检索帮助的方法大概有4种,下面进行简单描述下。

    1.  参照数据库字段,用数据字典自带的检索帮助,或者参照字段的定义域实现F4检索帮助。也是最简单的方法,参照字段定义即可。

     

    2.  SE11里面创建一个检索帮助ID(search_help),然后再定义的时候,使用MATCHCODE OBJECT search_help 绑定即可。

     

    3.  使用函数'F4IF_INT_TABLE_VALUE_REQUEST'实现。

          具体方法如下:

          3-1.添加VALUE-REQUEST事件               

                 AT SELECTION-SCREEN ON VALUE-REQUEST FOR s1-low.
                 * 检索帮助(年/月)
                    PERFORM frm_s1_low_f4.

           3-2.在子程序中实现检索帮助

                 FORM frm_s1_low_f4.    

                   DATA lt TYPE STANDARD TABLE OF dd07v.
                 **************************************************

                  * 如果要获取某字段的定义域的值作为检索帮助的话,可以使用以下函数。

                    CALL FUNCTION 'DD_DOMVALUES_GET'
                       EXPORTING
                            domname              'ZZLZT'           "有定义域的字段
                            text                        'X'                    "要获取该定义域对应的文本
                      TABLES
                            dd07v_tab             lt
                      EXCEPTIONS
                            WRONG_TEXTFLAG       1
                            OTHERS                           2
                .
                      IF sy-subrc <> 0.
                              *   Implement suitable error handling here
                      ENDIF.


                  * 把上面获取到的值,绑定到S1-LOW字段上

                    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
                        EXPORTING
                            retfield                               'DOMVALUE_L'       "lt内表里面的字段
                            dynpprog                           =  sy-repid
                           dynpnr                                 sy-dynnr
                           dynprofield                          'S1-LOW'                 "画面上绑定字段
                           value_org                            'S'
                           callback_program                sy-repid
                       TABLES
                            value_tab                             lt                            "需要显示帮助的值内表
                       EXCEPTIONS
                            PARAMETER_ERROR        1
                            NO_VALUES_FOUND         2
                            OTHERS                               3.
                     

                       IF sy-subrc <> 0.
                           * Implement suitable error handling here
                       ENDIF

    4.  使用函数'F4IF_FIELD_VALUE_REQUEST'实现。

          F4 help for fields that are only known at runtime这是这个函数的描述,即运行时使用。

          在日常的工作中,其实都是在运行时使用,所以就当正常的函数使用就可以了。

          实现方法如下:    

            CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
                EXPORTING
                     tabname     gs_selfields-tabname         “数据字典中的表明
                     fieldname  gt_Selfields-fieldname         ”数据字典中的字段名
                    * value        selval
                TABLES
                    return_tab                       return_tab
                 EXCEPTIONS
                     FIELD_NOT_FOUND     1
                     NO_HELP_FOR_FIELD  =2
                     INCONSISTENT_HELP  =3
                     NO_VALUES_FOUND   4
                     OTHERS                         5.

         运行这个函数就会弹出F4帮助界面的值选择窗口,

         窗口中的值就是tabname中字段fieldname的所有可选值,当选择某个值后,

         那么这个值和其相关的属性就会存放到表return_tab中。这里不详细列举,请developer们自行测试

         深入研究发现,这个函数隶属于函数组SDHI(外部应用程序 F4 界面模块),

         在这个函数组中有很多可用的允许开发者自定义帮助的函数。

    展开全文
  • 这时我们就会用到-F4搜索帮助.接下来我将给大家介绍两种建立搜索帮助的方法.   方法一:在ABAP数据字段中直接建立相关字段的搜索帮助. 具体步骤: 1.事务码SE11打开数据字典,选中搜索帮助,填写名称,

    在写ABAP代码的时候,我们经常会遇到这样的问题,当你自己在数据字典中建立了一个配置表时,你在屏幕上引用了表中的某个字段.同时你想要在屏幕上提供选择,让用户可以直接选择而不用输入内容.这时我们就会用到-F4搜索帮助.接下来我将给大家介绍两种建立搜索帮助的方法.

     

    方法一:在ABAP数据字段中直接建立相关字段的搜索帮助.

    具体步骤:

    1.事务码SE11打开数据字典,选中搜索帮助,填写名称,点击创建.

    2.填写基本相关信息,搜索帮助描述,取数的表,显示的对话框类型.

    3.填写搜索帮助参数,字段名称,输入输出属性,显示位置次序,数据元素.

    4.保存,激活.

    5.打开要建立搜索帮助的表,选中要建立搜索帮助的字段,点击SRCH HELP,填入你建立好的搜索帮助的名称.

    6.保存,激活表.

    7.重新保存要用到表中搜索帮助的程序,激活后就可以使用搜索帮助来选择值了.

    注:此方法比较直观,但是有相关的前提:要添加搜索帮助的表中的字段,必须要有参照的数据元素. 没有数据元素无法建立搜索帮助.所以前提就是我们要事先维护好数据元素.

     

    方法二:在ABAP程序中直接写相关代码来实现.

    具体步骤:

    1.添加VALUE-REQUEST事件.

    示例代码:

    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_XILEI-LOW.
      PERFORM FRM_XILEI_SELECT.

    2.在子程序中实现搜索帮助功能.

    示例代码:

    FORM FRM_XILEI_SELECT .
    *细类的搜索帮助
    DATA: RT_TAB LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE.
    DATA: BEGIN OF IT_XILEI OCCURS 0,
          XILEI LIKE ZSFQ10-XILEI,
          END OF IT_XILEI.

    SELECT XILEI INTO CORRESPONDING FIELDS OF TABLE IT_XILEI FROM ZSFQ10.

    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
      EXPORTING
        RETFIELD               = 'XILEI'
        DYNPPROG               = SY-REPID
        DYNPNR                 = SY-DYNNR
        DYNPROFIELD            = 'S_XILEI-LOW'
        VALUE_ORG              = 'S'
        CALLBACK_PROGRAM       = SY-REPID
      TABLES
        VALUE_TAB              = IT_XILEI
        RETURN_TAB             = RT_TAB
     EXCEPTIONS
       PARAMETER_ERROR        = 1
       NO_VALUES_FOUND        = 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.                    " FRM_XILEI_SELECT

     

    3.保存,激活程序后,即可在屏幕上使用搜帮助了.

    注:此方法不是太直观,但是不用在数据字典中建立相关的数据,只需在程序中动态提取显示.

     

    总结:两种实现方法,均可以实现搜索帮助的功能,各有特点,可以视具体情况使用.

    展开全文
  • STEP | 01新建搜索帮助,命名为“ZH_VBELN_01”。... STEP | 02需要在“Search help exit”中维护一个出口函数,,函数的接口与SAP系统中的预定义函数F4IF_SHLP_EXIT_EXAMPLE一致主要包含Changing和Tab...

            STEP | 01 新建搜索帮助,命名为“ZH_VBELN_01”。拟搜索帮助包括VBELN(交货单号)、LFDAT(交货日期)和WBSTK(货物移动状态)三个字段。

            STEP | 02 需要在“Search help exit”中维护一个出口函数,,函数的接口与SAP系统中的预定义函数F4IF_SHLP_EXIT_EXAMPLE一致主要包含Changing和Tables两部分。

            Changing接口中参数的属性如下:
            ◆SHLP:搜索帮助的基本描述,包括搜索帮助的名称、类型以及内部信息等。
              ◆INTERFACE:会列出该搜索帮助中包含哪些字段及当前使用的哪些字段。
              ◆FIELDDESCR:会列出包含字段的具体属性,如字段名称、类型、长度等。
              ◆FIELDPROP:搜索帮助所定义字段的参数设置,如EXP、IMP、SPos、LPos等。
              ◆SELOPT:当搜索帮助中有输入值时,会在该表中显示。
            ◆CALLCONTROL:包含当前帮助的结构信息,搜索帮助的时间点都有该结构中的字段CALLCONTROL-STEP来控制。在输入帮助处理期间,定义了许多事件点,每一个都定义了一个重要的输入帮助处理操作的起始时间。所包含控制时间点具体参数如下:
          (1)SELONE 可以集合搜索帮助中使用该时间点。
             一个集合搜索往往包含多个基本搜索,该时间点发生在选择一个基本搜索帮助之前,此时的搜索帮助信息已经被存放在内表SHLP_TAB中,通过对内表SHLP_TAB数据的控制来限制该集合搜索中是否能使用其他的基本搜索帮助。
          (2)PRESEL1:选择一个基本搜索帮助后,在该时间点上,该搜索帮助(类型SHLP_DESCR_T)的定义内就不在将表INTERFACE复制到表SELOPT中了。    这意味在这里仍然可以影响搜索帮助到屏幕的附件(表INTERFACE包含关于如何将屏幕字段和搜索帮助变量关联上的信息)。
          (3)PRESEL:该时间点可以用于实现搜索帮助输入条件中某些字段预定义值的控制。
          (4)SELECT:选值之前,如果不想使用默认选择,那么就应该用搜索帮助退出该时间点,将DISP设置成下一个时间点。
          (5)DISP:该时间点用于控制搜索帮助的输出结果。例如,在输出搜索结果时对用户检查权限,删除搜索结果中未能授权的数据。
          (6)RETURN:(一般作为下一个时间点的返回值)如果在一个搜索帮助退出中选择了一个单独命中,那么就将RETURN时间点作为下一步返回。如果对事务处理序列的控制取决于已选中的值(典型例子:设置SET/GET参量),那么在该时间点上改变F4的流程就是有意义的。然而,应该注意到,该处理将取决于一个值是手工输入还是用输入帮助输入的。
          (7)REPORT:只有当输入帮助由集合搜索帮助控制时,才转到该时间点。它直接跟着时间点RETURN。然而,集合搜索帮助的搜索帮助退出是在时间点RETURN上调用的。
          (8)EXIT:(仅为了下一个时间点的返回)如果用户有计划在一个搜索帮助退出中终止对话框,那么EXIT时间点应作为下一步返回。
          (9)CREATE:仅当用户选择函数“创建新值”时,才访问CREATE时间点。且当赋予控制参数CALLCONTROL所对应的结构体中的字段CUSTTAB为非空值时,该时间才是有效的。正常情况下,在那里输入将要维护的表(定制)的名字。CREATE之后,返回的下一步应该是SELECT,这样才能选择想新输入的值,并且随后显示。
          (10):APP1,APP2,APP3:如果带有函数模块F4UT_LIST_EXIT的命中列表包含了更深一层的按钮,那么也会介入这些事件。当用户单击相应的按钮时,就能访问这些时间点。
    注意:如果F4帮助是一个集合搜索帮助,那么就在时间点SELONE和REPORT上调用集合搜索帮助的出口。(RETTOP仅当用户选择一个值)。在所有的其他时间点上,调用已选择的元素搜索帮助的出口。如果F4帮助是一个基本搜索帮助,不执行RETTOP时间点。在时间点SELONE(当时)调用元素搜索帮助的出口,其他准备工作都在时间点PRESEL1执行。

            ● SHLP_TAB:替代基本搜索帮助的清单,与Changing接口中的SHLP_DESCR参数基本类似。
            ● RECORD_TAB:列出搜索帮助的结果数据,结果会回执在操作搜索帮助的字段上。
            STEP | 03 参考F4IF_SHLP_EXIT_EXAMPLE的接口创建自定义函数ZFVBELN_FIND_EXIT。RFC中首先需要创建一个内表用于存储抓取的自定义数据,所定义的内表必须包括搜索帮助参数中EXP所定义的字段,最后通过函数“F4IF_SHLP_EXIT_EXAMPLE”回执查询结果,最后调用DISP时间点将查询的参数显示到列表中。本例中仅需要调用“SELECT”这个时间点来进行数据的查询输出,自定义的帮助出口函数中的具体代码如下。
     

    FUNCTION zfvbeln_find_exit.
    *"----------------------------------------------------------------------
    *"*"Local Interface:
    *"  TABLES
    *"      SHLP_TAB TYPE  SHLP_DESCT
    *"      RECORD_TAB STRUCTURE  SEAHLPRES
    *"  CHANGING
    *"     REFERENCE(SHLP) TYPE  SHLP_DESCR
    *"     REFERENCE(CALLCONTROL) LIKE  DDSHF4CTRL STRUCTURE  DDSHF4CTRL
    *"----------------------------------------------------------------------
    
      DATA : BEGIN OF lt_tab OCCURS 0,
               vbeln TYPE vbeln_vl,
               lfdat TYPE lfdat_v,
               wbstk TYPE wbstk,
             END OF lt_tab.
    
      DATA : r_vbeln    TYPE RANGE OF vbeln_vl WITH HEADER LINE,  "保存交货单参数。
             r_lfdat    TYPE RANGE OF lfdat_v  WITH HEADER LINE,  "保存交货日期参数
             r_wbstk    TYPE RANGE OF wbstk    WITH HEADER LINE,  "保存交货状态参数
             ddshselops TYPE ddshselopt.                       "用于传输输入参数
    
      IF callcontrol-step = 'SELECT'. "SELECT时间点时先获取搜索帮助中有哪些传入参数
    
        LOOP AT shlp-selopt INTO ddshselops.
    
          CASE ddshselops-shlpfield.
            WHEN 'VBELN'.
              MOVE-CORRESPONDING ddshselops TO r_vbeln.
              APPEND r_vbeln.
            WHEN 'LFDAT'.
              MOVE-CORRESPONDING ddshselops TO r_lfdat.
              APPEND r_lfdat.
            WHEN 'WBSTK'.
              MOVE-CORRESPONDING ddshselops TO r_wbstk.
              APPEND r_wbstk.
          ENDCASE.
    
        ENDLOOP.
    
        "根据输入参数查询数据
        SELECT
          t1~vbeln
          t1~lfdat
          INTO CORRESPONDING FIELDS OF TABLE lt_tab
          FROM likp AS t1 INNER JOIN vbuk AS t2 ON t1~vbeln = t2~vbeln
          WHERE t1~vbeln IN r_vbeln
          AND   t1~lfdat IN r_lfdat
          AND   t2~wbstk IN r_wbstk.
    
        "将查询结果回执到屏幕上来
    
        CALL FUNCTION 'F4UT_RESULTS_MAP'
          TABLES
            shlp_tab          = shlp_tab
            record_tab        = record_tab
            source_tab        = lt_tab
          CHANGING
            shlp              = shlp
            callcontrol       = callcontrol
          EXCEPTIONS
            illegal_structure = 1
            OTHERS            = 2.
    
        "下一个时间点直接转到DISP,否则无法在屏幕上显示帮助列表
    
        callcontrol-step = 'DISP'.
    
      ENDIF.
    
    ENDFUNCTION.

            STEP | 04 测试该搜索帮助,执行条件中包含VBELN和LFDAT两个字段。

            在测试窗口单击“帮助”按钮,可以根据查询条件找到指定日期的交货单。

     

     

     

    展开全文
  • F4IF_INT_TABLE_VALUE_REQUEST :F4 help also returning the value to be displayed in internal table 自定义搜索帮助 F4IF_FIELD_VALUE_REQUEST :F4 help for fields that are only known at runtime 动态运行...

    F4IF_INT_TABLE_VALUE_REQUEST :F4 help also returning the value to be displayed in internal table  自定义搜索帮助

    F4IF_FIELD_VALUE_REQUEST         :F4 help for fields that are only known at runtime                            动态运行时根据条件指定对应搜索帮助

    F4IF_SHLP_EXIT_EXAMPLE             :SE11 创建搜索帮助出口 DEMO 

    展开全文
  • SAP中如何建立F4搜索帮助

    千次阅读 2011-06-18 01:37:00
    在写ABAP代码的时候,...这时我们就会用到-F4搜索帮助.接下来我将给大家介绍两种建立搜索帮助的方法. 方法一:在ABAP数据字段中直接建立相关字段的搜索帮助.具体步骤:1.事务码SE11打开数据字典,选中搜索帮助,填写名称,
  • 在SE11先创建搜索帮助 标黄的是数据来源表,标绿的是帮助窗口样式,标蓝的就是输入参数IMP和输出参数EXP,(输出输入不多说了)。 然后进去数据库表点击ENTRY HELP,然后点击对应的字段,再点击搜索帮助,把之前...
  • 利用搜索帮助出口创建自定义搜索帮助 。 1.拷贝标准搜索帮助出库DEMO函数F4IF_SHLP_EXIT_EXAMPLE 实现FORM STEP_SELECT FORM FRM_STEP_SELECT_ZZFI002 TABLES PT_RECORD_TAB STRUCTURE SEAHLPRES PT_SHLP_TAB ...
  • 紧接上一节介绍的SAP预定义的出口函数F4IF_SHLP_EXIT_EXAMPLE创建搜索帮助, 该函数主要有两个部分: Changing接口的参数属性如下: SHLP:搜索帮助的基础描述,包括搜索帮助的名称、类型以及内部信息等。 以下...
  • 搜索帮助也称为F4帮助功能,在SAP的屏幕对象和表格定义中经常会使用到,搜索帮助的类型分为两种,一种为基本索引帮助,即单独显示某个数据集合的页面,另一种为复合索引帮助,是由多个基本索引帮助组成。 1.1 通过...
  •  (注:也可以通过在SE24中创建一个类并实现实现IF_BSP_WD_CUSTOM_F4_CALLBACK接口来提供搜索帮助。)  让我们首先在SE11中创建搜索帮助。  前往事务SE11,创建搜索帮助,输入下图中展示的值。这里我们想要...
  • 12.10. Search help ( F4 ) 12.10.1. VALUE CHECK 、 fixed Values 、 Value Table PARAMETERS p_1 TYPE zmy_dm_200 VALUE CHECK . " 注: SELECT-OPTIONS 没有此选项 如果选择屏幕字段参考...
  • ABAP中的F4帮助怎么用

    千次阅读 2012-04-25 12:31:04
    当我们在sap的界面上,焦点放到一个字段上的时候,按F4,会出现选择或者搜索的界面,这就是abap中的f4帮助。    有多种实现f4帮助的方法,现在就把我指导的一点点说出来:    1 , 固定值。 我们在Domain...
  • PS:若是EPS中按合同创建的采购订单传输SAP时会自动将合同号栏位写入该栏位 2021/3/17 与用户会议沟通,针对工程资产类型采购订单,控制必须选择合同号(来源EPS合同),以此控制所有工程资产类的合同必须在EPS平台...
  • 1、通过F4快捷按钮查询物料主数据时,在查询界面增加已删除/冻结物料点选按钮(如上图) 2、系统默认不点选已删除/冻结物料,查询结果不包括已删除和已冻结物料;当用户点选已删除/冻结物料时,查询结果包括已删除和...
  • SAP 搜索帮助

    2012-09-05 08:43:00
    SAP一个很强大的功能就是无所不在的搜索帮助,如果使用系统的标准字段如MATNR AUFNR 等,都会有相应的搜索帮助,但是对于自建的表格,就得自己制作搜索帮助了,下面简单介绍制作基本搜索帮助 1.SE11 进入创建页面 ...
  • data:  lv_enter  TYPE  REF  TO  cl_gui_event ,  lv_eventid  TYPE  i . * 获取当前事件  lv_enter  ...lv_eventid = 17. "F4帮助按钮 lv_eventid = 19. "回车按钮  
  • se11创建基本搜索帮助时,各个参数的含意 选择方法 指定命中列表的数据来源,可以是数据库表,视图,CDS.如果指定了搜索帮助出口函数则该字段可以不输,数据来源可以在出口中自行指定 对话类型: 输入字段的建议搜索...
  • ABAP中的F4帮助怎么用?

    千次阅读 2011-11-14 13:16:26
    当我们在sap的界面上,焦点放到一个字段上的时候,按F4,会出现选择或者搜索的界面,这就是abap中的f4帮助。 有多种实现f4帮助的方法,现在就把我指导的一点点说出来: 1 , 固定值。我们在Domain 中可以定义 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 713
精华内容 285
关键字:

sap创建f4帮助