怎样获取屏幕输入字段的输入值

假设选择屏幕上有2个输入字段,
parameters: p_werks type marc-werks,  "工厂
                 p_matnr type marc-matnr. “物料
为物料输入字段设置F4输入帮助,其F4输入帮助内容是根据工厂值来确定的,就是说物料是输入的工厂下的所有物料。
但是在下列事件为物料设置输入帮助时获取不到屏幕输入的工厂值p_werks,不信可以加断点调试一下。
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_mantr.
我们需要在此调用一个

CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
      DYNAME                 = SY-CPROG    
      DYNUMB                 = SY-DYNNR    
    TABLES
      DYNPFIELDS             = LT_DYNPFIELDS
   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 ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
READ TABLE LT_DYNPFIELDS INTO LW_DYNPFIELDS
                           WITH KEY FIELDNAME  = 'P_WERKS'.
IF LW_DYNPFIELDS-FIELDVALUE <> SPACE.
    P_WERKS  =  LW_DYNPFIELDS-FIELDVALUE+0(4). "工厂值
ELSE.
   SET CURSOR FIELD CNS_P_BUKRS.
    MESSAGE E711(ZCM) WITH TEXT-009 SPACE SPACE SPACE.
ENDIF.

 

 

以上是对parameter的获取,如果是select-option,分2种情况:
    1. 读取一条值,调用function 'RS_SELECTIONSCREEN_READ',此function只能读取一条,不能读取多条;
   2. 读取多条值,调用function 'RS_REFRESH_FROM_SELECTOPTIONS',此function只能读取多条,不能读取一条。

转载于:https://www.cnblogs.com/Nirvanacafe/p/4435223.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值