【ABAP系列】SAP ABAP DYNP_VALUES_UPDATE 更新屏幕字段的函数及用法

公众号:SAP Technical

本文作者:matinal

原文出处:http://www.cnblogs.com/SAPmatinal/

原文链接:【ABAP系列】SAP ABAP DYNP_VALUES_UPDATE 更新屏幕字段的函数及用法

前言部分

大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。

正文部分

?
用这两个函数Function DYNP_VALUES_READ, DYNP_VALUES_UPDATE
参考代码:
MODULE ztmdno_dr_help INPUT.
  DATA:
    l_lifnr   TYPE ztmt018-lifnr,
    l_zvehtab TYPE ztmt018-zvehtab,
    l_zvehid  TYPE ztmt018-zvehid.

  CLEAR: gt_dynfields,gh_dynfields,it_return[],it_ztmdno[],ih_ztmdno.

  gh_dynfields-fieldname = ‘PRE_DATA-LIFNR‘.
  APPEND gh_dynfields TO gt_dynfields.
  CLEAR gh_dynfields.
  gh_dynfields-fieldname = ‘PRE_DATA-ZVEHTAB‘.
  APPEND gh_dynfields TO gt_dynfields.
----------------------获取屏幕的值
  CALL FUNCTION ‘DYNP_VALUES_READ‘
    EXPORTING
      dyname               = sy-repid
      dynumb               = sy-dynnr
      translate_to_upper   = ‘X‘
    TABLES
      dynpfields           = gt_dynfields
    EXCEPTIONS
      invalid_abapworkarea = 1
      invalid_dynprofield  = 2
      invalid_dynproname   = 3
      invalid_dynpronummer = 4
      invalid_request      = 5
      no_fielddescription  = 6
      invalid_parameter    = 7
      undefind_error       = 8
      double_conversion    = 9
      stepl_not_found      = 10
      OTHERS               = 11.
  IF sy-subrc <> 0.
    MESSAGE ‘函数DYNP_VALUES_READ,未能取值‘ TYPE ‘E‘.
    EXIT.
  ENDIF.
  READ TABLE gt_dynfields INTO gh_dynfields WITH KEY fieldname = ‘PRE_DATA-LIFNR‘.
  IF sy-subrc = 0.
    l_lifnr = gh_dynfields-fieldvalue.
  ENDIF.

  READ TABLE gt_dynfields INTO gh_dynfields WITH KEY fieldname = ‘PRE_DATA-ZVEHTAB‘.
  IF sy-subrc = 0.
    IF gh_dynfields-fieldvalue IS INITIAL.
      MESSAGE ‘请先输入车牌号‘ TYPE ‘I‘.
      EXIT.
    ENDIF.
    l_zvehtab = gh_dynfields-fieldvalue.
  ENDIF.

  SELECT SINGLE zvehid
    INTO l_zvehid
    FROM ztmt018
   WHERE lifnr = l_lifnr
     AND zvehtab = l_zvehtab.

  SELECT ztmdno
         ztmdname
         ztmmob
         zvehid
    INTO TABLE it_ztmdno
    FROM ztmt025
   WHERE zvehid = l_zvehid.
  IF it_ztmdno[] IS NOT INITIAL.
    CALL FUNCTION ‘F4IF_INT_TABLE_VALUE_REQUEST‘
      EXPORTING
        retfield        = ‘ZTMDNO_DR‘
        dynpprog        = sy-repid
        dynpnr          = sy-dynnr
        value_org       = ‘S‘
      TABLES
        value_tab       = it_ztmdno[]
        return_tab      = it_return[]
      EXCEPTIONS
        parameter_error = 1
        no_values_found = 2
        OTHERS          = 3.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.

    READ TABLE it_return INDEX 1.
    IF sy-subrc = 0.
      pre_data-ztmdno_dr = it_return-fieldval.
      READ TABLE it_ztmdno INTO ih_ztmdno WITH KEY zvehid = l_zvehid.
      IF sy-subrc = 0.
        CLEAR gh_dynfields.
        gh_dynfields-fieldname = ‘PRE_DATA-ZTMDNAME_DR‘.
        gh_dynfields-fieldvalue = ih_ztmdno-ztmdname_dr.
        APPEND gh_dynfields TO gt_dynfields.
        CLEAR gh_dynfields.
        gh_dynfields-fieldname = ‘PRE_DATA-ZTMMOB‘.
        gh_dynfields-fieldvalue = ih_ztmdno-ztmmob.
        APPEND gh_dynfields TO gt_dynfields.
