• FM实现F4帮助系列三:弹出框多筛选…


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

    函数:F4IF_GET_SHLP_DESCR
            F4IF_START_VALUE_REQUEST
    效果图
     
    FM实现F4帮助系列三:弹出框多筛选条件的搜索帮助(根据搜索帮助筛选字段)

     
    本例子代码:
    找到需要的帮助:
     FM实现F4帮助系列三:弹出框多筛选条件的搜索帮助(根据搜索帮助筛选字段)

    *&---------------------------------------------------------------------*
    *& 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
  • 相关阅读:
    Element-UI饿了么时间组件控件按月份周日期,开始时间结束时间范围限制参数
    揭秘(爱奇艺、优酷、腾讯)在线视频网站视频2倍速、多倍速快速播放的前端实现方法
    提高敲代码的效率:程序员同扭曲时间的事儿抗争
    原生JS在网页上复制的所有文字后面自动加上一段版权声明
    .net core kafka 入门实例 一篇看懂
    聊聊Grpc使用中的坑以及怎么填
    MongoDB 上手开发实践(入门上手就这一篇)
    聊聊redis实际运用及骚操作
    .NET Core 微服务之Polly熔断策略
    .NET Core 微服务之Polly重试策略
  • 原文地址:https://www.cnblogs.com/senlinmu110/p/3802137.html
Copyright © 2020-2023  润新知