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

 更新时间:2022年11月30日 15:08:05   作者:百里落云  
这篇文章主要为大家介绍了SAP技巧之修改自带搜索帮助为自定数据集实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

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修改搜索帮助为自定数据集的资料请关注脚本之家其它相关文章!

相关文章

  • Navicat数据库如何查找筛选某个值

    Navicat数据库如何查找筛选某个值

    这篇文章主要介绍了Navicat数据库如何查找筛选某个值问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • SQL语句实现删除重复记录并只保留一条

    SQL语句实现删除重复记录并只保留一条

    这篇文章主要介绍了SQL语句实现删除重复记录并只保留一条,本文直接给出实现代码,并给出多种查询重复记录的方法,需要的朋友可以参考下
    2015-06-06
  • SQL Update多表联合更新的方法

    SQL Update多表联合更新的方法

    这篇文章主要介绍了SQL Update多表联合更新的方法,需要的朋友可以参考下
    2014-08-08
  • 一款高颜值且免费的 SQL 开发工具之Beekeeper Studio详解

    一款高颜值且免费的 SQL 开发工具之Beekeeper Studio详解

    今天给大家推荐一款适用于Windows,Linux和Mac的跨平台免费的开源SQL编辑器和数据库管理应用程序 —— beekeeper-studio。对Beekeeper Studio 安装使用教程感兴趣的朋友一起看看吧
    2021-09-09
  • SQL数据库与oracle数据库镜像有什么不同对比

    SQL数据库与oracle数据库镜像有什么不同对比

    数据库镜像是将数据库事务处理从一个数据库移动到不同环境中的另一个数据库中。镜像的拷贝是一个备用的拷贝,不能直接访问,它只用在错误恢复的情况下。
    2010-03-03
  • 大数据开发phoenix连接hbase流程详解

    大数据开发phoenix连接hbase流程详解

    HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力
    2022-11-11
  • 使用Bucardo5实现PostgreSQL的主数据库复制

    使用Bucardo5实现PostgreSQL的主数据库复制

    这篇文章主要介绍了使用Bucardo5实现PostgreSQL的主数据库复制,作者基于AWS给出演示,需要的朋友可以参考下
    2015-04-04
  • 用计算列实现移动加权平均算法

    用计算列实现移动加权平均算法

    昨天有人让我帮忙写个算移动加权平均的SQL语句,我想了半天终于写出来正确的了。现在发出来供大家参考、讨论。
    2009-09-09
  • 详解PyMySQL插入字典类型的数据

    详解PyMySQL插入字典类型的数据

    在我们爬虫或者调API获取数据后,需要将数据存入到数据库中,如果数据是列表嵌套字典格式的话,一般做法是遍历列表,然后用字典生成对应的SQL语句再执行插入到表中,本文将介绍一种更加简便的方法来插入字典类型的数据,需要的朋友可以参考下
    2022-07-07
  • sqlserver中drop、truncate和delete语句的用法

    sqlserver中drop、truncate和delete语句的用法

    这篇文章主要介绍了sqlserver中drop、truncate和delete语句的用法,本文图文并茂,内容清晰,需要的朋友可以参考下
    2014-09-09

最新评论