ALV通过参考可以直接获取表中搜索帮助,但是表中字段没有搜索帮助或者不合要求就需要通过F4事件完成了。

1、定义OOALV类

CLASS lcl_event_receiver DEFINITION DEFERRED.DATA:gt_fieldcat   TYPE lvc_t_fcat,gs_fieldcat   TYPE lvc_s_fcat,go_grid       TYPE REF TO cl_gui_alv_grid,go_event_receiver    TYPE REF TO lcl_event_receiver.*----------------------------------------------------------------------*
*       CLASS lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_event_receiver DEFINITION.PUBLIC SECTION.METHODS:handle_f4_help  FOR EVENT onf4 OF cl_gui_alv_gridIMPORTING  e_fieldnamees_row_noer_event_dataet_bad_cellse_display.ENDCLASS.                    "lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
*       CLASS lcl_event_receiver IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_event_receiver IMPLEMENTATION.METHOD handle_f4_help.FIELD-SYMBOLS:<fs_alv> TYPE gs_alv.CASE e_fieldname.WHEN 'ARKTX'.READ TABLE git_alv ASSIGNING <fs_alv> INDEX es_row_no-row_id.IF sy-subrc = 0.PERFORM frm_get_arktx_f4 CHANGING <fs_alv>-arktx.ENDIF.
*      WHEN .WHEN OTHERS.ENDCASE.CALL METHOD go_grid->refresh_table_display.ENDMETHOD.ENDCLASS.               "lcl_event_receiver

2、定义alv-fieldcat属性

gs_fieldcat-f4availabl = 'X'.
gs_fieldcat-edit = 'X'.

3、将F4事件注册到ALV对象中

DATA:lt_f4             TYPE lvc_t_f4,ls_f4             TYPE lvc_s_f4.CALL METHOD go_grid->set_table_for_first_displayEXPORTINGit_toolbar_excluding = lt_excludeCHANGINGit_fieldcatalog      = git_fieldcatit_outtab            = git_alv[].CLEAR:ls_f4.
ls_f4-fieldname  = 'ARKTX'.
ls_f4-register   = 'X'.
ls_f4-getbefore  = 'X'.
ls_f4-chngeafter = ''.
ls_f4-internal   = ''.
INSERT ls_f4 INTO TABLE lt_f4.CALL METHOD go_grid->register_f4_for_fieldsEXPORTINGit_f4 = lt_f4.CREATE OBJECT go_event_receiver.
SET HANDLER go_event_receiver->handle_f4_help FOR go_grid .

4、自定义F4,获取数据

*&---------------------------------------------------------------------*
*&      Form  FRM_GET_ARKTX_F4
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_<FS_ALV>_ARKTX  text
*----------------------------------------------------------------------*
FORM frm_get_arktx_f4  USING    pc_matnr TYPE vbrp-matnrCHANGING pc_arktx TYPE zfit005-maktx.DATA:BEGIN OF lt_zfit029 OCCURS 0,sub_type_m TYPE zfit029-sub_type_m,sub_name_m TYPE zfit029-sub_name_m,END OF lt_zfit029.DATA:lt_ret_tab TYPE TABLE OF ddshretval WITH HEADER LINE.DATA:lv_matnr TYPE zfit028-matnr.lv_matnr = pc_matnr.SELECT sub_type_msub_name_mINTO TABLE lt_zfit029FROM zfit028INNER JOIN zfit029 ON zfit028~type_m = zfit029~type_mWHERE zfit028~matnr = lv_matnr.CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'EXPORTINGretfield        = 'SUB_NAME_M'value_org       = 'S'TABLESvalue_tab       = lt_zfit029return_tab      = lt_ret_tabEXCEPTIONSparameter_error = 1no_values_found = 2OTHERS          = 3.IF sy-subrc = 0.READ TABLE lt_ret_tab INDEX 1.IF sy-subrc = 0  AND lt_ret_tab-fieldval IS NOT INITIAL.pc_arktx = lt_ret_tab-fieldval.ENDIF.ENDIF.ENDFORM.                    " FRM_GET_ARKTX_F4

5、效果

