捕捉屏幕字段值

  最近做屏幕开发的时候,通过屏幕的POV事件动态生成Search Help时候,不能取到当面屏幕字段的值(必须要打一个回车键),为了解决此问题,可以通过Call 一个Function来动态取到屏幕的值,代码如下:
 1、  100屏幕的POV事件
     a1
 2、事件代码
       DATAwls_return TYPE ddshretval,
        wlt_return LIKE TABLE OF wls_return.
  data:        it_dynpfields TYPE STANDARD TABLE OF dynpread,
        wa_dynpfields TYPE dynpread.
  CLEAR ws_t012.
  REFRESH wt_t012.
  CLEAR wa_dynpfields.
  CLEAR it_dynpfields.
*解决屏幕输入时捕捉不到值的问题
**取公司代码屏幕字段的输入值
  wa_dynpfields-fieldname ‘P_BUKRS’.
  APPEND wa_dynpfields TO it_dynpfields.
  CALL FUNCTION ‘DYNP_VALUES_READ’
    EXPORTING
      dyname     sy-repid
      dynumb     sy-dynnr
    TABLES
      dynpfields it_dynpfields.
    READ TABLE it_dynpfields WITH KEY fieldname ‘P_BUKRS’ INTO wa_dynpfields.
  IF NOT wa_dynpfields-fieldvalue IS INITIAL.
    P_BUKRS wa_dynpfields-fieldvalue“得到屏幕录入的值
  ENDIF. 
   IF p_zz001 NE space.
    CONCATENATE ‘%’ p_zz001 INTO p_zz001.
  select zz001 zbanktxt
    into corresponding fields of table wt_t012
*    FROM ZFBANK WHERE BUKRS = P_BUKRS.
     from zfbank where BUKRS P_BUKRS AND zz001 like p_zz001.
  ELSE.
   select zz001 zbanktxt
    into corresponding fields of table wt_t012
    FROM ZFBANK WHERE BUKRS P_BUKRS.
  ENDIF.
  CALL FUNCTION ‘F4IF_INT_TABLE_VALUE_REQUEST’
    EXPORTING
      retfield        ‘ZZ001′
      value_org       ‘S’
    TABLES
      value_tab       wt_t012
      return_tab      wlt_return
    EXCEPTIONS
      parameter_error 1
      no_values_found 2
      OTHERS          3.
  READ TABLE wlt_return INDEX INTO wls_return.
  IF sy-subrc EQ 0.
    p_zz001 wls_return-fieldval.
  ENDIF.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值