---------------------更新屏幕的值
        CALL FUNCTION ‘DYNP_VALUES_UPDATE‘
          EXPORTING
            dyname               = sy-repid
            dynumb               = sy-dynnr
          TABLES
            dynpfields           = gt_dynfields
          EXCEPTIONS
            invalid_abapworkarea = 1
            invalid_dynprofield  = 2
            invalid_dynproname   = 3
            invalid_dynpronummer = 4
            invalid_request      = 5
            no_fielddescription  = 6
            undefind_error       = 7
            OTHERS               = 8.
        IF sy-subrc <> 0.
        ENDIF.
      ENDIF.
    ENDIF.
  ENDIF.
ENDMODULE.                 " ZTMDNO_DR_HELP  INPUT

?

原文地址:https://www.cnblogs.com/SAPmatinal/p/11183339.html

时间: 2024-10-04 03:09:41

【ABAP系列】SAP ABAP DYNP_VALUES_UPDATE 更新屏幕字段的函数及用法的相关文章

【ABAP系列】SAP ABAP 工单增强

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 工单增强 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 工单增强:工单——工序——外部BADI:MRO_CONTRACT    实现功能:外部中填入的物料组和维护的物料组是否一致,不一致则报错BADI:WORKORDER_UPDATE  工单的很多判断都在这个里面来实现工单——组件

【ABAP系列】SAP ABAP SY-SUBRC的含义解析

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP SY-SUBRC的含义解析 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 使用SELECT语句选择查询:SY-SUBRC = 0: 至少有一行数据,当ENDSELECT语句执行完,SY-DBCNT中保存着记录的个数.SY-SUBRC = 4: 没有数据.SY-SUBRC = 8:

[SAP ABAP开发技术总结]DIALOG屏幕流逻辑

声明:原创作品,转载时请注明文章来自SAP师太博客,并以超链接形式标明文章原始出处,否则将追究法律责任!原文出自: 12.7.     屏幕流逻辑 PROCESS BEFORE OUTPUT.PROCESS AFTER INPUT.PROCESS ON HELP-REQUEST.PROCESS ON VALUE-REQUEST. 12.7.1.           FIELD FIELD <f>. 使用FIELD语句后,屏幕字段<f>需要在该语句处理完后才传递到ABAP程序相应的字

【ABAP系列】SAP ABAP 如何控制Dialog中的键盘(回车)功能

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 如何控制Dialog中的键盘(回车)功能 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 MODULE USER_COMMAND_2100 INPUT. CLEAR SAVE_OK. SAVE_OK = OK_CODE. CLEAR OK_CODE. CASE SAVE_OK. WH

【ABAP系列】SAP ABAP 物料凭证增强

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 物料凭证增强 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 BADI:MB_DOCUMENT_BADI USER-EXIT:MBCF0002 实现功能1.当参照预留过帐时,检查填入数量是否小于预留数量 2.移动类型是***的时候,查看RSNUM是否为空 3.检查原始单据工厂和库存地

【ABAP系列】SAP ABAP 开发中的SMARTFORMS 参数

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 开发中的SMARTFORMS 参数 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 &symbol& (括号中,小写字母为变量)&symbol&  屏蔽从第一位开始的N位&symbol (n)&   只显示前N位&symbol (S)&a

【ABAP系列】SAP ABAP DOI展示EXCEL或WORD

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP DOI展示EXCEL或WORD 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 DOI技术算是比较老的技术了 用来直接调用office展示结果 可以是EXCEL也可以是WORD ? data: begin of s_fal. include structure faglflext.

【ABAP系列】SAP ABAP 动态指针

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 动态指针 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 有收有放,转在说明,后面举例,给初学者(因为有很多人问到我这个) 关于abap指针的一些资料.    1.什么是abap指针:    在abap里面,fieldsymbol就相当于c语言的指针.如果你定义并且分配了相应的结构或

【ABAP系列】SAP ABAP7.40新语法简介第一篇

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP7.40新语法简介第一篇 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 SAP的系统不断的更新 7.40已经出来很久了,一直忙着没有更新7.40新语法内容 慢慢写点新语法的相关内容 首先说一下7.40的特点及简介 1.ABAP 7.40是AS ABAP 7.31(也称为ABAP 7.