FM实现F4帮助系列三:弹出框多筛选条件的搜索帮助(根据搜索帮助筛选字段)...

函数:F4IF_GET_SHLP_DESCR

        F4IF_START_VALUE_REQUEST

效果图

fb6ac7bd2e52c4f828bf4e7443fec9e0.jpeg

本例子代码:

找到需要的帮助:

9135069011db131c0592a65df3adc12d.jpeg

*& Report  ZLM_TEST_045

REPORT  zlm_test_045.

TABLES makt.

DATA:

      BEGIN OF str_f4,

        matnr TYPE matnr,

        maktx  TYPE maktx,

        END OF str_f4.

DATA:l_it_f4 LIKE TABLE OF str_f4.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.

SELECT-OPTIONS:

           s_matnr  FOR makt-matnr NO INTERVALS.

SELECTION-SCREEN END OF BLOCK b1.

"帮助

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_matnr-low.

  SELECT * FROM makt INTO CORRESPONDING FIELDS OF TABLE l_it_f4.

  PERFORM frm_f4."  USING 'S_MATNR-LOW' .

*&-------------------------------------------------------------------

*& 搜索帮助

*&-------------------------------------------------------------------

FORM frm_f4.

  DATA g_shlp_descr_t             TYPE shlp_descr_t.

  DATA gwa_shlp_descr_t_interface TYPE ddshiface.

  DATA: gt_return_tab   TYPE TABLE OF ddshretval WITH HEADER LINE.

"调用标准帮助

  CALL FUNCTION 'F4IF_GET_SHLP_DESCR'

    EXPORTING

      shlpname = 'MAT1W'

      shlptype = 'SH'

    IMPORTING

      shlp     = g_shlp_descr_t.

  LOOP AT g_shlp_descr_t-interface INTO gwa_shlp_descr_t_interface.

    IF gwa_shlp_descr_t_interface = 'MATNR'.

      gwa_shlp_descr_t_interface-valfield = 'X'.

      MODIFY g_shlp_descr_t-interface FROM gwa_shlp_descr_t_interface.

    ENDIF.

  ENDLOOP.

  CALL FUNCTION 'F4IF_START_VALUE_REQUEST'

    EXPORTING

      shlp          = g_shlp_descr_t

      maxrecords    = 500

      multisel      = 'X'

    TABLES

      return_values = gt_return_tab.

  "获取选中值 可以多选 拥有select options

  LOOP AT gt_return_tab.

    s_matnr-sign = 'I'.

    s_matnr-option = 'EQ'.

    s_matnr-low = gt_return_tab-fieldval.

    APPEND s_matnr.

  ENDLOOP.

ENDFORM.                    " FRM_F4

另外一个F4增强的例子,也是添加筛选字段:

http://blog.sina.com.cn/s/blog_c0978c9b0101h1qf.html

推荐阅读:

ABAP新语法1

《ABAP新语法2》

《SM30添加按钮:批导,筛选,排序等完整demo 》

《关于 SM30/VIEW_MAINTENANCE_CALL锁整张表问题》

《Demo:弹出文本输入框》

《关于update task几个有意思的测试》

动态批量修改任意表任意字段的值

动态获取查询条件的一个小Demo

使用cl_gui_docking_container 实现多ALV》

VOFM 修改 组单开票时 会计凭拆分规则

DEMO SUBMIT 某程序并获取该程序ALV数据

DEMO:S/4 1809 FAGLL03H 增加字段增强

几个ABAP实用模板,体力活就别一行行敲了,复制粘贴得了

DEMO:BTE增强实现凭证创建检查

SAP Parallel Accounting(平行分类账业务)配置+操作手册+BAPI demo程序

CC02修改确认日期BAPI:Processing of change number  was canceled》《我是怎样调试BAPI的,以F-02为例

我是不是被代码给耽误了……不幸沦为一名程序员……

三亚自由行攻略(自己穷游总结)

苏州游记

记码农十周年(20110214--20210214)

不一样的SAP干货铺群:帅哥靓妹、红包、烤羊腿!

十年老码农搬砖习惯和技巧

我这个老码农是怎么debug标准程序的

我是怎样调试BAPI的,以F-02为例

杂谈:几种接口

Odata 增删改查详例

ODATA CREATE_DEEP_ENTITY 详例

RESTful DEMO 一:SAP 如何提供 RESTful Web 服务

RESTful DEMO 四 :增删改查及调用

DEMO  search help 增强 ( vl03n KO03 等)

录BDC时  弹出的公司代码框问题

《搜索帮助系列》

《增强相关》

Debug 系列

DEBUG  系列一:Dump debug
DEBUG  系列二:Configure Debugger Layer
DEBUG系列三:使用  F9 和 watch point
DEBUG系列四:第三方接口debug
DEBUG系列五:Update  模式下的function debug
DEBUG系列六:后台JOB  debug
DEBUG系列七:保存测试参数
DEBUG系列八:Debug弹出框
debug系列九:SM13查看update更新报错
DEBUG系列十:Smartforms  debug
DEBUG系列十一:GGB1  debug
Debug系列十二:QRFC  队列 debug
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值