SAP include模块中的module模块获取屏幕字段详解编程语言

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

SAP include模块中的module模块获取屏幕字段详解编程语言

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

SAP include模块中的module模块获取屏幕字段详解编程语言

然后在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://blog.ytso.com/tech/pnotes/18587.html

(0)
上一篇 2021年7月19日 21:15
下一篇 2021年7月19日 21:15

相关推荐

发表回复

登录后才能评论