函数:

DYNP_VALUES_READ(Read screen field values before PAI field transport)

F4IF_INT_TABLE_VALUE_REQUEST

效果图:

误区:

P_CONNID帮助中直接如下:

  SELECT  …… 

    WHERE werks = p_werks.

如果用户填写p_werks 未回车而直接点p_matnr的帮助,p_werks此时还为空.

本例子代码:




文本

REPORT  zlm_test_043.

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

PARAMETERS: p_werks TYPE  werks_d,

            p_matnr TYPE  matnr.

SELECTION-SCREEN END OF BLOCK b1.

START-OF-SELECTION.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_matnr.

  PERFORM frm_f4.

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

*&搜索帮助

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

FORM frm_f4.

  TYPES: BEGIN OF values,

         matnr TYPE matnr,

         maktx TYPE maktx,

       END OF values.

  DATA: progname         TYPE sy-repid,

        dynnum           TYPE sy-dynnr,

        dynpro_values    TYPE TABLE OF dynpread,

        field_value      LIKE LINE OF dynpro_values,

        values_tab       TYPE TABLE OF values.

  progname = sy-repid.

  dynnum   = sy-dynnr.

  CLEAR: field_value, dynpro_values.

  "指定需要取值的屏幕字段

  field_value-fieldname = 'P_WERKS'.      "

  APPEND field_value TO dynpro_values.

  "获取屏幕 P_WERKS 字段的值

  CALL FUNCTION 'DYNP_VALUES_READ'

    EXPORTING

      dyname             = progname

      dynumb             = dynnum

      translate_to_upper = 'X'

    TABLES

      dynpfields         = dynpro_values.

  "根据屏幕输入值进行进一步搜索

  READ TABLE dynpro_values INDEX 1 INTO field_value.

  SELECT  makt~matnr makt~maktx

    FROM  makt

    INNER JOIN marc ON  marc~matnr = makt~matnr

    INTO  CORRESPONDING FIELDS OF TABLE values_tab

    WHERE werks = field_value-fieldvalue.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

    EXPORTING

      retfield     = 'MATNR'                    "需要回传的字段

      dynpprog     = progname

      dynpnr       = dynnum

      dynprofield  = 'MAKTX'                    "需要显示的字段

      window_title = '情选择物料 '

      value_org    = 'S'

    TABLES

      value_tab    = values_tab.

ENDFORM.                    "frm_f4


©著作权归作者所有:来自51CTO博客作者mb5fd8698f60f87的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. ALV显示红绿灯(FM ALV 和 OO ALV两种实现方式)
  2. FM实现F4帮助系列一:常规实现
  3. elasticsearch的mapping参数
  4. Jackson,最牛掰的 Java JSON 解析器
  5. 「网工小白必备」全网最详细的网络基础知识之数据链路层
  6. Spring Boot 解决跨域问题的 3 种方案!
  7. Cocos2dx-Android屏幕适配方案
  8. android屏幕颜色过滤调节(可用于护眼模式)
  9. android程序界面自动适应屏幕分辨率例子

随机推荐

  1. PHP高级应用的讲解
  2. php的定界符<<<EOF的解析
  3. PHP Composer是什么技术?一起看看
  4. Mac搭建php的开发环境(图文详解)
  5. php获取mp3音频信息实例教程
  6. utf8和utf8mb4的区别详解
  7. 一看就会的php网站源码安装简易教程
  8. 编程小白学习php必须要了解的事
  9. PHP微信公众号支付教程(含图文)
  10. 有利于新手的php基础知识总结