SAP include模块中的module模块获取屏幕字段

在做VL01N/VL02N/VL02N的项目屏幕增强的时候,因为module模块是写在函数组的include模块中的,所以不能直接使用屏幕字段,直接访问关联字典的屏幕字段报错:

1.在函数组包含top文件LZFG_DELIVERY_ENHCTOP中声明表结构:

然后在module包含文件中可以直接访问屏幕变量lips-prueflos, lips-vcode.

-------------------------------------------------------------------------------------------------------

2.调用函数:DYNP_VALUES_READ

*&---------------------------------------------------------------------*
*&      Module  GET_VCODETXT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE GET_VCODETXT INPUT.
  BREAK ybin.
  DATA iv_vcode TYPE lips-vcode.
  DATA vcodetxt TYPE qpct-kurztext.
  DATA: lt_dynpread TYPE STANDARD TABLE OF dynpread .
  DATA: lw_dynpread TYPE dynpread .
 CLEAR lt_dynpread[].
CLEAR lw_dynpread.
  lw_dynpread-fieldname = 'LIPS-VCODE'.
  APPEND lw_dynpread TO lt_dynpread .
CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
       dyname                = sy-repid
       dynumb                = sy-dynnr
    TABLES
       dynpfields            = lt_dynpread
    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.
    CLEAR lw_dynpread.
    READ TABLE lt_dynpread INTO lw_dynpread WITH KEY fieldname = 'LIPS-VCODE'.
    IF sy-subrc = 0.
      CLEAR: iv_vcode, vcodetxt.
      iv_vcode = lw_dynpread-fieldvalue.
      vcodetxt = lw_dynpread-fieldvalue.  
    ENDIF.
  ENDIF.
ENDMODULE.
原文地址:https://www.cnblogs.com/ybinlog/p/11308763.html