ALV通过F4事件,实现自定义搜索帮助F4相关推荐

  1. ABAP ALV中自定义搜索帮助

    一.干货: 在fieldcat-ref_table 和 fieldcat-ref_field 填入参考表和参考字段,搜索帮助就自动出来了. 想要选择屏幕添加自定义搜索帮助-转到这里 ALV自定义搜索帮 ...

  2. ABAP:ALV中自定义搜索帮助

    如果希望ALV中某字段具有搜索帮助,第一种办法当然是对表中某字段的引用,设置ref_table.ref_field,将自动触发该字段所带的搜索帮助. 可不可以直接设置Searh Help呢?应该不可以 ...

  3. Ant Design Pro ProTable 自定义搜索菜单操作栏和搜索事件

    先上整体代码: const beforeSearchSubmit = (par) => {//par 就是你搜索表单输入的内容 }<ProTableheaderTitle="查询 ...

  4. SAP ABAP SEARCH HELP F4 自定义搜索帮助出口

    利用搜索帮助出口创建自定义搜索帮助 . 1.拷贝标准搜索帮助出库DEMO函数 F4IF_SHLP_EXIT_EXAMPLE 实现FORM STEP_SELECT FORM FRM_STEP_SELEC ...

  5. Qt 之自定义搜索框QLineEdit

    Qt 之自定义搜索框 2015年12月19日 10:44:14 一去丶二三里 阅读数 15126更多 分类专栏: Qt <Qt 实战一二三> 版权声明:本文为博主原创文章,遵循 CC 4. ...

  6. 百度地图实现自定义搜索

    今天花了一天的时间仔细的写了一下百度地图的相关东西,拿出来和大家分享一下. servlet(FindCity.java) package edu.hpu.map.servlet; import jav ...

  7. vue项目中使用百度地图api完成自定义搜索功能(包含搜索详细地理位置)

    需求描述: 在vue项目中,有时候,我们需要自定义百度地图的一些功能.譬如,现在的需求,就是需要自定义搜索内容和结果展示. 类似如下页面的功能: 首先在vue项目中,我们可以使用 vue-baidu- ...

  8. 分享一个可以自定义搜索定位的地图

    分享一个可以自定义搜索定位的地图 前面的申请ak密钥步骤都是一致的,这里就不重复描述了,可以通过下面的链接看具体步骤然后复制本篇下面的代码 https://blog.csdn.net/weixin_4 ...

  9. 百度地图-自定义搜索、自定义marker、地图选址实用实例

    该实例中包含地图自定义搜索.自定义标注marker.地图选址.鼠标样式修改.搜索周边接口等实用功能 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1 ...

最新文章

  1. Go 语言编程 — 程序结构
  2. allocWithZone
  3. 基于redhat linux虚拟服务器的web负载均衡集群(piranha+LVS)
  4. 阿里云esc服务器和mysql_解决远程链接阿里云esc服务器的mysql数据库
  5. libgdx和unity_libgdx和Kotlin –类[2D平台原型]
  6. java底层 文件操作_JAVA的文件操作【转】
  7. linux 64 32 编译支持,在64位linux上编译32位程序 for i386 intel
  8. ASP.NET AJAX1.0尝鲜试用:Web Service调用
  9. html 自定义文件选择,html5 自定义文件上传
  10. 计算机普通用户禁止修改c盘,保护C盘数据win7中设置禁止修改C盘文件的方法
  11. useState使用和原理
  12. 【Emb】词向量与ELMo模型
  13. 多线程环境下,HashMap 为什么会出现死循环?
  14. java语言的数据类型_Java语言的数据类型
  15. Java多线程:线程同步与关键字synchronized
  16. VS2008安装部署应用程序安装包制作过程
  17. linux md5 大文件慢,【我的Linux,我做主!】浅谈MD5校验文件完整一致性
  18. WinForm控件之【MonthCalendar】
  19. 算法——弗洛伊德算法(Floyd-Warshall)(图论)(c++)
  20. 法正 (21) :端午

热门文章

  1. 阿里副总裁肖利华:数智化转型的7个关键词
  2. 前阿里资深运营王殿进:SaaS产品经理所面临的苦恼
  3. PMCAFF微课堂「已结束」 | 阿里资深运营揭秘电商运营与纯互联网运营的区别与互通
  4. LinkedList中查询(contains)和删除(remove)源码分析
  5. IOT/智能设备日志解决方案(1):概述
  6. pfSense DMZ配置
  7. 为什么说雅虎的未来在于回归媒体的初衷
  8. 禁止backspace键(退格键),但输入文本框时不禁止(兼容IE)
  9. Popupwindowdemo
  10. Easyui入门视频教程 第01集---认识Easyui