欢迎投稿

今日深度:

SAP技巧之修改自带搜索帮助为自定数据集,

SAP技巧之修改自带搜索帮助为自定数据集,


目录
  • 什么是F4搜索帮助
  • 技术介绍
  • 实例展示
    • 数据准备
    • 选择屏幕帮助
    • 获取数据及调用函数
  • 结果
    • 技术总结

      HELLO ,这里是百里,一个学习中的ABAPER,在SAP开中传统会经常遇到选择屏幕,正常系统自带的数据元素可以解决大部分数据搜索帮助的问题,但是一些自开发,或者用户定制的选择屏幕就会出现搜索帮助不存在的情况.此时需要自行建立选择帮助.本案例将详细介绍F4,选择帮助的使用方式.

      什么是F4搜索帮助

      在标准的SAP中,提供了大量的数据元素类型,我们定义选择屏幕时候只要参考表标准数据数据元素,就提供自带的选择帮助数据。我们增加的F4选择帮助就是参考标准的制作的。

      技术介绍

      我们调用函数F4IF_INT_TABLE_VALUE_REQUEST ,传输取数内表,到   value_tab   

      设定对应匹配字段值   retfield        ,然后设定对应的LOW 或者 HIGH 取数值  DYNPROFIELD      .

      FORM f_Create_username .  
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'  
        EXPORTING  
      *   DDIC_STRUCTURE         = ' '  
          retfield               = 'USNAM'  
      *   PVALKEY                = ' '  
        DYNPPROG               = SY-REPID  
        DYNPNR                 = SY-DYNNR  
        DYNPROFIELD            = 's_name-low'  
      *   STEPL                  = 0  
      *   WINDOW_TITLE           =  
      *   VALUE                  = ' '  
         VALUE_ORG              = 'S'  
      *   MULTIPLE_CHOICE        = ' '  
      *   DISPLAY                = ' '  
      *   CALLBACK_PROGRAM       = ' '  
      *   CALLBACK_FORM          = ' '  
      *   CALLBACK_METHOD        =  
      *   MARK_TAB               =  
      * IMPORTING  
       " USER_RESET             = 'S'  
        tables  
          value_tab              =     gt_Data  
      *   FIELD_TAB              =  
      *   RETURN_TAB             =  
      *   DYNPFLD_MAPPING        =  
       EXCEPTIONS  
         PARAMETER_ERROR        = 1  
         NO_VALUES_FOUND        = 2  
         OTHERS                 = 3  
                .  
      IF sy-subrc <> 0.  
      * Implement suitable error handling here  
      ENDIF.  
      ENDFORM.
      

      实例展示

      本案例内容为自建表,对应1000屏幕内的选择屏幕取数介绍. 通过给LOW 和 HIGH 设定对应的值 跳出对应的选择数据.

      数据准备

      tables  : znametable1 .  
      data : gs_data  TYPE  znametable1 .  
      data : gt_Data TYPE TABLE of znametable1 .  
      sELECT-OPTIONS : s_name for  znametable1-name  .  
      SELECT-OPTIONS : s_age for  znametable1-age  .
      

      选择屏幕帮助

      at SELECTION-SCREEN on VALUE-REQUEST FOR s_name-low . 
      PERFORM f_Create_username . 
      at SELECTION-SCREEN on VALUE-REQUEST FOR s_name-high .
      PERFORM f_Create_username . 
      

      获取数据及调用函数

      FORM f_get_username .  
      SELECT  NAME   AGE    INTO CORRESPONDING FIELDS OF TABLE  gt_Data FROM znametable1  .  
      ENDFORM.  
      *&---------------------------------------------------------------------*  
      *& Form f_Create_username  
      *&---------------------------------------------------------------------*  
      *& text  
      *&---------------------------------------------------------------------*  
      *& -->  p1        text  
      *& <--  p2        text  
      *&---------------------------------------------------------------------*  
      FORM f_Create_username .  
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'  
        EXPORTING  
      *   DDIC_STRUCTURE         = ' '  
          retfield               = 'NAME'  
      *   PVALKEY                = ' '  
        DYNPPROG               = SY-REPID  
        DYNPNR                 = SY-DYNNR  
        DYNPROFIELD            = 's_name-low'  
      *   STEPL                  = 0  
      *   WINDOW_TITLE           =  
      *   VALUE                  = ' '  
         VALUE_ORG              = 'S'  
      *   MULTIPLE_CHOICE        = ' '  
      *   DISPLAY                = ' '  
      *   CALLBACK_PROGRAM       = ' '  
      *   CALLBACK_FORM          = ' '  
      *   CALLBACK_METHOD        =  
      *   MARK_TAB               =  
      * IMPORTING  
       " USER_RESET             = 'S'  
        tables  
          value_tab              =     gt_Data  
      *   FIELD_TAB              =  
      *   RETURN_TAB             =  
      *   DYNPFLD_MAPPING        =  
       EXCEPTIONS  
         PARAMETER_ERROR        = 1  
         NO_VALUES_FOUND        = 2  
         OTHERS                 = 3  
                .  
      IF sy-subrc <> 0.  
      * Implement suitable error handling here  
      ENDIF.  
      ENDFORM.
      

      结果

      如图,在选择屏幕界面,我们自定义的选择帮助内容即可展示出来,对应的配置字段为内表数据,而接受数据为对应 retfield    的字段 ,本案例为 NAME 接受的字段 .

      image.png

      技术总结

      本篇文章讲述的自定义选择帮助内容,常用的场景为ALV选择帮助自定义报表,更多关于SAP修改搜索帮助为自定数据集的资料请关注PHP之友其它相关文章!

      您可能感兴趣的文章:
      • 使用Python完成SAP客户端的打开和系统登陆功能
      • C# 如何调用SAP RFC
      • C#如何通过RFC连接sap系统

      www.htsjk.Com true http://www.htsjk.com/shujukunews/45217.html NewsArticle SAP技巧之修改自带搜索帮助为自定数据集, 目录 序 什么是F4搜索帮助 技术介绍 实例展示 数据准备 选择屏幕帮助 获取数据及调用函数 结果 技术总结 序 HELLO ,这里是百里,一个学习中的...
      评论暂时关闭