SAP ABAP F4的检索帮助(包括自定义检索帮助)

来源:互联网 发布:微信抽奖软件 编辑:程序博客网 时间:2024/05/23 11:44

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 界面模块),

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

 

1 0
原创粉丝点击